14 # pragma warning( disable : 2259 )
20 # pragma warning( disable : 4996 )
25 #include <type_traits>
29 #include "AIDA/IHistogram1D.h"
30 #include "AIDA/IHistogram2D.h"
31 #include "AIDA/IHistogram3D.h"
32 #include "AIDA/IProfile1D.h"
33 #include "AIDA/IProfile2D.h"
41 #include "TProfile2D.h"
58 template <
typename Out,
typename In>
59 Out* a2r_cast( In* aida ) {
61 auto base =
dynamic_cast<Base*
>( aida );
62 return base ?
dynamic_cast<Out*
>(
base->representation() ) :
nullptr;
70 return a2r_cast<const TH1D>( aida );
77 return a2r_cast<const TH2D>( aida );
84 return a2r_cast<const TH3D>( aida );
91 return a2r_cast<const TProfile>( aida );
98 return a2r_cast<const TProfile2D>( aida );
105 return a2r_cast<const TObject>( aida );