Go to the documentation of this file.
28 #include <AIDA/IAnnotation.h>
29 #include <AIDA/IHistogramFactory.h>
49 if ( !q && p ) {
throw std::runtime_error(
"HistogramSvc: Unexpected object type." ); }
66 typedef AIDA::IHistogram3D
H3D;
67 typedef AIDA::IProfile2D
P2D;
68 typedef AIDA::IBaseHistogram
Base;
73 template <
class A1,
class A3>
77 a3 =
dynamic_cast<A3*
>( pObject );
80 template <
class A1,
class A2,
class A3>
84 a3 =
dynamic_cast<A3*
>( pObject );
87 template <
class A1,
class A3>
91 a3 =
dynamic_cast<A3*
>( pObject );
94 template <
class A1,
class A2,
class A3>
98 a3 =
dynamic_cast<A3*
>( pObject );
101 template <
class R,
class S,
class T1,
class T2>
102 static R*
act( R* res,
const S& b,
void ( T1::*pmf )(
const T2*, Double_t ), Double_t scale ) {
103 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
104 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
106 ( h1->*pmf )( h2, scale );
111 template <
class R,
class S,
class T1,
class T2>
112 static R*
act( R* res,
const S& b, Bool_t ( T1::*pmf )(
const T2*, Double_t ), Double_t scale ) {
113 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
114 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
116 ( h1->*pmf )( h2, scale );
121 template <
class R,
class S,
class T1,
class T2>
122 static R*
act( R* res,
const S& b,
void ( T1::*pmf )(
const T2* ) ) {
123 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
124 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
131 template <
class R,
class S,
class T1,
class T2>
132 static R*
act( R* res,
const S& b, Bool_t ( T1::*pmf )(
const T2* ) ) {
133 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
134 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
161 std::pair<std::string, std::string>
i_splitPath(
const std::string& full );
170 const std::pair<DataObject*, T*>& o ) {
178 AIDA::IHistogram2D*
i_project(
const std::string& nameAndTitle,
const AIDA::IHistogram3D&
h,
const std::string& dir );
210 AIDA::IHistogram1D*
book(
const std::string&
par,
const std::string& rel,
const std::string& title,
int nx,
211 double lowx,
double upx )
override;
213 AIDA::IHistogram1D*
book(
const std::string&
par,
int hID,
const std::string& title,
int nx,
double lowx,
214 double upx )
override;
216 AIDA::IHistogram1D*
book(
DataObject* pPar,
int hID,
const std::string& title,
int nx,
double lowx,
217 double upx )
override;
219 AIDA::IHistogram1D*
book(
DataObject* pPar,
const std::string& rel,
const std::string& title,
int nx,
double lowx,
220 double upx )
override;
222 virtual AIDA::IHistogram1D*
book(
const std::pair<std::string, std::string>& loc,
const std::string& title,
int nx,
223 double lowx,
double upx );
225 AIDA::IHistogram1D*
book(
const std::string& full,
const std::string& title,
int nx,
double lowx,
226 double upx )
override;
247 AIDA::IProfile1D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
int nx,
248 double lowx,
double upx,
const std::string& opt )
override;
250 AIDA::IProfile1D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
int nx,
double lowx,
251 double upx,
const std::string& opt )
override;
253 AIDA::IProfile1D*
bookProf(
DataObject* pPar,
int hID,
const std::string& title,
int nx,
double lowx,
double upx,
254 const std::string& opt )
override;
256 virtual AIDA::IProfile1D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
int nx,
257 double lowx,
double upx,
const std::string& opt );
259 AIDA::IProfile1D*
bookProf(
const std::string& full,
const std::string& title,
int nx,
double lowx,
double upx,
260 const std::string& opt )
override;
262 AIDA::IProfile1D*
bookProf(
DataObject* pPar,
const std::string& rel,
const std::string& title,
int nx,
double lowx,
263 double upx,
const std::string& opt )
override;
265 AIDA::IProfile1D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
int nx,
266 double lowx,
double upx,
double upper,
double lower,
const std::string& opt )
override;
268 AIDA::IProfile1D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
int nx,
double lowx,
269 double upx,
double upper,
double lower,
const std::string& opt )
override;
271 AIDA::IProfile1D*
bookProf(
DataObject* pPar,
int hID,
const std::string& title,
int nx,
double lowx,
double upx,
272 double upper,
double lower,
const std::string& opt )
override;
274 virtual AIDA::IProfile1D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
int nx,
275 double lowx,
double upx,
double upper,
double lower,
const std::string& opt );
277 AIDA::IProfile1D*
bookProf(
const std::string& full,
const std::string& title,
int nx,
double lowx,
double upx,
278 double upper,
double lower,
const std::string& opt )
override;
280 AIDA::IProfile1D*
bookProf(
DataObject* pPar,
const std::string& rel,
const std::string& title,
int nx,
double lowx,
281 double upx,
double upper,
double lower,
const std::string& opt )
override;
300 AIDA::IHistogram1D*
book(
const std::string&
par,
int hID,
const std::string& title,
Edges e )
override;
302 AIDA::IHistogram1D*
book(
DataObject* pPar,
int hID,
const std::string& title,
Edges e )
override;
304 AIDA::IHistogram1D*
book(
const std::string&
par,
const std::string& rel,
const std::string& title,
307 virtual AIDA::IHistogram1D*
book(
const std::pair<std::string, std::string>& loc,
const std::string& title,
Edges e );
309 AIDA::IHistogram1D*
book(
const std::string& full,
const std::string& title,
Edges e )
override;
311 AIDA::IHistogram1D*
book(
DataObject* pPar,
const std::string& rel,
const std::string& title,
Edges e )
override;
330 AIDA::IProfile1D*
bookProf(
const std::string& full,
const std::string& title,
Edges e )
override;
332 AIDA::IProfile1D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
335 AIDA::IProfile1D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
Edges e )
override;
339 virtual AIDA::IProfile1D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
342 AIDA::IProfile1D*
bookProf(
DataObject* pPar,
const std::string& rel,
const std::string& title,
Edges e )
override;
344 virtual AIDA::IProfile1D*
bookProf(
const std::string& full,
const std::string& title,
Edges e,
double upper,
347 virtual AIDA::IProfile1D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
Edges e,
348 double upper,
double lower );
350 virtual AIDA::IProfile1D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
Edges e,
double upper,
353 virtual AIDA::IProfile1D*
bookProf(
DataObject* pPar,
int hID,
const std::string& title,
Edges e,
double upper,
356 virtual AIDA::IProfile1D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
Edges e,
357 double upper,
double lower );
359 virtual AIDA::IProfile1D*
bookProf(
DataObject* pPar,
const std::string& rel,
const std::string& title,
Edges e,
360 double upper,
double lower );
384 AIDA::IHistogram2D*
book(
const std::string& full,
const std::string& title,
int nx,
double lowx,
double upx,
int ny,
385 double lowy,
double upy )
override;
387 AIDA::IHistogram2D*
book(
const std::string&
par,
const std::string& rel,
const std::string& title,
int nx,
388 double lowx,
double upx,
int ny,
double lowy,
double upy )
override;
390 AIDA::IHistogram2D*
book(
const std::string&
par,
int hID,
const std::string& title,
int nx,
double lowx,
double upx,
391 int ny,
double lowy,
double upy )
override;
393 virtual AIDA::IHistogram2D*
book(
const std::pair<std::string, std::string>& loc,
const std::string& title,
int nx,
394 double lowx,
double upx,
int ny,
double lowy,
double upy );
396 AIDA::IHistogram2D*
book(
DataObject* pPar,
int hID,
const std::string& title,
int nx,
double lowx,
double upx,
397 int ny,
double lowy,
double upy )
override;
399 AIDA::IHistogram2D*
book(
DataObject* pPar,
const std::string& rel,
const std::string& title,
int nx,
double lowx,
400 double upx,
int ny,
double lowy,
double upy )
override;
424 virtual AIDA::IProfile2D*
bookProf(
const std::string& full,
const std::string& title,
int nx,
double lowx,
425 double upx,
int ny,
double lowy,
double upy,
double upper,
double lower );
427 virtual AIDA::IProfile2D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
int nx,
428 double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
431 virtual AIDA::IProfile2D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
int nx,
432 double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
435 virtual AIDA::IProfile2D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
int nx,
double lowx,
436 double upx,
int ny,
double lowy,
double upy,
double upper,
double lower );
438 virtual AIDA::IProfile2D*
bookProf(
DataObject* pPar,
int hID,
const std::string& title,
int nx,
double lowx,
439 double upx,
int ny,
double lowy,
double upy,
double upper,
double lower );
441 virtual AIDA::IProfile2D*
bookProf(
DataObject* pPar,
const std::string& rel,
const std::string& title,
int nx,
442 double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
445 AIDA::IProfile2D*
bookProf(
const std::string& full,
const std::string& title,
int nx,
double lowx,
double upx,
446 int ny,
double lowy,
double upy )
override;
448 AIDA::IProfile2D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
int nx,
449 double lowx,
double upx,
int ny,
double lowy,
double upy )
override;
451 virtual AIDA::IProfile2D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
int nx,
452 double lowx,
double upx,
int ny,
double lowy,
double upy );
454 AIDA::IProfile2D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
int nx,
double lowx,
455 double upx,
int ny,
double lowy,
double upy )
override;
457 AIDA::IProfile2D*
bookProf(
DataObject* pPar,
int hID,
const std::string& title,
int nx,
double lowx,
double upx,
458 int ny,
double lowy,
double upy )
override;
460 AIDA::IProfile2D*
bookProf(
DataObject* pPar,
const std::string& rel,
const std::string& title,
int nx,
double lowx,
461 double upx,
int ny,
double lowy,
double upy )
override;
480 AIDA::IHistogram2D*
book(
const std::string& full,
const std::string& title,
Edges x,
Edges y )
override;
482 AIDA::IHistogram2D*
book(
const std::string&
par,
const std::string& rel,
const std::string& title,
Edges x,
485 AIDA::IHistogram2D*
book(
const std::string&
par,
int hID,
const std::string& title,
Edges x,
Edges y )
override;
487 virtual AIDA::IHistogram2D*
book(
const std::pair<std::string, std::string>& loc,
const std::string& title,
Edges x,
492 AIDA::IHistogram2D*
book(
DataObject* pPar,
const std::string& rel,
const std::string& title,
Edges x,
512 AIDA::IProfile2D*
bookProf(
const std::string& full,
const std::string& title,
Edges x,
Edges y )
override;
514 AIDA::IProfile2D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
Edges x,
517 AIDA::IProfile2D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
Edges x,
Edges y )
override;
521 virtual AIDA::IProfile2D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
Edges x,
527 virtual AIDA::IProfile2D*
bookProf(
const std::string& full,
const std::string& title,
Edges x,
Edges y,
double upper,
530 virtual AIDA::IProfile2D*
bookProf(
const std::string&
par,
const std::string& rel,
const std::string& title,
Edges x,
531 Edges y,
double upper,
double lower );
533 virtual AIDA::IProfile2D*
bookProf(
const std::string&
par,
int hID,
const std::string& title,
Edges x,
Edges y,
534 double upper,
double lower );
537 double upper,
double lower );
539 virtual AIDA::IProfile2D*
bookProf(
const std::pair<std::string, std::string>& loc,
const std::string& title,
Edges x,
540 Edges y,
double upper,
double lower );
542 virtual AIDA::IProfile2D*
bookProf(
DataObject* pPar,
const std::string& rel,
const std::string& title,
Edges x,
543 Edges y,
double upper,
double lower );
564 AIDA::IHistogram3D*
book(
const std::string& full,
const std::string& title,
int nx,
double lowx,
double upx,
int ny,
565 double lowy,
double upy,
int nz,
double lowz,
double upz )
override;
567 AIDA::IHistogram3D*
book(
const std::string&
par,
const std::string& rel,
const std::string& title,
int nx,
568 double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
569 double upz )
override;
571 AIDA::IHistogram3D*
book(
const std::string&
par,
int hID,
const std::string& title,
int nx,
double lowx,
double upx,
572 int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override;
574 AIDA::IHistogram3D*
book(
DataObject* pPar,
int hID,
const std::string& title,
int nx,
double lowx,
double upx,
575 int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override;
577 virtual AIDA::IHistogram3D*
book(
const std::pair<std::string, std::string>& loc,
const std::string& title,
int nx,
578 double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
581 AIDA::IHistogram3D*
book(
DataObject* pPar,
const std::string& rel,
const std::string& title,
int nx,
double lowx,
582 double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override;
603 AIDA::IHistogram3D*
book(
const std::string& full,
const std::string& title,
Edges x,
Edges y,
Edges z )
override;
605 AIDA::IHistogram3D*
book(
const std::string&
par,
const std::string& rel,
const std::string& title,
Edges x,
Edges y,
608 AIDA::IHistogram3D*
book(
const std::string&
par,
int hID,
const std::string& title,
Edges x,
Edges y,
613 virtual AIDA::IHistogram3D*
book(
const std::pair<std::string, std::string>& loc,
const std::string& title,
Edges x,
809 AIDA::IHistogram1D*
projectionX(
const std::string&
name,
const AIDA::IHistogram2D&
h )
override;
811 AIDA::IHistogram1D*
projectionY(
const std::string&
name,
const AIDA::IHistogram2D&
h )
override;
813 AIDA::IHistogram1D*
sliceX(
const std::string&
name,
const AIDA::IHistogram2D&
h,
int indexY )
override;
815 AIDA::IHistogram1D*
sliceY(
const std::string&
name,
const AIDA::IHistogram2D&
h,
int indexX )
override;
817 AIDA::IHistogram1D*
sliceX(
const std::string&
name,
const AIDA::IHistogram2D&
h,
int indexY1,
int indexY2 )
override;
819 AIDA::IHistogram1D*
sliceY(
const std::string&
name,
const AIDA::IHistogram2D&
h,
int indexX1,
int indexX2 )
override;
821 bool destroy( IBaseHistogram* hist )
override;
823 AIDA::IHistogram1D*
add(
const std::string& nameAndTitle,
const AIDA::IHistogram1D& a,
824 const AIDA::IHistogram1D& b )
override;
826 AIDA::IHistogram1D*
subtract(
const std::string& nameAndTitle,
const AIDA::IHistogram1D& a,
827 const AIDA::IHistogram1D& b )
override;
829 AIDA::IHistogram1D*
multiply(
const std::string& nameAndTitle,
const AIDA::IHistogram1D& a,
830 const AIDA::IHistogram1D& b )
override;
832 AIDA::IHistogram1D*
divide(
const std::string& nameAndTitle,
const AIDA::IHistogram1D& a,
833 const AIDA::IHistogram1D& b )
override;
835 AIDA::IHistogram2D*
add(
const std::string& nameAndTitle,
const AIDA::IHistogram2D& a,
836 const AIDA::IHistogram2D& b )
override;
838 AIDA::IHistogram2D*
subtract(
const std::string& nameAndTitle,
const AIDA::IHistogram2D& a,
839 const AIDA::IHistogram2D& b )
override;
841 AIDA::IHistogram2D*
multiply(
const std::string& nameAndTitle,
const AIDA::IHistogram2D& a,
842 const AIDA::IHistogram2D& b )
override;
844 AIDA::IHistogram2D*
divide(
const std::string& nameAndTitle,
const AIDA::IHistogram2D& a,
845 const AIDA::IHistogram2D& b )
override;
847 AIDA::IHistogram3D*
add(
const std::string& nameAndTitle,
const AIDA::IHistogram3D& a,
848 const AIDA::IHistogram3D& b )
override;
850 AIDA::IHistogram3D*
subtract(
const std::string& nameAndTitle,
const AIDA::IHistogram3D& a,
851 const AIDA::IHistogram3D& b )
override;
853 AIDA::IHistogram3D*
multiply(
const std::string& nameAndTitle,
const AIDA::IHistogram3D& a,
854 const AIDA::IHistogram3D& b )
override;
856 AIDA::IHistogram3D*
divide(
const std::string& nameAndTitle,
const AIDA::IHistogram3D& a,
857 const AIDA::IHistogram3D& b )
override;
859 AIDA::IHistogram2D*
projectionXY(
const std::string& nameAndTitle,
const AIDA::IHistogram3D&
h )
override;
861 AIDA::IHistogram2D*
projectionXZ(
const std::string& nameAndTitle,
const AIDA::IHistogram3D&
h )
override;
863 AIDA::IHistogram2D*
projectionYZ(
const std::string& nameAndTitle,
const AIDA::IHistogram3D&
h )
override;
865 AIDA::IHistogram2D*
sliceXY(
const std::string& ,
const AIDA::IHistogram3D& ,
int ,
871 AIDA::IHistogram2D*
sliceXZ(
const std::string& ,
const AIDA::IHistogram3D& ,
int ,
877 AIDA::IHistogram2D*
sliceYZ(
const std::string& ,
const AIDA::IHistogram3D& ,
int ,
883 AIDA::IHistogram1D*
createHistogram1D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
886 AIDA::IHistogram1D*
createHistogram1D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
887 double upx,
const std::string& )
override;
890 const std::string& )
override;
892 AIDA::IHistogram1D*
createHistogram1D(
const std::string& nameAndTitle,
int nx,
double lowx,
double upx )
override;
894 AIDA::IHistogram1D*
createCopy(
const std::string& full,
const AIDA::IHistogram1D&
h )
override;
896 AIDA::IHistogram1D*
createCopy(
const std::string&
par,
const std::string& rel,
const AIDA::IHistogram1D&
h );
898 AIDA::IHistogram1D*
createCopy(
const std::pair<std::string, std::string>& loc,
const AIDA::IHistogram1D&
h );
900 AIDA::IHistogram1D*
createCopy(
DataObject* pPar,
const std::string& rel,
const AIDA::IHistogram1D&
h );
902 AIDA::IHistogram2D*
createHistogram2D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
903 double upx,
int ny,
double lowy,
double upy );
905 AIDA::IHistogram2D*
createHistogram2D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
906 double upx,
int ny,
double lowy,
double upy,
907 const std::string& )
override;
910 const Edges& y,
const std::string& )
override;
912 AIDA::IHistogram2D*
createHistogram2D(
const std::string& nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
913 double lowy,
double upy )
override;
915 AIDA::IHistogram2D*
createCopy(
const std::string& full,
const AIDA::IHistogram2D&
h )
override;
917 AIDA::IHistogram2D*
createCopy(
const std::string&
par,
const std::string& rel,
const AIDA::IHistogram2D&
h );
919 AIDA::IHistogram2D*
createCopy(
const std::pair<std::string, std::string>& loc,
const AIDA::IHistogram2D&
h );
921 AIDA::IHistogram2D*
createCopy(
DataObject* pPar,
const std::string& rel,
const AIDA::IHistogram2D&
h );
923 AIDA::IHistogram3D*
createHistogram3D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
924 double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz );
926 AIDA::IHistogram3D*
createHistogram3D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
927 double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz,
928 const std::string& )
override;
931 const Edges& y,
const Edges& z,
const std::string& )
override;
933 AIDA::IHistogram3D*
createHistogram3D(
const std::string& nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
934 double lowy,
double upy,
int nz,
double lowz,
double upz )
override;
936 AIDA::IHistogram3D*
createCopy(
const std::string& full,
const AIDA::IHistogram3D&
h )
override;
938 AIDA::IHistogram3D*
createCopy(
const std::string&
par,
const std::string& rel,
const AIDA::IHistogram3D&
h );
940 AIDA::IHistogram3D*
createCopy(
const std::pair<std::string, std::string>& loc,
const AIDA::IHistogram3D&
h );
942 AIDA::IHistogram3D*
createCopy(
DataObject* pPar,
const std::string& rel,
const AIDA::IHistogram3D&
h );
944 AIDA::IProfile1D*
createProfile1D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
double upx,
945 const std::string& opt )
override;
947 AIDA::IProfile1D*
createProfile1D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
double upx,
948 double upper,
double lower,
const std::string& opt )
override;
951 const std::string& )
override;
954 double lower,
const std::string& )
override;
956 AIDA::IProfile1D*
createProfile1D(
const std::string& nametit,
int nx,
double lowx,
double upx )
override;
958 AIDA::IProfile1D*
createProfile1D(
const std::string& nametit,
int nx,
double lowx,
double upx,
double upper,
959 double lower )
override;
961 AIDA::IProfile1D*
createCopy(
const std::string& full,
const AIDA::IProfile1D&
h )
override;
963 AIDA::IProfile1D*
createCopy(
const std::string&
par,
const std::string& rel,
const AIDA::IProfile1D&
h );
965 AIDA::IProfile1D*
createCopy(
const std::pair<std::string, std::string>& loc,
const AIDA::IProfile1D&
h );
969 AIDA::IProfile2D*
createProfile2D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
double upx,
970 int ny,
double lowy,
double upy );
972 AIDA::IProfile2D*
createProfile2D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
double upx,
973 int ny,
double lowy,
double upy,
const std::string& )
override;
976 const std::string& )
override;
978 AIDA::IProfile2D*
createProfile2D(
const std::string& nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
979 double lowy,
double upy )
override;
981 AIDA::IProfile2D*
createProfile2D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
double upx,
982 int ny,
double lowy,
double upy,
double upper,
double lower );
984 AIDA::IProfile2D*
createProfile2D(
const std::string&
name,
const std::string& title,
int nx,
double lowx,
double upx,
985 int ny,
double lowy,
double upy,
double upper,
double lower,
986 const std::string& )
override;
989 double upper,
double lower,
const std::string& )
override;
991 AIDA::IProfile2D*
createProfile2D(
const std::string& nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
992 double lowy,
double upy,
double upper,
double lower )
override;
994 AIDA::IProfile2D*
createCopy(
const std::string& full,
const AIDA::IProfile2D&
h )
override;
996 AIDA::IProfile2D*
createCopy(
const std::string&
par,
const std::string& rel,
const AIDA::IProfile2D&
h );
998 AIDA::IProfile2D*
createCopy(
const std::pair<std::string, std::string>& loc,
const AIDA::IProfile2D&
h );
1000 AIDA::IProfile2D*
createCopy(
DataObject* pPar,
const std::string& rel,
const AIDA::IProfile2D&
h );
1002 AIDA::ICloud1D*
createCloud1D(
const std::string&,
const std::string&,
int,
const std::string& )
override {
1012 AIDA::ICloud1D*
createCopy(
const std::string&,
const AIDA::ICloud1D& )
override {
1017 AIDA::ICloud2D*
createCloud2D(
const std::string&,
const std::string&,
int,
const std::string& )
override {
1027 AIDA::ICloud2D*
createCopy(
const std::string&,
const AIDA::ICloud2D& )
override {
1032 AIDA::ICloud3D*
createCloud3D(
const std::string&,
const std::string&,
int,
const std::string& )
override {
1042 AIDA::ICloud3D*
createCopy(
const std::string&,
const AIDA::ICloud3D& )
override {
1054 std::ostream&
print(
Base*
h, std::ostream&
s = std::cout )
const override;
1057 std::ostream&
write(
Base*
h, std::ostream&
s = std::cout )
const override;
AIDA::IProfile1D * bookProf(const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.
std::ostream & write(Base *h, std::ostream &s=std::cout) const override
Write (ASCII) the 1D histogram table into the output stream.
AIDA::IHistogram1D * sliceX(const std::string &name, const AIDA::IHistogram2D &h, int indexY1, int indexY2) override
AIDA::IProfile2D * createProfile2D(const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
~HistogramSvc() override
Destructor.
AIDA::IProfile1D * bookProf(DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *))
StatusCode find(A1 a1, A2 a2, A3 *&a3)
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *))
std::set< std::string > m_mods1D
StatusCode registerObject(DataObject *pPar, const std::string &rel, Base *obj) override
AIDA::IProfile1D * bookProf(const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
std::map< std::string, Gaudi::Histo1DDef > Histo1DMap
StatusCode retrieveObject(IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override
AIDA::IProfile1D * bookProf(const std::string &full, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
AIDA::IHistogram2D * projectionXY(const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
Gaudi::Property< Histo1DMap > m_defs1D
virtual AIDA::IHistogram1D * book(const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx)
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
StatusCode finalize() override
finalize the service
AIDA::IHistogram1D * sliceX(const std::string &name, const AIDA::IHistogram2D &h, int indexY) override
AIDA::IBaseHistogram Base
AIDA::IHistogram3D * createHistogram3D(const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz)
AIDA::IHistogram1D * sliceY(const std::string &name, const AIDA::IHistogram2D &h, int indexX) override
AIDA::ICloud1D * createCloud1D(const std::string &, const std::string &, int, const std::string &) override
std::vector< std::string > DBaseEntries
StatusCode retrieve(A1 a1, A2 a2, A3 *&a3)
AIDA::ICloud1D * createCloud1D(const std::string &) override
StatusCode registerObject(std::string_view fullPath, DataObject *pObject)
Register object with the data store.
AIDA::IHistogram1D * book(DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
AIDA::IHistogram1D * createHistogram1D(const std::string &name, const std::string &title, int nx, double lowx, double upx)
AIDA::IProfile1D * bookProf(const std::string &full, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
StatusCode retrieve(A1 a1, A3 *&a3)
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
AIDA::ICloud1D * createCopy(const std::string &, const AIDA::ICloud1D &) override
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *, Double_t), Double_t scale)
StatusCode initialize() override
Initialise the service.
const std::string & name() const override
Retrieve name of the service
AIDA::IProfile1D * createProfile1D(const std::string &name, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
AIDA::IHistogram1D * subtract(const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
AIDA::IHistogram1D * projectionY(const std::string &name, const AIDA::IHistogram2D &h) override
AIDA::IHistogram1D * multiply(const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
StatusCode connectInput(const std::string &ident)
Connect input histogram file to the service.
std::vector< double > Edges
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
StatusCode unregisterObject(Base *obj) override
AIDA::IHistogram1D * book(const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx) override
AIDA::ICloud2D * createCloud2D(const std::string &) override
AIDA::IHistogram2D * sliceYZ(const std::string &, const AIDA::IHistogram3D &, int, int) override
virtual AIDA::IProfile1D * bookProf(const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, const std::string &opt)
bool destroy(IBaseHistogram *hist) override
int write(Base *h, const char *file_name) const override
Write (ASCII) the 1D histogram table into a file.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Base class used to extend a class implementing other interfaces.
AIDA::IHistogramFactory * histogramFactory() override
Retrieve the AIDA HistogramFactory interface.
AIDA::IHistogram2D * projectionXZ(const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
AIDA::ICloud3D * createCloud3D(const std::string &) override
std::string buildHistoPath(DataObject const *pPar, std::string const &rel)
extracts the path of an histogram from the related DataObject
AIDA::IHistogram2D * sliceXY(const std::string &, const AIDA::IHistogram3D &, int, int) override
AIDA::IHistogram2D * sliceXZ(const std::string &, const AIDA::IHistogram3D &, int, int) override
StatusCode findObject(IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
AIDA::IHistogram2D * createHistogram2D(const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IProfile1D * bookProf(DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
AIDA::IHistogram1D * book(const std::string &full, const std::string &title, int nx, double lowx, double upx) override
AIDA::IHistogram1D * projectionX(const std::string &name, const AIDA::IHistogram2D &h) override
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::ICloud3D * createCopy(const std::string &, const AIDA::ICloud3D &) override
AIDA::IHistogram1D * book(DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx) override
AIDA::IHistogram2D * i_project(const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
Helper for 2D projections.
virtual AIDA::IProfile1D * bookProf(const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt)
AIDA::IProfile1D * bookProf(DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
std::ostream & print(Base *h, std::ostream &s=std::cout) const override
Print (ASCII) the 1D histogram into the output stream.
StatusCode reinitialize() override
Initialise the service.
StatusCode registerObject(std::string_view parentPath, std::string_view objPath, DataObject *pObject) override
Register object with the data store.
Gaudi::Property< DBaseEntries > m_input
AIDA::IHistogram1D * sliceY(const std::string &name, const AIDA::IHistogram2D &h, int indexX1, int indexX2) override
HistogramSvc(const std::string &name, ISvcLocator *svc)
Statndard Constructor.
void not_implemented() const
void update1Ddefs()
handler to be invoked for updating property m_defs1D
constexpr static const auto FAILURE
AIDA::IHistogram2D * projectionYZ(const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
AIDA::IHistogram1D * divide(const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
AIDA::ICloud2D * createCloud2D(const std::string &, const std::string &, int, const std::string &) override
AIDA::ICloud3D * createCloud3D(const std::string &, const std::string &, int, const std::string &) override
DataObject * createDirectory(const std::string &parentDir, const std::string &subDir) override
Create a sub-directory in a directory.
AIDA::IProfile1D * bookProf(DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
virtual StatusCode findObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Find object identified by its directory entry.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram1D * add(const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
StatusCode registerObject(const std::string &full, Base *obj) override
StatusCode find(A1 a1, A3 *&a3)
AIDA::ICloud2D * createCopy(const std::string &, const AIDA::ICloud2D &) override