2 #ifndef GAUDISVC_HISTOGRAMSVC_H 3 #define GAUDISVC_HISTOGRAMSVC_H 1 19 #include "AIDA/IAnnotation.h" 20 #include "AIDA/IHistogramFactory.h" 39 #define DBINS( x ) int n##x, double low##x, double up##x 40 #define BINS( x ) n##x, low##x, up##x 41 #define NOT_IMPLEMENTED \ 62 typedef AIDA::IHistogram1D
H1D;
63 typedef AIDA::IHistogram2D
H2D;
64 typedef AIDA::IHistogram3D
H3D;
65 typedef AIDA::IProfile1D
P1D;
66 typedef AIDA::IProfile2D
P2D;
67 typedef AIDA::IBaseHistogram
Base;
71 template <
class A1,
class A3>
75 StatusCode sc = m_svc->DataSvc::retrieveObject( a1, pObject );
76 a3 =
dynamic_cast<A3*
>( pObject );
79 template <
class A1,
class A2,
class A3>
83 StatusCode sc = m_svc->DataSvc::retrieveObject( a1, a2, pObject );
84 a3 =
dynamic_cast<A3*
>( pObject );
87 template <
class A1,
class A3>
91 StatusCode sc = m_svc->DataSvc::findObject( a1, pObject );
92 a3 =
dynamic_cast<A3*
>( pObject );
95 template <
class A1,
class A2,
class A3>
99 StatusCode sc = m_svc->DataSvc::findObject( a1, a2, pObject );
100 a3 =
dynamic_cast<A3*
>( pObject );
103 template <
class R,
class S,
class T1,
class T2>
104 static R*
act( R* res,
const S& b,
void ( T1::*pmf )(
const T2*, Double_t ), Double_t scale )
106 T1* h1 = Gaudi::getRepresentation<R, T1>( *res );
107 T1* h2 = Gaudi::getRepresentation<R, T1>( b );
109 ( h1->*pmf )( h2, scale );
114 template <
class R,
class S,
class T1,
class T2>
115 static R*
act( R* res,
const S& b, Bool_t ( T1::*pmf )(
const T2*, Double_t ), Double_t scale )
117 T1* h1 = Gaudi::getRepresentation<R, T1>( *res );
118 T1* h2 = Gaudi::getRepresentation<R, T1>( b );
120 ( h1->*pmf )( h2, scale );
125 template <
class R,
class S,
class T1,
class T2>
126 static R*
act( R* res,
const S& b,
void ( T1::*pmf )(
const T2* ) )
128 T1* h1 = Gaudi::getRepresentation<R, T1>( *res );
129 T1* h2 = Gaudi::getRepresentation<R, T1>( b );
136 template <
class R,
class S,
class T1,
class T2>
137 static R*
act( R* res,
const S& b, Bool_t ( T1::*pmf )(
const T2* ) )
139 T1* h1 = Gaudi::getRepresentation<R, T1>( *res );
140 T1* h2 = Gaudi::getRepresentation<R, T1>( b );
174 if ( o.first && registerObject( pPar, rel, (Base*)o.second ).isSuccess() )
return o.second;
189 H2D* i_project( CSTR nameAndTitle,
const H3D&
h, CSTR dir );
224 return book( createPath( par ), rel, title,
BINS( x ) );
226 H1D*
book( CSTR par,
int hID, CSTR title,
DBINS( x ) )
override 235 virtual H1D*
book( STRPAIR loc, CSTR title,
DBINS( x ) ) {
return book( loc.first, loc.second, title,
BINS( x ) ); }
236 H1D*
book( CSTR full, CSTR title,
DBINS( x ) )
override {
return book( i_splitPath( full ), title,
BINS( x ) ); }
257 P1D*
bookProf( CSTR par, CSTR rel, CSTR title,
DBINS( x ), CSTR opt )
override 259 return bookProf( createPath( par ), rel, title,
BINS( x ), opt );
261 P1D*
bookProf( CSTR par,
int hID, CSTR title,
DBINS( x ), CSTR opt )
override 271 return bookProf( loc.first, loc.second, title,
BINS( x ), opt );
275 return bookProf( i_splitPath( full ), title,
BINS( x ), opt );
282 P1D*
bookProf( CSTR par, CSTR rel, CSTR title,
DBINS( x ),
double upper,
double lower, CSTR opt )
override 284 return bookProf( createPath( par ), rel, title,
BINS( x ), upper, lower, opt );
286 P1D*
bookProf( CSTR par,
int hID, CSTR title,
DBINS( x ),
double upper,
double lower, CSTR opt )
override 294 virtual P1D*
bookProf( STRPAIR loc, CSTR title,
DBINS( x ),
double upper,
double lower, CSTR opt )
296 return bookProf( loc.first, loc.second, title,
BINS( x ), upper, lower, opt );
298 P1D*
bookProf( CSTR full, CSTR title,
DBINS( x ),
double upper,
double lower, CSTR opt )
override 300 return bookProf( i_splitPath( full ), title,
BINS( x ), upper, lower, opt );
328 H1D*
book( CSTR par, CSTR rel, CSTR title, Edges e )
override {
return book( createPath( par ), rel, title, e ); }
329 virtual H1D*
book( STRPAIR loc, CSTR title, Edges e ) {
return book( loc.first, loc.second, title, e ); }
330 H1D*
book( CSTR full, CSTR title, Edges e )
override {
return book( i_splitPath( full ), title, e ); }
353 P1D*
bookProf( CSTR full, CSTR title, Edges e )
override {
return bookProf( i_splitPath( full ), title, e ); }
354 P1D*
bookProf( CSTR par, CSTR rel, CSTR title, Edges e )
override 356 return bookProf( createPath( par ), rel, title, e );
358 P1D*
bookProf( CSTR par,
int hID, CSTR title, Edges e )
override 366 virtual P1D*
bookProf( STRPAIR loc, CSTR title, Edges e ) {
return bookProf( loc.first, loc.second, title, e ); }
372 virtual P1D*
bookProf( CSTR full, CSTR title, Edges e,
double upper,
double lower )
374 return bookProf( i_splitPath( full ), title, e, upper, lower );
376 virtual P1D*
bookProf( CSTR par, CSTR rel, CSTR title, Edges e,
double upper,
double lower )
378 return bookProf( createPath( par ), rel, title, e, upper, lower );
380 virtual P1D*
bookProf( CSTR par,
int hID, CSTR title, Edges e,
double upper,
double lower )
388 virtual P1D*
bookProf( STRPAIR loc, CSTR title, Edges e,
double upper,
double lower )
390 return bookProf( loc.first, loc.second, title, e, upper, lower );
418 return book( i_splitPath( full ), title,
BINS( x ),
BINS( y ) );
422 return book( createPath( par ), rel, title,
BINS( x ),
BINS( y ) );
430 return book( loc.first, loc.second, title,
BINS( x ),
BINS( y ) );
462 return bookProf( i_splitPath( full ), title,
BINS( x ),
BINS( y ), upper, lower );
464 virtual P2D*
bookProf( CSTR par, CSTR rel, CSTR title,
DBINS( x ),
DBINS( y ),
double upper,
double lower )
466 return bookProf( createPath( par ), rel, title,
BINS( x ),
BINS( y ), upper, lower );
470 return bookProf( loc.first, loc.second, title,
BINS( x ),
BINS( y ), upper, lower );
472 virtual P2D*
bookProf( CSTR par,
int hID, CSTR title,
DBINS( x ),
DBINS( y ),
double upper,
double lower )
526 H2D*
book( CSTR full, CSTR title, Edges x, Edges y )
override {
return book( i_splitPath( full ), title, x, y ); }
527 H2D*
book( CSTR par, CSTR rel, CSTR title, Edges x, Edges y )
override 529 return book( createPath( par ), rel, title, x, y );
531 H2D*
book( CSTR par,
int hID, CSTR title, Edges x, Edges y )
override 535 virtual H2D*
book( STRPAIR loc, CSTR title, Edges x, Edges y ) {
return book( loc.first, loc.second, title, x, y ); }
561 P2D*
bookProf( CSTR full, CSTR title, Edges x, Edges y )
override 563 return bookProf( i_splitPath( full ), title, x, y );
565 P2D*
bookProf( CSTR par, CSTR rel, CSTR title, Edges x, Edges y )
override 567 return bookProf( createPath( par ), rel, title, x, y );
569 P2D*
bookProf( CSTR par,
int hID, CSTR title, Edges x, Edges y )
override 577 virtual P2D*
bookProf( STRPAIR loc, CSTR title, Edges x, Edges y )
579 return bookProf( loc.first, loc.second, title, x, y );
586 virtual P2D*
bookProf( CSTR full, CSTR title, Edges x, Edges y,
double upper,
double lower )
588 return bookProf( i_splitPath( full ), title, x, y, upper, lower );
590 virtual P2D*
bookProf( CSTR par, CSTR rel, CSTR title, Edges x, Edges y,
double upper,
double lower )
592 return bookProf( createPath( par ), rel, title, x, y, upper, lower );
594 virtual P2D*
bookProf( CSTR par,
int hID, CSTR title, Edges x, Edges y,
double upper,
double lower )
598 virtual P2D*
bookProf(
DataObject* pPar,
int hID, CSTR title, Edges x, Edges y,
double upper,
double lower )
602 virtual P2D*
bookProf( STRPAIR loc, CSTR title, Edges x, Edges y,
double upper,
double lower )
604 return bookProf( loc.first, loc.second, title, x, y, upper, lower );
606 virtual P2D*
bookProf(
DataObject* pPar, CSTR rel, CSTR title, Edges x, Edges y,
double upper,
double lower )
636 return book( createPath( par ), rel, title,
BINS( x ),
BINS( y ),
BINS( z ) );
648 return book( loc.first, loc.second, title,
BINS( x ),
BINS( y ),
BINS( z ) );
673 H3D*
book( CSTR full, CSTR title, Edges x, Edges y, Edges z )
override 675 return book( i_splitPath( full ), title, x, y, z );
677 H3D*
book( CSTR par, CSTR rel, CSTR title, Edges x, Edges y, Edges z )
override 679 return book( createPath( par ), rel, title, x, y, z );
681 H3D*
book( CSTR par,
int hID, CSTR title, Edges x, Edges y, Edges z )
override 685 H3D*
book(
DataObject* pPar,
int hID, CSTR title, Edges x, Edges y, Edges z )
override 689 virtual H3D*
book( STRPAIR loc, CSTR title, Edges x, Edges y, Edges z )
691 return book( loc.first, loc.second, title, x, y, z );
693 H3D*
book(
DataObject* pPar, CSTR rel, CSTR title, Edges x, Edges y, Edges z )
override 706 return registerObject( createPath( parent ), rel, obj );
714 return registerObject( __cast( pPar ), rel, obj );
722 return registerObject( __cast( pPar ), item, obj );
724 StatusCode registerObject( CSTR full, Base* obj )
override;
743 return Helper(
this ).retrieve( pReg, path, obj );
747 return Helper(
this ).retrieve( pReg, path, obj );
751 return Helper(
this ).retrieve( pReg, path, obj );
755 return Helper(
this ).retrieve( pReg, path, obj );
759 return Helper(
this ).retrieve( pReg, path, obj );
770 return Helper(
this ).retrieve( parent, rel, obj );
774 return Helper(
this ).retrieve( parent, rel, obj );
778 return Helper(
this ).retrieve( parent, rel, obj );
782 return Helper(
this ).retrieve( parent, rel, obj );
786 return Helper(
this ).retrieve( parent, rel, obj );
791 return Helper(
this ).retrieve( parent, item, obj );
795 return Helper(
this ).retrieve( parent, item, obj );
799 return Helper(
this ).retrieve( parent, item, obj );
803 return Helper(
this ).retrieve( parent, item, obj );
807 return Helper(
this ).retrieve( parent, item, obj );
812 return Helper(
this ).retrieve( par, item, obj );
816 return Helper(
this ).retrieve( par, item, obj );
820 return Helper(
this ).retrieve( par, item, obj );
824 return Helper(
this ).retrieve( par, item, obj );
828 return Helper(
this ).retrieve( par, item, obj );
833 return Helper(
this ).retrieve( par, item, obj );
837 return Helper(
this ).retrieve( par, item, obj );
841 return Helper(
this ).retrieve( par, item, obj );
845 return Helper(
this ).retrieve( par, item, obj );
849 return Helper(
this ).retrieve( par, item, obj );
854 return Helper(
this ).retrieve( __cast( par ), item, obj );
858 return Helper(
this ).retrieve( __cast( par ), item, obj );
862 return Helper(
this ).retrieve( __cast( par ), item, obj );
866 return Helper(
this ).retrieve( __cast( par ), item, obj );
870 return Helper(
this ).retrieve( __cast( par ), item, obj );
875 return Helper(
this ).retrieve( __cast( par ), item, obj );
879 return Helper(
this ).retrieve( __cast( par ), item, obj );
883 return Helper(
this ).retrieve( __cast( par ), item, obj );
887 return Helper(
this ).retrieve( __cast( par ), item, obj );
891 return Helper(
this ).retrieve( __cast( par ), item, obj );
903 return Helper(
this ).find( pReg, path, obj );
907 return Helper(
this ).find( pReg, path, obj );
911 return Helper(
this ).find( pReg, path, obj );
915 return Helper(
this ).find( pReg, path, obj );
919 return Helper(
this ).find( pReg, path, obj );
942 return Helper(
this ).find( par, item, obj );
946 return Helper(
this ).find( par, item, obj );
950 return Helper(
this ).find( par, item, obj );
954 return Helper(
this ).find( par, item, obj );
958 return Helper(
this ).find( par, item, obj );
963 return Helper(
this ).find( par, item, obj );
967 return Helper(
this ).find( par, item, obj );
971 return Helper(
this ).find( par, item, obj );
975 return Helper(
this ).find( par, item, obj );
979 return Helper(
this ).find( par, item, obj );
984 return Helper(
this ).find( __cast( par ), item, obj );
988 return Helper(
this ).find( __cast( par ), item, obj );
992 return Helper(
this ).find( __cast( par ), item, obj );
996 return Helper(
this ).find( __cast( par ), item, obj );
1000 return Helper(
this ).find( __cast( par ), item, obj );
1005 return Helper(
this ).find( __cast( par ), item, obj );
1009 return Helper(
this ).find( __cast( par ), item, obj );
1013 return Helper(
this ).find( __cast( par ), item, obj );
1017 return Helper(
this ).find( __cast( par ), item, obj );
1021 return Helper(
this ).find( __cast( par ), item, obj );
1029 return sliceX( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1033 return sliceY( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1035 H1D*
sliceX( CSTR name,
const H2D& h,
int indexY )
override {
return sliceX( name, h, indexY, indexY ); }
1036 H1D*
sliceY( CSTR name,
const H2D& h,
int indexX )
override {
return sliceY( name, h, indexX, indexX ); }
1037 H1D* sliceX( CSTR name,
const H2D& h,
int indexY1,
int indexY2 )
override;
1038 H1D* sliceY( CSTR name,
const H2D& h,
int indexX1,
int indexX2 )
override;
1040 bool destroy( IBaseHistogram* hist )
override;
1042 H1D*
add( CSTR nameAndTitle,
const H1D& a,
const H1D& b )
override 1044 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, 1. );
1046 H1D*
subtract( CSTR nameAndTitle,
const H1D& a,
const H1D& b )
override 1048 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, -1. );
1050 H1D*
multiply( CSTR nameAndTitle,
const H1D& a,
const H1D& b )
override 1052 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Multiply );
1054 H1D*
divide( CSTR nameAndTitle,
const H1D& a,
const H1D& b )
override 1056 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Divide );
1059 H2D*
add( CSTR nameAndTitle,
const H2D& a,
const H2D& b )
override 1061 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, 1. );
1063 H2D*
subtract( CSTR nameAndTitle,
const H2D& a,
const H2D& b )
override 1065 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, -1. );
1067 H2D*
multiply( CSTR nameAndTitle,
const H2D& a,
const H2D& b )
override 1069 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Multiply );
1071 H2D*
divide( CSTR nameAndTitle,
const H2D& a,
const H2D& b )
override 1073 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Divide );
1076 H3D*
add( CSTR nameAndTitle,
const H3D& a,
const H3D& b )
override 1078 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, 1. );
1080 H3D*
subtract( CSTR nameAndTitle,
const H3D& a,
const H3D& b )
override 1082 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, -1. );
1084 H3D*
multiply( CSTR nameAndTitle,
const H3D& a,
const H3D& b )
override 1086 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Multiply );
1088 H3D*
divide( CSTR nameAndTitle,
const H3D& a,
const H3D& b )
override 1090 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Divide );
1093 H2D*
projectionXY( CSTR nameAndTitle,
const H3D& h )
override {
return i_project( nameAndTitle, h,
"xy" ); }
1094 H2D*
projectionXZ( CSTR nameAndTitle,
const H3D& h )
override {
return i_project( nameAndTitle, h,
"xz" ); }
1095 H2D*
projectionYZ( CSTR nameAndTitle,
const H3D& h )
override {
return i_project( nameAndTitle, h,
"yz" ); }
1096 H2D* sliceXY( CSTR ,
const H3D& ,
int ,
1098 int ,
int )
override 1105 return book( name, tit,
BINS( x ) );
1109 return book( name, tit,
BINS( x ) );
1113 return book( name, title, x );
1117 return book( nameAndTitle, nameAndTitle,
BINS( x ) );
1137 return book( name, title, x, y );
1141 return book( nameAndTitle, nameAndTitle,
BINS( x ),
BINS( y ) );
1159 H3D*
createHistogram3D( CSTR name, CSTR title,
const Edges& x,
const Edges& y,
const Edges& z, CSTR )
override 1161 return book( name, title, x, y, z );
1165 return book( nameAndTitle, nameAndTitle,
BINS( x ),
BINS( y ),
BINS( z ) );
1182 return bookProf( name, tit,
BINS( x ), upper, lower, opt );
1188 P1D*
createProfile1D( CSTR name, CSTR title,
const Edges& x,
double upper,
double lower, CSTR )
override 1190 return bookProf( name, title, x, upper, lower );
1196 return bookProf( nametit, nametit,
BINS( x ), upper, lower,
"s" );
1215 P2D*
createProfile2D( CSTR name, CSTR title,
const Edges& x,
const Edges& y, CSTR )
override 1217 return bookProf( name, title, x, y );
1232 P2D*
createProfile2D( CSTR name, CSTR title,
const Edges& x,
const Edges& y,
double upper,
double lower,
1235 return bookProf( name, title, x, y, upper, lower );
1239 return bookProf( nameAndTitle, nameAndTitle,
BINS( x ),
BINS( y ), upper, lower );
1250 AIDA::ICloud1D* createCloud1D( CSTR, CSTR,
int, CSTR )
override NOT_IMPLEMENTED AIDA::ICloud1D* createCloud1D(
1251 CSTR )
override NOT_IMPLEMENTED AIDA::ICloud1D* createCopy( CSTR,
const AIDA::ICloud1D& )
override 1252 NOT_IMPLEMENTED AIDA::ICloud2D* createCloud2D( CSTR, CSTR,
int, CSTR )
override 1254 CSTR,
const AIDA::ICloud2D& )
override NOT_IMPLEMENTED AIDA::ICloud3D* createCloud3D( CSTR, CSTR,
int, CSTR )
1255 override NOT_IMPLEMENTED AIDA::ICloud3D* createCloud3D( CSTR )
override 1271 int write( Base* h,
const char* file_name )
const override;
1274 DataObject* createPath( CSTR newPath )
override;
1280 DataObject* createDirectory( CSTR parentDir, CSTR subDir )
override;
1301 #endif // GAUDISVC_HISTOGRAMSVC_H StatusCode unregisterObject(const std::string &fullPath) override
Unregister object from the data store.
StatusCode findObject(DataObject *par, int item, H1D *&obj) override
H2D * book(CSTR par, CSTR rel, CSTR title, Edges x, Edges y) override
P2D * createProfile2D(CSTR nameAndTitle, DBINS(x), DBINS(y)) override
virtual P2D * bookProf(STRPAIR loc, CSTR title, Edges x, Edges y, double upper, double lower)
H1D * createCopy(CSTR par, CSTR rel, const H1D &h)
H1D * book(DataObject *pPar, int hID, CSTR title, Edges e) override
P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y)) override
H3D * book(DataObject *pPar, int hID, CSTR title, Edges x, Edges y, Edges z) override
P1D * bookProf(CSTR full, CSTR title, DBINS(x), double upper, double lower, CSTR opt) override
StatusCode retrieveObject(IRegistry *pReg, CSTR path, H1D *&obj) override
StatusCode retrieveObject(IRegistry *pReg, CSTR path, H2D *&obj) override
StatusCode findObject(CSTR par, int item, H2D *&obj) override
virtual P2D * bookProf(CSTR par, int hID, CSTR title, Edges x, Edges y, double upper, double lower)
StatusCode findObject(IRegistry *pReg, CSTR path, H2D *&obj) override
StatusCode findObject(CSTR par, CSTR rel, H2D *&obj) override
virtual H1D * book(STRPAIR loc, CSTR title, Edges e)
StatusCode retrieveObject(Base *par, int item, H1D *&obj) override
P1D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), double upper, double lower, CSTR opt) override
P1D * createCopy(CSTR full, const P1D &h) override
StatusCode retrieveObject(Base *par, int item, P2D *&obj) override
H2D * createCopy(DataObject *pPar, CSTR rel, const H2D &h)
P2D * bookProf(DataObject *pPar, int hID, CSTR title, Edges x, Edges y) override
H1D * createCopy(DataObject *pPar, CSTR rel, const H1D &h)
virtual P2D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
StatusCode retrieveObject(CSTR parent, int item, P2D *&obj) override
Define general base for Gaudi exception.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
std::set< std::string > m_mods1D
H2D * book(CSTR full, CSTR title, Edges x, Edges y) override
Book histogram and register it with the histogram data store.
H3D * book(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y), DBINS(z)) override
virtual P1D * bookProf(STRPAIR loc, CSTR title, Edges e, double upper, double lower)
StatusCode retrieveObject(DataObject *par, int item, P1D *&obj) override
H1D * book(CSTR par, CSTR rel, CSTR title, DBINS(x)) override
Book histogram and register it with the histogram data store.
H1D * projectionX(CSTR name, const H2D &h) override
GAUDI_API AIDA::IHistogram1D * book(IHistogramSvc *svc, const std::string &path, const Gaudi::Histo1DDef &hist)
helper function to book 1D-histogram
std::map< std::string, Gaudi::Histo1DDef > Histo1DMap
Implementation of property with value of concrete type.
StatusCode retrieveObject(CSTR parent, CSTR rel, P2D *&obj) override
H3D * book(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y), DBINS(z)) override
virtual H2D * book(STRPAIR loc, CSTR title, DBINS(x), DBINS(y))
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), double upper, double lower)
StatusCode findObject(CSTR par, int item, P2D *&obj) override
H3D * multiply(CSTR nameAndTitle, const H3D &a, const H3D &b) override
H3D * add(CSTR nameAndTitle, const H3D &a, const H3D &b) override
StatusCode retrieveObject(DataObject *par, CSTR item, P2D *&obj) override
virtual P2D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
StatusCode unregisterObject(Base *obj, CSTR objectPath) override
P2D * createProfile2D(CSTR name, CSTR title, const Edges &x, const Edges &y, CSTR) override
StatusCode findObject(CSTR par, CSTR rel, P2D *&obj) override
H2D * book(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y)) override
StatusCode retrieveObject(CSTR full, P1D *&obj) override
std::pair< DataObject *, AIDA::IHistogram1D * > createH1D(const AIDA::IHistogram1D &hist)
Copy constructor.
P1D * bookProf(DataObject *pPar, int hID, CSTR title, Edges e) override
H1D * divide(CSTR nameAndTitle, const H1D &a, const H1D &b) override
H2D * createHistogram2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), CSTR) override
P1D * bookProf(CSTR par, CSTR rel, CSTR title, Edges e) override
const std::pair< std::string, std::string > & STRPAIR
P1D * createCopy(STRPAIR loc, const P1D &h)
P1D * createProfile1D(CSTR name, CSTR title, const Edges &x, CSTR) override
StatusCode findObject(IRegistry *pReg, CSTR path, P1D *&obj) override
StatusCode findObject(DataObject *par, CSTR item, H1D *&obj) override
P2D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y)) override
H1D * book(CSTR par, CSTR rel, CSTR title, Edges e) override
P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y) override
StatusCode retrieveObject(CSTR parent, int item, P1D *&obj) override
H1D * createHistogram1D(CSTR nameAndTitle, DBINS(x)) override
virtual H1D * book(STRPAIR loc, CSTR title, DBINS(x))
virtual P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y, double upper, double lower)
StatusCode findObject(Base *par, CSTR item, P1D *&obj) override
H3D * createHistogram3D(CSTR name, CSTR title, const Edges &x, const Edges &y, const Edges &z, CSTR) override
H2D * book(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y) override
virtual P2D * bookProf(CSTR full, CSTR title, Edges x, Edges y, double upper, double lower)
virtual P1D * bookProf(CSTR par, int hID, CSTR title, Edges e, double upper, double lower)
T * i_book(DataObject *pPar, CSTR rel, CSTR title, const std::pair< DataObject *, T * > &o)
StatusCode retrieveObject(IRegistry *pReg, CSTR path, P1D *&obj) override
StatusCode findObject(CSTR full, P1D *&obj) override
void not_implemented() const
StatusCode find(A1 a1, A3 *&a3)
P1D * bookProf(CSTR full, CSTR title, DBINS(x), CSTR opt) override
H1D * book(CSTR par, int hID, CSTR title, DBINS(x)) override
StatusCode findObject(Base *par, CSTR item, H3D *&obj) override
H1D * book(DataObject *pPar, CSTR rel, CSTR title, Edges e) override
StatusCode retrieve(A1 a1, A2 a2, A3 *&a3)
StatusCode unregisterObject(Base *obj) override
P1D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), CSTR opt) override
StatusCode findObject(CSTR full, H2D *&obj) override
virtual P2D * bookProf(STRPAIR loc, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
H2D * multiply(CSTR nameAndTitle, const H2D &a, const H2D &b) override
H3D * createHistogram3D(CSTR name, CSTR tit, DBINS(x), DBINS(y), DBINS(z))
StatusCode retrieveObject(CSTR parent, int item, H1D *&obj) override
virtual P1D * bookProf(CSTR full, CSTR title, Edges e, double upper, double lower)
virtual P1D * bookProf(DataObject *pPar, int hID, CSTR title, Edges e, double upper, double lower)
virtual P1D * bookProf(STRPAIR loc, CSTR title, Edges e)
H2D * createCopy(CSTR par, CSTR rel, const H2D &h)
H3D * book(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y), DBINS(z)) override
P1D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), CSTR opt) override
Book histogram and register it with the histogram data store.
virtual P2D * bookProf(STRPAIR loc, CSTR title, DBINS(x), DBINS(y))
H2D * book(CSTR par, int hID, CSTR title, Edges x, Edges y) override
StatusCode retrieveObject(Base *par, int item, H2D *&obj) override
StatusCode retrieveObject(DataObject *par, int item, H3D *&obj) override
StatusCode findObject(CSTR full, H3D *&obj) override
H3D * book(CSTR full, CSTR title, DBINS(x), DBINS(y), DBINS(z)) override
Book histogram and register it with the histogram data store.
H1D * add(CSTR nameAndTitle, const H1D &a, const H1D &b) override
StatusCode retrieveObject(Base *par, CSTR item, P1D *&obj) override
StatusCode retrieveObject(CSTR full, H3D *&obj) override
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(const AIDA::IProfile2D &hist)
Copy constructor.
P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), double upper, double lower, CSTR opt) override
H1D * createHistogram1D(CSTR name, CSTR tit, DBINS(x), CSTR) override
P1D * createProfile1D(CSTR nametit, DBINS(x)) override
StatusCode findObject(DataObject *par, int item, P2D *&obj) override
H2D * createHistogram2D(CSTR nameAndTitle, DBINS(x), DBINS(y)) override
StatusCode retrieveObject(Base *par, int item, H3D *&obj) override
StatusCode findObject(CSTR par, int item, H1D *&obj) override
StatusCode retrieveObject(DataObject *par, CSTR item, H1D *&obj) override
H1D * subtract(CSTR nameAndTitle, const H1D &a, const H1D &b) override
StatusCode retrieveObject(CSTR full, P2D *&obj) override
StatusCode retrieveObject(Base *par, CSTR item, H2D *&obj) override
virtual P2D * bookProf(DataObject *pPar, int hID, CSTR title, Edges x, Edges y, double upper, double lower)
H2D * projectionXZ(CSTR nameAndTitle, const H3D &h) override
StatusCode findObject(CSTR par, CSTR rel, H1D *&obj) override
StatusCode retrieveObject(Base *par, int item, P1D *&obj) override
virtual P1D * bookProf(STRPAIR loc, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
H2D * book(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y)) override
H3D * createHistogram3D(CSTR nameAndTitle, DBINS(x), DBINS(y), DBINS(z)) override
P1D * createProfile1D(CSTR nametit, DBINS(x), double upper, double lower) override
StatusCode findObject(CSTR full, P2D *&obj) override
virtual StatusCode findObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Find object identified by its directory entry.
H1D * createHistogram1D(CSTR name, CSTR tit, DBINS(x))
H1D * createCopy(STRPAIR loc, const H1D &h)
StatusCode findObject(Base *par, int item, P2D *&obj) override
StatusCode findObject(Base *par, int item, H2D *&obj) override
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), double upper, double lower, CSTR) override
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.
H2D * subtract(CSTR nameAndTitle, const H2D &a, const H2D &b) override
StatusCode retrieveObject(DataObject *par, int item, P2D *&obj) override
StatusCode retrieveObject(DataObject *par, int item, H1D *&obj) override
This class is used for returning status codes from appropriate routines.
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *))
P2D * createCopy(DataObject *pPar, CSTR rel, const P2D &h)
P2D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y)) override
H1D * sliceY(CSTR name, const H2D &h, int indexX) override
virtual P2D * bookProf(CSTR par, CSTR rel, CSTR title, Edges x, Edges y, double upper, double lower)
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y))
StatusCode findObject(DataObject *par, int item, H2D *&obj) override
StatusCode findObject(Base *par, CSTR item, H1D *&obj) override
AIDA::IBaseHistogram Base
P1D * createProfile1D(CSTR name, CSTR title, const Edges &x, double upper, double lower, CSTR) override
H1D * book(CSTR full, CSTR title, DBINS(x)) override
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(const AIDA::IHistogram2D &hist)
Copy constructor.
virtual P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
P1D * createCopy(CSTR par, CSTR rel, const P1D &h)
The IRegistry represents the entry door to the environment any data object residing in a transient da...
static DataObject * __cast(T *p)
P2D * createCopy(CSTR par, CSTR rel, const P2D &h)
H2D * add(CSTR nameAndTitle, const H2D &a, const H2D &b) override
StatusCode findObject(Base *par, CSTR item, H2D *&obj) override
StatusCode findObject(DataObject *par, CSTR item, H3D *&obj) override
StatusCode findObject(IRegistry *pReg, CSTR path, P2D *&obj) override
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
H3D * subtract(CSTR nameAndTitle, const H3D &a, const H3D &b) override
StatusCode findObject(Base *par, int item, H1D *&obj) override
virtual P2D * bookProf(CSTR full, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
Book histogram and register it with the histogram data store.
H2D * projectionYZ(CSTR nameAndTitle, const H3D &h) override
P2D * createProfile2D(CSTR nameAndTitle, DBINS(x), DBINS(y), double upper, double lower) override
StatusCode findObject(CSTR par, CSTR rel, H3D *&obj) override
StatusCode findObject(IRegistry *pReg, CSTR path, H1D *&obj) override
H2D * book(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y)) override
StatusCode registerObject(CSTR parent, CSTR rel, Base *obj) override
StatusCode findObject(CSTR full, H1D *&obj) override
StatusCode retrieveObject(CSTR parent, CSTR rel, H2D *&obj) override
H3D * createCopy(CSTR full, const H3D &h) override
P1D * bookProf(CSTR full, CSTR title, Edges e) override
Book histogram and register it with the histogram data store.
H2D * createCopy(STRPAIR loc, const H2D &h)
P2D * bookProf(CSTR full, CSTR title, Edges x, Edges y) override
Book histogram and register it with the histogram data store.
P1D * createCopy(DataObject *pPar, CSTR rel, const P1D &h)
H3D * createHistogram3D(CSTR name, CSTR tit, DBINS(x), DBINS(y), DBINS(z), CSTR) override
StatusCode retrieveObject(CSTR parent, int item, H3D *&obj) override
StatusCode retrieveObject(CSTR full, H1D *&obj) override
StatusCode findObject(CSTR par, CSTR rel, P1D *&obj) override
H1D * book(DataObject *pPar, int hID, CSTR title, DBINS(x)) override
StatusCode findObject(DataObject *par, int item, H3D *&obj) override
H2D * createHistogram2D(CSTR name, CSTR tit, DBINS(x), DBINS(y))
std::vector< std::string > DBaseEntries
P2D * bookProf(CSTR full, CSTR title, DBINS(x), DBINS(y)) override
StatusCode registerObject(Base *pPar, int item, Base *obj) override
StatusCode retrieveObject(DataObject *par, CSTR item, P1D *&obj) override
std::vector< double > Edges
H3D * createCopy(STRPAIR loc, const H3D &h)
H3D * book(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y, Edges z) override
StatusCode retrieveObject(CSTR full, H2D *&obj) override
P2D * bookProf(CSTR par, CSTR rel, CSTR title, Edges x, Edges y) override
StatusCode registerObject(Base *pPar, CSTR rel, Base *obj) override
H3D * createCopy(DataObject *pPar, CSTR rel, const H3D &h)
P2D * createProfile2D(CSTR name, CSTR title, const Edges &x, const Edges &y, double upper, double lower, CSTR) override
StatusCode findObject(CSTR par, int item, H3D *&obj) override
StatusCode retrieveObject(Base *par, CSTR item, P2D *&obj) override
StatusCode unregisterObject(Base *obj, int item) override
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *, Double_t), Double_t scale)
virtual P2D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
virtual H2D * book(STRPAIR loc, CSTR title, Edges x, Edges y)
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Base class used to extend a class implementing other interfaces.
std::pair< DataObject *, AIDA::IHistogram3D * > createH3D(const AIDA::IHistogram3D &hist)
Copy constructor.
AIDA::IHistogramFactory * histogramFactory() override
Retrieve the AIDA HistogramFactory interface.
H2D * createCopy(CSTR full, const H2D &h) override
virtual P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges e, double upper, double lower)
P1D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), double upper, double lower, CSTR opt) override
StatusCode registerObject(CSTR parent, int item, Base *obj) override
StatusCode findObject(CSTR par, int item, P1D *&obj) override
virtual P1D * bookProf(CSTR par, CSTR rel, CSTR title, Edges e, double upper, double lower)
StatusCode retrieveObject(CSTR parent, CSTR rel, H3D *&obj) override
H1D * projectionY(CSTR name, const H2D &h) override
H1D * book(CSTR full, CSTR title, Edges e) override
H3D * book(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y), DBINS(z)) override
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *))
StatusCode findObject(Base *par, CSTR item, P2D *&obj) override
StatusCode retrieveObject(Base *par, CSTR item, H1D *&obj) override
H1D * sliceX(CSTR name, const H2D &h, int indexY) override
StatusCode findObject(DataObject *par, int item, P1D *&obj) override
StatusCode retrieveObject(CSTR parent, CSTR rel, H1D *&obj) override
P2D * bookProf(CSTR par, int hID, CSTR title, Edges x, Edges y) override
H3D * book(CSTR par, int hID, CSTR title, Edges x, Edges y, Edges z) override
StatusCode retrieveObject(DataObject *par, CSTR item, H3D *&obj) override
virtual P2D * bookProf(STRPAIR loc, CSTR title, Edges x, Edges y)
H1D * createCopy(CSTR full, const H1D &h) override
P1D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), double upper, double lower, CSTR opt) override
P2D * createCopy(CSTR full, const P2D &h) override
H1D * createHistogram1D(CSTR name, CSTR title, const Edges &x, CSTR) override
H3D * book(CSTR full, CSTR title, Edges x, Edges y, Edges z) override
Book histogram and register it with the histogram data store.
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
P2D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y)) override
StatusCode retrieveObject(IRegistry *pReg, CSTR path, P2D *&obj) override
StatusCode retrieveObject(DataObject *par, int item, H2D *&obj) override
H2D * projectionXY(CSTR nameAndTitle, const H3D &h) override
H3D * createCopy(CSTR par, CSTR rel, const H3D &h)
std::pair< DataObject *, AIDA::IProfile1D * > createProf1D(const AIDA::IProfile1D &hist)
Copy constructor.
StatusCode retrieveObject(CSTR parent, int item, H2D *&obj) override
H2D * book(DataObject *pPar, int hID, CSTR title, Edges x, Edges y) override
P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), CSTR opt) override
H3D * divide(CSTR nameAndTitle, const H3D &a, const H3D &b) override
P1D * createProfile1D(CSTR name, CSTR tit, DBINS(x), double upper, double lower, CSTR opt) override
StatusCode retrieveObject(DataObject *par, CSTR item, H2D *&obj) override
StatusCode findObject(DataObject *par, CSTR item, P2D *&obj) override
P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges e) override
StatusCode retrieveObject(CSTR parent, CSTR rel, P1D *&obj) override
H2D * divide(CSTR nameAndTitle, const H2D &a, const H2D &b) override
StatusCode findObject(Base *par, int item, P1D *&obj) override
StatusCode retrieve(A1 a1, A3 *&a3)
StatusCode findObject(DataObject *par, CSTR item, H2D *&obj) override
H2D * book(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y)) override
virtual StatusCode registerObject(const std::string &fullPath, DataObject *pObject)=0
Register object with the data store.
StatusCode retrieveObject(Base *par, CSTR item, H3D *&obj) override
virtual H3D * book(STRPAIR loc, CSTR title, DBINS(x), DBINS(y), DBINS(z))
H1D * multiply(CSTR nameAndTitle, const H1D &a, const H1D &b) override
A DataObject is the base class of any identifiable object on any data store.
P1D * createProfile1D(CSTR name, CSTR tit, DBINS(x), CSTR opt) override
virtual H3D * book(STRPAIR loc, CSTR title, Edges x, Edges y, Edges z)
H1D * book(CSTR par, int hID, CSTR title, Edges e) override
Book histogram and register it with the histogram data store.
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), CSTR) override
StatusCode registerObject(DataObject *pPar, int item, Base *obj) override
StatusCode findObject(DataObject *par, CSTR item, P1D *&obj) override
H2D * book(CSTR full, CSTR title, DBINS(x), DBINS(y)) override
Book histogram and register it with the histogram data store.
virtual P1D * bookProf(STRPAIR loc, CSTR title, DBINS(x), CSTR opt)
H3D * book(CSTR par, CSTR rel, CSTR title, Edges x, Edges y, Edges z) override
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
P1D * bookProf(CSTR par, int hID, CSTR title, Edges e) override
StatusCode findObject(IRegistry *pReg, CSTR path, H3D *&obj) override
P2D * createCopy(STRPAIR loc, const P2D &h)
StatusCode findObject(Base *par, int item, H3D *&obj) override
H2D * createHistogram2D(CSTR name, CSTR title, const Edges &x, const Edges &y, CSTR) override
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
P1D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), CSTR opt) override
StatusCode find(A1 a1, A2 a2, A3 *&a3)
StatusCode retrieveObject(IRegistry *pReg, CSTR path, H3D *&obj) override
HistogramSvc class definition.