14 # pragma warning( disable : 2259 )
19 #include <type_traits>
23 #include <AIDA/IHistogram1D.h>
24 #include <AIDA/IHistogram2D.h>
25 #include <AIDA/IHistogram3D.h>
26 #include <AIDA/IProfile1D.h>
27 #include <AIDA/IProfile2D.h>
35 #include <TProfile2D.h>
50 template <
typename Out,
typename In>
51 Out* a2r_cast( In* aida ) {
53 auto base =
dynamic_cast<Base*
>( aida );
54 return base ?
dynamic_cast<Out*
>(
base->representation() ) :
nullptr;
62 return a2r_cast<const TH1D>( aida );
69 return a2r_cast<const TH2D>( aida );
76 return a2r_cast<const TH3D>( aida );
83 return a2r_cast<const TProfile>( aida );
90 return a2r_cast<const TProfile2D>( aida );
97 return a2r_cast<const TObject>( aida );