| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

HistogramSvc.h
Go to the documentation of this file.
1 // ============================================================================
2 #ifndef GAUDISVC_HISTOGRAMSVC_H
3 #define GAUDISVC_HISTOGRAMSVC_H 1
4 // ============================================================================
5 // Include Files
6 // ============================================================================
7 // GaudiKernel
8 // ============================================================================
9 #include "GaudiKernel/DataSvc.h"
10 #include "GaudiKernel/GaudiException.h"
11 #include "GaudiKernel/HistoProperty.h"
12 #include "GaudiKernel/IHistogramSvc.h"
13 #include "GaudiKernel/IRegistry.h"
14 #include "GaudiKernel/System.h"
15 // ============================================================================
16 // AIDA
17 // ============================================================================
19 #include "AIDA/IAnnotation.h"
20 #include "AIDA/IHistogramFactory.h"
21 // ============================================================================
22 // local (+PI)
23 // ============================================================================
24 #include "Axis.h"
25 #include "HistogramUtility.h"
26 #include "TH1.h"
27 #include "TH2.h"
28 #include "TH3.h"
29 // ============================================================================
30 namespace AIDA
31 {
32 class ICloud1D;
33 class ICloud2D;
34 class ICloud3D;
35 }
36
37 namespace detail
38 {
39 template <class T>
40 static DataObject* cast( T* p )
41 {
42 DataObject* q = dynamic_cast<DataObject*>( p );
43 if ( !q && p ) {
44 throw std::runtime_error( "HistogramSvc: Unexpected object type." );
45 }
46 return q;
47 }
48 }
49
50 // ============================================================================
56 class HistogramSvc : public extends<DataSvc, IHistogramSvc>, virtual public AIDA::IHistogramFactory
57 {
58
59 private:
60 void not_implemented() const { error() << "Sorry, not yet implemented..." << endmsg; }
61
62 protected:
63 typedef AIDA::IHistogram3D H3D;
64 typedef AIDA::IProfile2D P2D;
65 typedef AIDA::IBaseHistogram Base;
66
67 struct Helper {
68 HistogramSvc* m_svc;
69 Helper( HistogramSvc* p ) : m_svc( p ) {}
70 template <class A1, class A3>
71 StatusCode retrieve( A1 a1, A3*& a3 )
72 {
73 DataObject* pObject = nullptr;
74 StatusCode sc = m_svc->DataSvc::retrieveObject( a1, pObject );
75 a3 = dynamic_cast<A3*>( pObject );
76 return sc;
77 }
78 template <class A1, class A2, class A3>
79 StatusCode retrieve( A1 a1, A2 a2, A3*& a3 )
80 {
81 DataObject* pObject = nullptr;
82 StatusCode sc = m_svc->DataSvc::retrieveObject( a1, a2, pObject );
83 a3 = dynamic_cast<A3*>( pObject );
84 return sc;
85 }
86 template <class A1, class A3>
87 StatusCode find( A1 a1, A3*& a3 )
88 {
89 DataObject* pObject = nullptr;
90 StatusCode sc = m_svc->DataSvc::findObject( a1, pObject );
91 a3 = dynamic_cast<A3*>( pObject );
92 return sc;
93 }
94 template <class A1, class A2, class A3>
95 StatusCode find( A1 a1, A2 a2, A3*& a3 )
96 {
97 DataObject* pObject = nullptr;
98 StatusCode sc = m_svc->DataSvc::findObject( a1, a2, pObject );
99 a3 = dynamic_cast<A3*>( pObject );
100 return sc;
101 }
102 template <class R, class S, class T1, class T2>
103 static R* act( R* res, const S& b, void ( T1::*pmf )( const T2*, Double_t ), Double_t scale )
104 {
105 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
106 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
107 if ( h1 && h2 ) {
108 ( h1->*pmf )( h2, scale );
109 return res;
110 }
111 return nullptr;
112 }
113 template <class R, class S, class T1, class T2>
114 static R* act( R* res, const S& b, Bool_t ( T1::*pmf )( const T2*, Double_t ), Double_t scale )
115 {
116 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
117 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
118 if ( h1 && h2 ) {
119 ( h1->*pmf )( h2, scale );
120 return res;
121 }
122 return nullptr;
123 }
124 template <class R, class S, class T1, class T2>
125 static R* act( R* res, const S& b, void ( T1::*pmf )( const T2* ) )
126 {
127 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
128 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
129 if ( h1 && h2 ) {
130 ( h1->*pmf )( h2 );
131 return res;
132 }
133 return nullptr;
134 }
135 template <class R, class S, class T1, class T2>
136 static R* act( R* res, const S& b, Bool_t ( T1::*pmf )( const T2* ) )
137 {
138 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
139 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
140 if ( h1 && h2 ) {
141 ( h1->*pmf )( h2 );
142 return res;
143 }
144 return nullptr;
145 }
146 };
147
148 public:
149 using Edges = std::vector<double>;
150 using DBaseEntries = std::vector<std::string>;
151
156 HistogramSvc( const std::string& name, ISvcLocator* svc );
157
159 ~HistogramSvc() override;
160
166 std::pair<std::string, std::string> i_splitPath( const std::string& full );
167
171 StatusCode connectInput( const std::string& ident );
172
173 template <class T>
174 inline T* i_book( DataObject* pPar, const std::string& rel, const std::string& title,
175 const std::pair<DataObject*, T*>& o )
176 {
177 if ( o.first && registerObject( pPar, rel, (Base*)o.second ).isSuccess() ) return o.second;
178 delete o.first;
179 throw GaudiException( "Cannot book " + System::typeinfoName( typeid( T ) ) + " " + title, "HistogramSvc",
180 StatusCode::FAILURE );
181 }
182
184 AIDA::IHistogram2D* i_project( const std::string& nameAndTitle, const AIDA::IHistogram3D& h, const std::string& dir );
185
186 public:
188 StatusCode initialize() override;
190 StatusCode reinitialize() override;
192 StatusCode finalize() override;
193
195 AIDA::IHistogramFactory* histogramFactory() override { return this; }
196
197 // ==========================================================================
198 // Book 1D histogram with fix binning
199 // ==========================================================================
216 AIDA::IHistogram1D* book( const std::string& par, const std::string& rel, const std::string& title, int nx,
217 double lowx, double upx ) override;
218
219 AIDA::IHistogram1D* book( const std::string& par, int hID, const std::string& title, int nx, double lowx,
220 double upx ) override;
221
222 AIDA::IHistogram1D* book( DataObject* pPar, int hID, const std::string& title, int nx, double lowx,
223 double upx ) override;
224
225 AIDA::IHistogram1D* book( DataObject* pPar, const std::string& rel, const std::string& title, int nx, double lowx,
226 double upx ) override;
227
228 virtual AIDA::IHistogram1D* book( const std::pair<std::string, std::string>& loc, const std::string& title, int nx,
229 double lowx, double upx );
230
231 AIDA::IHistogram1D* book( const std::string& full, const std::string& title, int nx, double lowx,
232 double upx ) override;
233
234 // ==========================================================================
235 // Book 1D Profile histogram with fix binning
236 // ==========================================================================
253 AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel, const std::string& title, int nx,
254 double lowx, double upx, const std::string& opt ) override;
255
256 AIDA::IProfile1D* bookProf( const std::string& par, int hID, const std::string& title, int nx, double lowx,
257 double upx, const std::string& opt ) override;
258
259 AIDA::IProfile1D* bookProf( DataObject* pPar, int hID, const std::string& title, int nx, double lowx, double upx,
260 const std::string& opt ) override;
261
262 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title, int nx,
263 double lowx, double upx, const std::string& opt );
264
265 AIDA::IProfile1D* bookProf( const std::string& full, const std::string& title, int nx, double lowx, double upx,
266 const std::string& opt ) override;
267
268 AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, int nx, double lowx,
269 double upx, const std::string& opt ) override;
270
271 AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel, const std::string& title, int nx,
272 double lowx, double upx, double upper, double lower, const std::string& opt ) override;
273
274 AIDA::IProfile1D* bookProf( const std::string& par, int hID, const std::string& title, int nx, double lowx,
275 double upx, double upper, double lower, const std::string& opt ) override;
276
277 AIDA::IProfile1D* bookProf( DataObject* pPar, int hID, const std::string& title, int nx, double lowx, double upx,
278 double upper, double lower, const std::string& opt ) override;
279
280 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title, int nx,
281 double lowx, double upx, double upper, double lower, const std::string& opt );
282
283 AIDA::IProfile1D* bookProf( const std::string& full, const std::string& title, int nx, double lowx, double upx,
284 double upper, double lower, const std::string& opt ) override;
285
286 AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, int nx, double lowx,
287 double upx, double upper, double lower, const std::string& opt ) override;
288
289 // ==========================================================================
290 // Book 1D histogram with variable binning
291 // ==========================================================================
306 AIDA::IHistogram1D* book( const std::string& par, int hID, const std::string& title, Edges e ) override;
307
308 AIDA::IHistogram1D* book( DataObject* pPar, int hID, const std::string& title, Edges e ) override;
309
310 AIDA::IHistogram1D* book( const std::string& par, const std::string& rel, const std::string& title,
311 Edges e ) override;
312
313 virtual AIDA::IHistogram1D* book( const std::pair<std::string, std::string>& loc, const std::string& title, Edges e );
314
315 AIDA::IHistogram1D* book( const std::string& full, const std::string& title, Edges e ) override;
316
317 AIDA::IHistogram1D* book( DataObject* pPar, const std::string& rel, const std::string& title, Edges e ) override;
318
319 // ==========================================================================
320 // Book 1D profile histogram with variable binning
321 // ==========================================================================
336 AIDA::IProfile1D* bookProf( const std::string& full, const std::string& title, Edges e ) override;
337
338 AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel, const std::string& title,
339 Edges e ) override;
340
341 AIDA::IProfile1D* bookProf( const std::string& par, int hID, const std::string& title, Edges e ) override;
342
343 AIDA::IProfile1D* bookProf( DataObject* pPar, int hID, const std::string& title, Edges e ) override;
344
345 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title,
346 Edges e );
347
348 AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, Edges e ) override;
349
350 virtual AIDA::IProfile1D* bookProf( const std::string& full, const std::string& title, Edges e, double upper,
351 double lower );
352
353 virtual AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel, const std::string& title, Edges e,
354 double upper, double lower );
355
356 virtual AIDA::IProfile1D* bookProf( const std::string& par, int hID, const std::string& title, Edges e, double upper,
357 double lower );
358
359 virtual AIDA::IProfile1D* bookProf( DataObject* pPar, int hID, const std::string& title, Edges e, double upper,
360 double lower );
361
362 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title, Edges e,
363 double upper, double lower );
364
365 virtual AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, Edges e,
366 double upper, double lower );
367
368 // ==========================================================================
369 // Book 2D histogram with fixed binning
370 // ==========================================================================
390 AIDA::IHistogram2D* book( const std::string& full, const std::string& title, int nx, double lowx, double upx, int ny,
391 double lowy, double upy ) override;
392
393 AIDA::IHistogram2D* book( const std::string& par, const std::string& rel, const std::string& title, int nx,
394 double lowx, double upx, int ny, double lowy, double upy ) override;
395
396 AIDA::IHistogram2D* book( const std::string& par, int hID, const std::string& title, int nx, double lowx, double upx,
397 int ny, double lowy, double upy ) override;
398
399 virtual AIDA::IHistogram2D* book( const std::pair<std::string, std::string>& loc, const std::string& title, int nx,
400 double lowx, double upx, int ny, double lowy, double upy );
401
402 AIDA::IHistogram2D* book( DataObject* pPar, int hID, const std::string& title, int nx, double lowx, double upx,
403 int ny, double lowy, double upy ) override;
404
405 AIDA::IHistogram2D* book( DataObject* pPar, const std::string& rel, const std::string& title, int nx, double lowx,
406 double upx, int ny, double lowy, double upy ) override;
407
408 // ==========================================================================
409 // Book 2D profile histogram with fixed binning
410 // ==========================================================================
430 virtual AIDA::IProfile2D* bookProf( const std::string& full, const std::string& title, int nx, double lowx,
431 double upx, int ny, double lowy, double upy, double upper, double lower );
432
433 virtual AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel, const std::string& title, int nx,
434 double lowx, double upx, int ny, double lowy, double upy, double upper,
435 double lower );
436
437 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title, int nx,
438 double lowx, double upx, int ny, double lowy, double upy, double upper,
439 double lower );
440
441 virtual AIDA::IProfile2D* bookProf( const std::string& par, int hID, const std::string& title, int nx, double lowx,
442 double upx, int ny, double lowy, double upy, double upper, double lower );
443
444 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, int hID, const std::string& title, int nx, double lowx,
445 double upx, int ny, double lowy, double upy, double upper, double lower );
446
447 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, int nx,
448 double lowx, double upx, int ny, double lowy, double upy, double upper,
449 double lower );
450
451 AIDA::IProfile2D* bookProf( const std::string& full, const std::string& title, int nx, double lowx, double upx,
452 int ny, double lowy, double upy ) override;
453
454 AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel, const std::string& title, int nx,
455 double lowx, double upx, int ny, double lowy, double upy ) override;
456
457 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title, int nx,
458 double lowx, double upx, int ny, double lowy, double upy );
459
460 AIDA::IProfile2D* bookProf( const std::string& par, int hID, const std::string& title, int nx, double lowx,
461 double upx, int ny, double lowy, double upy ) override;
462
463 AIDA::IProfile2D* bookProf( DataObject* pPar, int hID, const std::string& title, int nx, double lowx, double upx,
464 int ny, double lowy, double upy ) override;
465
466 AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, int nx, double lowx,
467 double upx, int ny, double lowy, double upy ) override;
468
469 // ==========================================================================
470 // Book 2D histogram with variable binning
471 // ==========================================================================
486 AIDA::IHistogram2D* book( const std::string& full, const std::string& title, Edges x, Edges y ) override;
487
488 AIDA::IHistogram2D* book( const std::string& par, const std::string& rel, const std::string& title, Edges x,
489 Edges y ) override;
490
491 AIDA::IHistogram2D* book( const std::string& par, int hID, const std::string& title, Edges x, Edges y ) override;
492
493 virtual AIDA::IHistogram2D* book( const std::pair<std::string, std::string>& loc, const std::string& title, Edges x,
494 Edges y );
495
496 AIDA::IHistogram2D* book( DataObject* pPar, int hID, const std::string& title, Edges x, Edges y ) override;
497
498 AIDA::IHistogram2D* book( DataObject* pPar, const std::string& rel, const std::string& title, Edges x,
499 Edges y ) override;
500
501 // ==========================================================================
502 // Book 2D profile histogram with variable binning
503 // ==========================================================================
518 AIDA::IProfile2D* bookProf( const std::string& full, const std::string& title, Edges x, Edges y ) override;
519
520 AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel, const std::string& title, Edges x,
521 Edges y ) override;
522
523 AIDA::IProfile2D* bookProf( const std::string& par, int hID, const std::string& title, Edges x, Edges y ) override;
524
525 AIDA::IProfile2D* bookProf( DataObject* pPar, int hID, const std::string& title, Edges x, Edges y ) override;
526
527 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title, Edges x,
528 Edges y );
529
530 AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, Edges x,
531 Edges y ) override;
532
533 virtual AIDA::IProfile2D* bookProf( const std::string& full, const std::string& title, Edges x, Edges y, double upper,
534 double lower );
535
536 virtual AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel, const std::string& title, Edges x,
537 Edges y, double upper, double lower );
538
539 virtual AIDA::IProfile2D* bookProf( const std::string& par, int hID, const std::string& title, Edges x, Edges y,
540 double upper, double lower );
541
542 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, int hID, const std::string& title, Edges x, Edges y,
543 double upper, double lower );
544
545 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc, const std::string& title, Edges x,
546 Edges y, double upper, double lower );
547
548 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title, Edges x,
549 Edges y, double upper, double lower );
550
551 // ==========================================================================
552 // Book 3D histogram with fixed binning
553 // ==========================================================================
570 AIDA::IHistogram3D* book( const std::string& full, const std::string& title, int nx, double lowx, double upx, int ny,
571 double lowy, double upy, int nz, double lowz, double upz ) override;
572
573 AIDA::IHistogram3D* book( const std::string& par, const std::string& rel, const std::string& title, int nx,
574 double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz,
575 double upz ) override;
576
577 AIDA::IHistogram3D* book( const std::string& par, int hID, const std::string& title, int nx, double lowx, double upx,
578 int ny, double lowy, double upy, int nz, double lowz, double upz ) override;
579
580 AIDA::IHistogram3D* book( DataObject* pPar, int hID, const std::string& title, int nx, double lowx, double upx,
581 int ny, double lowy, double upy, int nz, double lowz, double upz ) override;
582
583 virtual AIDA::IHistogram3D* book( const std::pair<std::string, std::string>& loc, const std::string& title, int nx,
584 double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz,
585 double upz );
586
587 AIDA::IHistogram3D* book( DataObject* pPar, const std::string& rel, const std::string& title, int nx, double lowx,
588 double upx, int ny, double lowy, double upy, int nz, double lowz, double upz ) override;
589
590 // ==========================================================================
591 // Book 3D histogram with variable binning
592 // ==========================================================================
609 AIDA::IHistogram3D* book( const std::string& full, const std::string& title, Edges x, Edges y, Edges z ) override;
610
611 AIDA::IHistogram3D* book( const std::string& par, const std::string& rel, const std::string& title, Edges x, Edges y,
612 Edges z ) override;
613
614 AIDA::IHistogram3D* book( const std::string& par, int hID, const std::string& title, Edges x, Edges y,
615 Edges z ) override;
616
617 AIDA::IHistogram3D* book( DataObject* pPar, int hID, const std::string& title, Edges x, Edges y, Edges z ) override;
618
619 virtual AIDA::IHistogram3D* book( const std::pair<std::string, std::string>& loc, const std::string& title, Edges x,
620 Edges y, Edges z );
621
622 AIDA::IHistogram3D* book( DataObject* pPar, const std::string& rel, const std::string& title, Edges x, Edges y,
623 Edges z ) override;
624
625 // ==========================================================================
626 // Register histogram with the data store
627 // ==========================================================================
628 StatusCode registerObject( const std::string& parent, const std::string& rel, Base* obj ) override;
629
630 StatusCode registerObject( const std::string& parent, int item, Base* obj ) override;
631
632 StatusCode registerObject( Base* pPar, const std::string& rel, Base* obj ) override;
633
634 StatusCode registerObject( DataObject* pPar, int item, Base* obj ) override;
635
636 StatusCode registerObject( Base* pPar, int item, Base* obj ) override;
637
638 StatusCode registerObject( const std::string& full, Base* obj ) override;
639
640 StatusCode registerObject( DataObject* pPar, const std::string& rel, Base* obj ) override;
641
642 // ==========================================================================
643 // Unregister histogram from the data store
644 // ==========================================================================
645 StatusCode unregisterObject( Base* obj ) override;
646
647 StatusCode unregisterObject( Base* obj, const std::string& objectPath ) override;
648
649 StatusCode unregisterObject( Base* obj, int item ) override;
650
651 // ==========================================================================
652 // Retrieve histogram from data store
653 // ==========================================================================
654 StatusCode retrieveObject( IRegistry* pReg, const std::string& path, AIDA::IHistogram1D*& obj ) override;
655
656 StatusCode retrieveObject( IRegistry* pReg, const std::string& path, AIDA::IProfile1D*& obj ) override;
657
658 StatusCode retrieveObject( IRegistry* pReg, const std::string& path, AIDA::IHistogram2D*& obj ) override;
659
660 StatusCode retrieveObject( IRegistry* pReg, const std::string& path, AIDA::IProfile2D*& obj ) override;
661
662 StatusCode retrieveObject( IRegistry* pReg, const std::string& path, AIDA::IHistogram3D*& obj ) override;
663
664 StatusCode retrieveObject( const std::string& full, AIDA::IProfile1D*& obj ) override;
665
666 StatusCode retrieveObject( const std::string& full, AIDA::IProfile2D*& obj ) override;
667
668 StatusCode retrieveObject( const std::string& full, AIDA::IHistogram1D*& obj ) override;
669
670 StatusCode retrieveObject( const std::string& full, AIDA::IHistogram2D*& obj ) override;
671
672 StatusCode retrieveObject( const std::string& full, AIDA::IHistogram3D*& obj ) override;
673
674 StatusCode retrieveObject( const std::string& parent, const std::string& rel, AIDA::IProfile1D*& obj ) override;
675
676 StatusCode retrieveObject( const std::string& parent, const std::string& rel, AIDA::IProfile2D*& obj ) override;
677
678 StatusCode retrieveObject( const std::string& parent, const std::string& rel, AIDA::IHistogram1D*& obj ) override;
679
680 StatusCode retrieveObject( const std::string& parent, const std::string& rel, AIDA::IHistogram2D*& obj ) override;
681
682 StatusCode retrieveObject( const std::string& parent, const std::string& rel, AIDA::IHistogram3D*& obj ) override;
683
684 StatusCode retrieveObject( const std::string& parent, int item, AIDA::IProfile1D*& obj ) override;
685
686 StatusCode retrieveObject( const std::string& parent, int item, AIDA::IProfile2D*& obj ) override;
687
688 StatusCode retrieveObject( const std::string& parent, int item, AIDA::IHistogram1D*& obj ) override;
689
690 StatusCode retrieveObject( const std::string& parent, int item, AIDA::IHistogram2D*& obj ) override;
691
692 StatusCode retrieveObject( const std::string& parent, int item, AIDA::IHistogram3D*& obj ) override;
693
694 StatusCode retrieveObject( DataObject* par, const std::string& item, AIDA::IProfile1D*& obj ) override;
695
696 StatusCode retrieveObject( DataObject* par, const std::string& item, AIDA::IProfile2D*& obj ) override;
697
698 StatusCode retrieveObject( DataObject* par, const std::string& item, AIDA::IHistogram1D*& obj ) override;
699
700 StatusCode retrieveObject( DataObject* par, const std::string& item, AIDA::IHistogram2D*& obj ) override;
701
702 StatusCode retrieveObject( DataObject* par, const std::string& item, AIDA::IHistogram3D*& obj ) override;
703
704 StatusCode retrieveObject( DataObject* par, int item, AIDA::IProfile1D*& obj ) override;
705
706 StatusCode retrieveObject( DataObject* par, int item, AIDA::IProfile2D*& obj ) override;
707
708 StatusCode retrieveObject( DataObject* par, int item, AIDA::IHistogram1D*& obj ) override;
709
710 StatusCode retrieveObject( DataObject* par, int item, AIDA::IHistogram2D*& obj ) override;
711
712 StatusCode retrieveObject( DataObject* par, int item, AIDA::IHistogram3D*& obj ) override;
713
714 StatusCode retrieveObject( Base* par, int item, AIDA::IProfile1D*& obj ) override;
715
716 StatusCode retrieveObject( Base* par, int item, AIDA::IProfile2D*& obj ) override;
717
718 StatusCode retrieveObject( Base* par, int item, AIDA::IHistogram1D*& obj ) override;
719
720 StatusCode retrieveObject( Base* par, int item, AIDA::IHistogram2D*& obj ) override;
721
722 StatusCode retrieveObject( Base* par, int item, AIDA::IHistogram3D*& obj ) override;
723
724 StatusCode retrieveObject( Base* par, const std::string& item, AIDA::IProfile1D*& obj ) override;
725
726 StatusCode retrieveObject( Base* par, const std::string& item, AIDA::IProfile2D*& obj ) override;
727
728 StatusCode retrieveObject( Base* par, const std::string& item, AIDA::IHistogram1D*& obj ) override;
729
730 StatusCode retrieveObject( Base* par, const std::string& item, AIDA::IHistogram2D*& obj ) override;
731
732 StatusCode retrieveObject( Base* par, const std::string& item, AIDA::IHistogram3D*& obj ) override;
733
734 // ==========================================================================
735 // Find histogram identified by its full path in the data store
736 // ==========================================================================
737 StatusCode findObject( IRegistry* pReg, const std::string& path, AIDA::IProfile1D*& obj ) override;
738
739 StatusCode findObject( IRegistry* pReg, const std::string& path, AIDA::IProfile2D*& obj ) override;
740
741 StatusCode findObject( IRegistry* pReg, const std::string& path, AIDA::IHistogram1D*& obj ) override;
742
743 StatusCode findObject( IRegistry* pReg, const std::string& path, AIDA::IHistogram2D*& obj ) override;
744
745 StatusCode findObject( IRegistry* pReg, const std::string& path, AIDA::IHistogram3D*& obj ) override;
746
747 StatusCode findObject( const std::string& full, AIDA::IProfile1D*& obj ) override;
748
749 StatusCode findObject( const std::string& full, AIDA::IProfile2D*& obj ) override;
750
751 StatusCode findObject( const std::string& full, AIDA::IHistogram1D*& obj ) override;
752
753 StatusCode findObject( const std::string& full, AIDA::IHistogram2D*& obj ) override;
754
755 StatusCode findObject( const std::string& full, AIDA::IHistogram3D*& obj ) override;
756
757 StatusCode findObject( const std::string& par, const std::string& rel, AIDA::IProfile1D*& obj ) override;
758
759 StatusCode findObject( const std::string& par, const std::string& rel, AIDA::IProfile2D*& obj ) override;
760
761 StatusCode findObject( const std::string& par, const std::string& rel, AIDA::IHistogram1D*& obj ) override;
762
763 StatusCode findObject( const std::string& par, const std::string& rel, AIDA::IHistogram2D*& obj ) override;
764
765 StatusCode findObject( const std::string& par, const std::string& rel, AIDA::IHistogram3D*& obj ) override;
766
767 StatusCode findObject( const std::string& par, int item, AIDA::IProfile1D*& obj ) override;
768
769 StatusCode findObject( const std::string& par, int item, AIDA::IProfile2D*& obj ) override;
770
771 StatusCode findObject( const std::string& par, int item, AIDA::IHistogram1D*& obj ) override;
772
773 StatusCode findObject( const std::string& par, int item, AIDA::IHistogram2D*& obj ) override;
774
775 StatusCode findObject( const std::string& par, int item, AIDA::IHistogram3D*& obj ) override;
776
777 StatusCode findObject( DataObject* par, int item, AIDA::IProfile1D*& obj ) override;
778
779 StatusCode findObject( DataObject* par, int item, AIDA::IProfile2D*& obj ) override;
780
781 StatusCode findObject( DataObject* par, int item, AIDA::IHistogram1D*& obj ) override;
782
783 StatusCode findObject( DataObject* par, int item, AIDA::IHistogram2D*& obj ) override;
784
785 StatusCode findObject( DataObject* par, int item, AIDA::IHistogram3D*& obj ) override;
786
787 StatusCode findObject( DataObject* par, const std::string& item, AIDA::IProfile1D*& obj ) override;
788
789 StatusCode findObject( DataObject* par, const std::string& item, AIDA::IProfile2D*& obj ) override;
790
791 StatusCode findObject( DataObject* par, const std::string& item, AIDA::IHistogram1D*& obj ) override;
792
793 StatusCode findObject( DataObject* par, const std::string& item, AIDA::IHistogram2D*& obj ) override;
794
795 StatusCode findObject( DataObject* par, const std::string& item, AIDA::IHistogram3D*& obj ) override;
796
797 StatusCode findObject( Base* par, int item, AIDA::IProfile1D*& obj ) override;
798
799 StatusCode findObject( Base* par, int item, AIDA::IProfile2D*& obj ) override;
800
801 StatusCode findObject( Base* par, int item, AIDA::IHistogram1D*& obj ) override;
802
803 StatusCode findObject( Base* par, int item, AIDA::IHistogram2D*& obj ) override;
804
805 StatusCode findObject( Base* par, int item, AIDA::IHistogram3D*& obj ) override;
806
807 StatusCode findObject( Base* par, const std::string& item, AIDA::IProfile1D*& obj ) override;
808
809 StatusCode findObject( Base* par, const std::string& item, AIDA::IProfile2D*& obj ) override;
810
811 StatusCode findObject( Base* par, const std::string& item, AIDA::IHistogram1D*& obj ) override;
812
813 StatusCode findObject( Base* par, const std::string& item, AIDA::IHistogram2D*& obj ) override;
814
815 StatusCode findObject( Base* par, const std::string& item, AIDA::IHistogram3D*& obj ) override;
816
817 // ==========================================================================
818 // Projections and slices.
819 // ==========================================================================
820 AIDA::IHistogram1D* projectionX( const std::string& name, const AIDA::IHistogram2D& h ) override;
821
822 AIDA::IHistogram1D* projectionY( const std::string& name, const AIDA::IHistogram2D& h ) override;
823
824 AIDA::IHistogram1D* sliceX( const std::string& name, const AIDA::IHistogram2D& h, int indexY ) override;
825
826 AIDA::IHistogram1D* sliceY( const std::string& name, const AIDA::IHistogram2D& h, int indexX ) override;
827
828 AIDA::IHistogram1D* sliceX( const std::string& name, const AIDA::IHistogram2D& h, int indexY1, int indexY2 ) override;
829
830 AIDA::IHistogram1D* sliceY( const std::string& name, const AIDA::IHistogram2D& h, int indexX1, int indexX2 ) override;
831
832 bool destroy( IBaseHistogram* hist ) override;
833
834 AIDA::IHistogram1D* add( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
835 const AIDA::IHistogram1D& b ) override;
836
837 AIDA::IHistogram1D* subtract( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
838 const AIDA::IHistogram1D& b ) override;
839
840 AIDA::IHistogram1D* multiply( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
841 const AIDA::IHistogram1D& b ) override;
842
843 AIDA::IHistogram1D* divide( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
844 const AIDA::IHistogram1D& b ) override;
845
846 AIDA::IHistogram2D* add( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
847 const AIDA::IHistogram2D& b ) override;
848
849 AIDA::IHistogram2D* subtract( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
850 const AIDA::IHistogram2D& b ) override;
851
852 AIDA::IHistogram2D* multiply( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
853 const AIDA::IHistogram2D& b ) override;
854
855 AIDA::IHistogram2D* divide( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
856 const AIDA::IHistogram2D& b ) override;
857
858 AIDA::IHistogram3D* add( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
859 const AIDA::IHistogram3D& b ) override;
860
861 AIDA::IHistogram3D* subtract( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
862 const AIDA::IHistogram3D& b ) override;
863
864 AIDA::IHistogram3D* multiply( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
865 const AIDA::IHistogram3D& b ) override;
866
867 AIDA::IHistogram3D* divide( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
868 const AIDA::IHistogram3D& b ) override;
869
870 AIDA::IHistogram2D* projectionXY( const std::string& nameAndTitle, const AIDA::IHistogram3D& h ) override;
871
872 AIDA::IHistogram2D* projectionXZ( const std::string& nameAndTitle, const AIDA::IHistogram3D& h ) override;
873
874 AIDA::IHistogram2D* projectionYZ( const std::string& nameAndTitle, const AIDA::IHistogram3D& h ) override;
875
876 AIDA::IHistogram2D* sliceXY( const std::string& /* nameAndTitle */, const AIDA::IHistogram3D& /* h */, int /* low */,
877 int /* high */ ) override
878 {
879 not_implemented();
880 return nullptr;
881 }
882
883 AIDA::IHistogram2D* sliceXZ( const std::string& /* nameAndTitle */, const AIDA::IHistogram3D& /* h */, int /* low */,
884 int /* high */ ) override
885 {
886 not_implemented();
887 return nullptr;
888 }
889
890 AIDA::IHistogram2D* sliceYZ( const std::string& /* nameAndTitle */, const AIDA::IHistogram3D& /* h */, int /* low */,
891 int /* high */ ) override
892 {
893 not_implemented();
894 return nullptr;
895 }
896
897 AIDA::IHistogram1D* createHistogram1D( const std::string& name, const std::string& tit, int nx, double lowx,
898 double upx );
899
900 AIDA::IHistogram1D* createHistogram1D( const std::string& name, const std::string& tit, int nx, double lowx,
901 double upx, const std::string& /*opt*/ ) override;
902
903 AIDA::IHistogram1D* createHistogram1D( const std::string& name, const std::string& title, const Edges& x,
904 const std::string& /*opt*/ ) override;
905
906 AIDA::IHistogram1D* createHistogram1D( const std::string& nameAndTitle, int nx, double lowx, double upx ) override;
907
908 AIDA::IHistogram1D* createCopy( const std::string& full, const AIDA::IHistogram1D& h ) override;
909
910 AIDA::IHistogram1D* createCopy( const std::string& par, const std::string& rel, const AIDA::IHistogram1D& h );
911
912 AIDA::IHistogram1D* createCopy( const std::pair<std::string, std::string>& loc, const AIDA::IHistogram1D& h );
913
914 AIDA::IHistogram1D* createCopy( DataObject* pPar, const std::string& rel, const AIDA::IHistogram1D& h );
915
916 AIDA::IHistogram2D* createHistogram2D( const std::string& name, const std::string& tit, int nx, double lowx,
917 double upx, int ny, double lowy, double upy );
918
919 AIDA::IHistogram2D* createHistogram2D( const std::string& name, const std::string& tit, int nx, double lowx,
920 double upx, int ny, double lowy, double upy,
921 const std::string& /*opt*/ ) override;
922
923 AIDA::IHistogram2D* createHistogram2D( const std::string& name, const std::string& title, const Edges& x,
924 const Edges& y, const std::string& /*opt*/ ) override;
925
926 AIDA::IHistogram2D* createHistogram2D( const std::string& nameAndTitle, int nx, double lowx, double upx, int ny,
927 double lowy, double upy ) override;
928
929 AIDA::IHistogram2D* createCopy( const std::string& full, const AIDA::IHistogram2D& h ) override;
930
931 AIDA::IHistogram2D* createCopy( const std::string& par, const std::string& rel, const AIDA::IHistogram2D& h );
932
933 AIDA::IHistogram2D* createCopy( const std::pair<std::string, std::string>& loc, const AIDA::IHistogram2D& h );
934
935 AIDA::IHistogram2D* createCopy( DataObject* pPar, const std::string& rel, const AIDA::IHistogram2D& h );
936
937 AIDA::IHistogram3D* createHistogram3D( const std::string& name, const std::string& tit, int nx, double lowx,
938 double upx, int ny, double lowy, double upy, int nz, double lowz, double upz );
939
940 AIDA::IHistogram3D* createHistogram3D( const std::string& name, const std::string& tit, int nx, double lowx,
941 double upx, int ny, double lowy, double upy, int nz, double lowz, double upz,
942 const std::string& /*opt*/ ) override;
943
944 AIDA::IHistogram3D* createHistogram3D( const std::string& name, const std::string& title, const Edges& x,
945 const Edges& y, const Edges& z, const std::string& /*opt*/ ) override;
946
947 AIDA::IHistogram3D* createHistogram3D( const std::string& nameAndTitle, int nx, double lowx, double upx, int ny,
948 double lowy, double upy, int nz, double lowz, double upz ) override;
949
950 AIDA::IHistogram3D* createCopy( const std::string& full, const AIDA::IHistogram3D& h ) override;
951
952 AIDA::IHistogram3D* createCopy( const std::string& par, const std::string& rel, const AIDA::IHistogram3D& h );
953
954 AIDA::IHistogram3D* createCopy( const std::pair<std::string, std::string>& loc, const AIDA::IHistogram3D& h );
955
956 AIDA::IHistogram3D* createCopy( DataObject* pPar, const std::string& rel, const AIDA::IHistogram3D& h );
957
958 AIDA::IProfile1D* createProfile1D( const std::string& name, const std::string& tit, int nx, double lowx, double upx,
959 const std::string& opt ) override;
960
961 AIDA::IProfile1D* createProfile1D( const std::string& name, const std::string& tit, int nx, double lowx, double upx,
962 double upper, double lower, const std::string& opt ) override;
963
964 AIDA::IProfile1D* createProfile1D( const std::string& name, const std::string& title, const Edges& x,
965 const std::string& /* opt */ ) override;
966
967 AIDA::IProfile1D* createProfile1D( const std::string& name, const std::string& title, const Edges& x, double upper,
968 double lower, const std::string& /* opt */ ) override;
969
970 AIDA::IProfile1D* createProfile1D( const std::string& nametit, int nx, double lowx, double upx ) override;
971
972 AIDA::IProfile1D* createProfile1D( const std::string& nametit, int nx, double lowx, double upx, double upper,
973 double lower ) override;
974
975 AIDA::IProfile1D* createCopy( const std::string& full, const AIDA::IProfile1D& h ) override;
976
977 AIDA::IProfile1D* createCopy( const std::string& par, const std::string& rel, const AIDA::IProfile1D& h );
978
979 AIDA::IProfile1D* createCopy( const std::pair<std::string, std::string>& loc, const AIDA::IProfile1D& h );
980
981 AIDA::IProfile1D* createCopy( DataObject* pPar, const std::string& rel, const AIDA::IProfile1D& h );
982
983 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit, int nx, double lowx, double upx,
984 int ny, double lowy, double upy );
985
986 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit, int nx, double lowx, double upx,
987 int ny, double lowy, double upy, const std::string& /*opt*/ ) override;
988
989 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& title, const Edges& x, const Edges& y,
990 const std::string& /*opt*/ ) override;
991
992 AIDA::IProfile2D* createProfile2D( const std::string& nameAndTitle, int nx, double lowx, double upx, int ny,
993 double lowy, double upy ) override;
994
995 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit, int nx, double lowx, double upx,
996 int ny, double lowy, double upy, double upper, double lower );
997
998 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit, int nx, double lowx, double upx,
999 int ny, double lowy, double upy, double upper, double lower,
1000 const std::string& /*opt*/ ) override;
1001
1002 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& title, const Edges& x, const Edges& y,
1003 double upper, double lower, const std::string& /*opt*/ ) override;
1004
1005 AIDA::IProfile2D* createProfile2D( const std::string& nameAndTitle, int nx, double lowx, double upx, int ny,
1006 double lowy, double upy, double upper, double lower ) override;
1007
1008 AIDA::IProfile2D* createCopy( const std::string& full, const AIDA::IProfile2D& h ) override;
1009
1010 AIDA::IProfile2D* createCopy( const std::string& par, const std::string& rel, const AIDA::IProfile2D& h );
1011
1012 AIDA::IProfile2D* createCopy( const std::pair<std::string, std::string>& loc, const AIDA::IProfile2D& h );
1013
1014 AIDA::IProfile2D* createCopy( DataObject* pPar, const std::string& rel, const AIDA::IProfile2D& h );
1015
1016 AIDA::ICloud1D* createCloud1D( const std::string&, const std::string&, int, const std::string& ) override
1017 {
1018 not_implemented();
1019 return nullptr;
1020 }
1021
1022 AIDA::ICloud1D* createCloud1D( const std::string& ) override
1023 {
1024 not_implemented();
1025 return nullptr;
1026 }
1027
1028 AIDA::ICloud1D* createCopy( const std::string&, const AIDA::ICloud1D& ) override
1029 {
1030 not_implemented();
1031 return nullptr;
1032 }
1033
1034 AIDA::ICloud2D* createCloud2D( const std::string&, const std::string&, int, const std::string& ) override
1035 {
1036 not_implemented();
1037 return nullptr;
1038 }
1039
1040 AIDA::ICloud2D* createCloud2D( const std::string& ) override
1041 {
1042 not_implemented();
1043 return nullptr;
1044 }
1045
1046 AIDA::ICloud2D* createCopy( const std::string&, const AIDA::ICloud2D& ) override
1047 {
1048 not_implemented();
1049 return nullptr;
1050 }
1051
1052 AIDA::ICloud3D* createCloud3D( const std::string&, const std::string&, int, const std::string& ) override
1053 {
1054 not_implemented();
1055 return nullptr;
1056 }
1057
1058 AIDA::ICloud3D* createCloud3D( const std::string& ) override
1059 {
1060 not_implemented();
1061 return nullptr;
1062 }
1063
1064 AIDA::ICloud3D* createCopy( const std::string&, const AIDA::ICloud3D& ) override
1065 {
1066 not_implemented();
1067 return nullptr;
1068 }
1069
1071 using IDataProviderSvc::registerObject;
1072 using IDataProviderSvc::unregisterObject;
1073 using IDataProviderSvc::retrieveObject;
1074 using IDataProviderSvc::findObject;
1075
1077 std::ostream& print( Base* h, std::ostream& s = std::cout ) const override;
1078
1080 std::ostream& write( Base* h, std::ostream& s = std::cout ) const override;
1081
1083 int write( Base* h, const char* file_name ) const override;
1084
1086 DataObject* createPath( const std::string& newPath ) override;
1087
1092 DataObject* createDirectory( const std::string& parentDir, const std::string& subDir ) override;
1093
1095 void update1Ddefs( Gaudi::Details::PropertyBase& );
1096
1097 typedef std::map<std::string, Gaudi::Histo1DDef> Histo1DMap;
1098
1099 private:
1100 Gaudi::Property<DBaseEntries> m_input{this, "Input", {}, "input streams"};
1101 Gaudi::Property<Histo1DMap> m_defs1D{this, "Predefined1DHistos", {}, "histograms with predefined parameters"};
1102
1103 // modified histograms:
1104 std::set<std::string> m_mods1D;
1105 };
1106 #endif // GAUDISVC_HISTOGRAMSVC_H
HistogramSvc::createCloud3D
AIDA::ICloud3D * createCloud3D(const std::string &, const std::string &, int, const std::string &) override
Definition: HistogramSvc.h:1052
System.h
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
HistogramSvc::m_mods1D
std::set< std::string > m_mods1D
Definition: HistogramSvc.h:1104
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:895
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:32
Gaudi::Histos::book
GAUDI_API AIDA::IHistogram1D * book(IHistogramSvc *svc, const std::string &path, const Gaudi::Histo1DDef &hist)
helper function to book 1D-histogram
Definition: HistoDef.cpp:95
HistogramSvc::Histo1DMap
std::map< std::string, Gaudi::Histo1DDef > Histo1DMap
Definition: HistogramSvc.h:1097
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:319
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:336
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Find object identified by its directory entry.
HistoProperty.h
HistogramSvc::not_implemented
void not_implemented() const
Definition: HistogramSvc.h:60
HistogramSvc::Helper::find
StatusCode find(A1 a1, A3 *&a3)
Definition: HistogramSvc.h:87
HistogramSvc::createCloud1D
AIDA::ICloud1D * createCloud1D(const std::string &, const std::string &, int, const std::string &) override
Definition: HistogramSvc.h:1016
HistogramSvc::Helper::retrieve
StatusCode retrieve(A1 a1, A2 a2, A3 *&a3)
Definition: HistogramSvc.h:79
HistogramSvc::createCloud1D
AIDA::ICloud1D * createCloud1D(const std::string &) override
Definition: HistogramSvc.h:1022
std::map
STL class.
AIDA
GaudiKernel.
Definition: Fill.h:10
AutoLoadUnmetDataInputs.a3
a3
Definition: AutoLoadUnmetDataInputs.py:32
HistogramSvc::Helper::m_svc
HistogramSvc * m_svc
Definition: HistogramSvc.h:68
HistogramSvc::i_book
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::string
STL class.
DataSvc.h
GaudiPython.Persistency.add
def add(instance)
Definition: Persistency.py:39
compareOutputFiles.par
string par
Definition: compareOutputFiles.py:437
detail
TupleObj.h GaudiAlg/TupleObj.h namespace with few technical implementations.
Axis.h
HistogramSvc::createCopy
AIDA::ICloud1D * createCopy(const std::string &, const AIDA::ICloud1D &) override
Definition: HistogramSvc.h:1028
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
HistogramSvc::Helper::act
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *))
Definition: HistogramSvc.h:125
GaudiException.h
std::runtime_error
STL class.
HistogramSvc::createCloud3D
AIDA::ICloud3D * createCloud3D(const std::string &) override
Definition: HistogramSvc.h:1058
HistogramSvc::Base
AIDA::IBaseHistogram Base
Definition: HistogramSvc.h:65
IRegistry.h
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
Gaudi::Details::PropertyBase
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
Definition: Property.h:32
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
HistogramSvc::createCloud2D
AIDA::ICloud2D * createCloud2D(const std::string &) override
Definition: HistogramSvc.h:1040
HistogramSvc::createCopy
AIDA::ICloud3D * createCopy(const std::string &, const AIDA::ICloud3D &) override
Definition: HistogramSvc.h:1064
std::pair< std::string, std::string >
HistogramSvc::sliceYZ
AIDA::IHistogram2D * sliceYZ(const std::string &, const AIDA::IHistogram3D &, int, int) override
Definition: HistogramSvc.h:890
std::set< std::string >
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(boost::string_ref fullPath)=0
Unregister object from the data store.
std::vector< double >
HistogramSvc::createCloud2D
AIDA::ICloud2D * createCloud2D(const std::string &, const std::string &, int, const std::string &) override
Definition: HistogramSvc.h:1034
HistogramSvc::Helper::act
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:114
GaudiPython.HistoUtils.bookProf
def bookProf(args, kwargs)
Definition: HistoUtils.py:252
extends
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
HistogramSvc::Helper
Definition: HistogramSvc.h:67
IDataProviderSvc::registerObject
virtual StatusCode registerObject(boost::string_ref fullPath, DataObject *pObject)=0
Register object with the data store.
HistogramSvc::histogramFactory
AIDA::IHistogramFactory * histogramFactory() override
Retrieve the AIDA HistogramFactory interface.
Definition: HistogramSvc.h:195
AutoLoadUnmetDataInputs.a1
a1
Definition: AutoLoadUnmetDataInputs.py:27
print
void print(string text)
Definition: mergesort.cpp:30
HistogramSvc::sliceXY
AIDA::IHistogram2D * sliceXY(const std::string &, const AIDA::IHistogram3D &, int, int) override
Definition: HistogramSvc.h:876
GaudiPython.GaudiAlgs.write
write
Definition: GaudiAlgs.py:1259
HistogramSvc::Helper::act
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *))
Definition: HistogramSvc.h:136
gaudirun.s
string s
Definition: gaudirun.py:253
HistogramSvc::Helper::act
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
HistogramUtility.h
AutoLoadUnmetDataInputs.a2
a2
Definition: AutoLoadUnmetDataInputs.py:29
HistogramSvc::Helper::Helper
Helper(HistogramSvc *p)
Definition: HistogramSvc.h:69
StatusCode::FAILURE
Definition: StatusCode.h:29
HistogramSvc::Helper::retrieve
StatusCode retrieve(A1 a1, A3 *&a3)
Definition: HistogramSvc.h:71
HistogramSvc::P2D
AIDA::IProfile2D P2D
Definition: HistogramSvc.h:64
HistogramSvc::sliceXZ
AIDA::IHistogram2D * sliceXZ(const std::string &, const AIDA::IHistogram3D &, int, int) override
Definition: HistogramSvc.h:883
HistogramSvc::H3D
AIDA::IHistogram3D H3D
Definition: HistogramSvc.h:63
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
std::ostream
STL class.
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
HistogramSvc::createCopy
AIDA::ICloud2D * createCopy(const std::string &, const AIDA::ICloud2D &) override
Definition: HistogramSvc.h:1046
IHistogramSvc.h
HistogramSvc::Helper::find
StatusCode find(A1 a1, A2 a2, A3 *&a3)
Definition: HistogramSvc.h:95
HistogramSvc
HistogramSvc class definition.
Definition: HistogramSvc.h:56