| The Gaudi Framework v28r2-patches (bc4ad17a)

- 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 "HistogramUtility.h"
25 #include "Axis.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 template <class T>
39 static DataObject* cast(T* p)
40 {
41 DataObject* q = dynamic_cast<DataObject*>( p );
42 if ( !q && p ) {
43 throw std::runtime_error( "HistogramSvc: Unexpected object type." );
44 }
45 return q;
46 }
47 }
48
49 // ============================================================================
55 class HistogramSvc : public extends<DataSvc, IHistogramSvc>, virtual public AIDA::IHistogramFactory
56 {
57
58 private:
59
60 void not_implemented() const
61 {
62 error() << "Sorry, not yet implemented..." << endmsg;
63 }
64
65 protected:
66
67 typedef AIDA::IHistogram3D H3D;
68 typedef AIDA::IProfile2D P2D;
69 typedef AIDA::IBaseHistogram Base;
70
71 struct Helper {
72 HistogramSvc* m_svc;
73 Helper( HistogramSvc* p ) : m_svc( p ) {}
74 template <class A1, class A3>
75 StatusCode retrieve( A1 a1, A3*& a3 )
76 {
77 DataObject* pObject = nullptr;
78 StatusCode sc = m_svc->DataSvc::retrieveObject( a1, pObject );
79 a3 = dynamic_cast<A3*>( pObject );
80 return sc;
81 }
82 template <class A1, class A2, class A3>
83 StatusCode retrieve( A1 a1, A2 a2, A3*& a3 )
84 {
85 DataObject* pObject = nullptr;
86 StatusCode sc = m_svc->DataSvc::retrieveObject( a1, a2, pObject );
87 a3 = dynamic_cast<A3*>( pObject );
88 return sc;
89 }
90 template <class A1, class A3>
91 StatusCode find( A1 a1, A3*& a3 )
92 {
93 DataObject* pObject = nullptr;
94 StatusCode sc = m_svc->DataSvc::findObject( a1, pObject );
95 a3 = dynamic_cast<A3*>( pObject );
96 return sc;
97 }
98 template <class A1, class A2, class A3>
99 StatusCode find( A1 a1, A2 a2, A3*& a3 )
100 {
101 DataObject* pObject = nullptr;
102 StatusCode sc = m_svc->DataSvc::findObject( a1, a2, pObject );
103 a3 = dynamic_cast<A3*>( pObject );
104 return sc;
105 }
106 template <class R, class S, class T1, class T2>
107 static R* act( R* res, const S& b, void ( T1::*pmf )( const T2*, Double_t ), Double_t scale )
108 {
109 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
110 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
111 if ( h1 && h2 ) {
112 ( h1->*pmf )( h2, scale );
113 return res;
114 }
115 return nullptr;
116 }
117 template <class R, class S, class T1, class T2>
118 static R* act( R* res, const S& b, Bool_t ( T1::*pmf )( const T2*, Double_t ), Double_t scale )
119 {
120 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
121 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
122 if ( h1 && h2 ) {
123 ( h1->*pmf )( h2, scale );
124 return res;
125 }
126 return nullptr;
127 }
128 template <class R, class S, class T1, class T2>
129 static R* act( R* res, const S& b, void ( T1::*pmf )( const T2* ) )
130 {
131 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
132 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
133 if ( h1 && h2 ) {
134 ( h1->*pmf )( h2 );
135 return res;
136 }
137 return nullptr;
138 }
139 template <class R, class S, class T1, class T2>
140 static R* act( R* res, const S& b, Bool_t ( T1::*pmf )( const T2* ) )
141 {
142 auto h1 = Gaudi::getRepresentation<R, T1>( *res );
143 const auto h2 = Gaudi::getRepresentation<R, T2>( b );
144 if ( h1 && h2 ) {
145 ( h1->*pmf )( h2 );
146 return res;
147 }
148 return nullptr;
149 }
150 };
151
152 public:
153
154 using Edges = std::vector<double>;
155 using DBaseEntries = std::vector<std::string>;
156
161 HistogramSvc( const std::string& name, ISvcLocator* svc );
162
164 ~HistogramSvc() override;
165
171 std::pair<std::string, std::string> i_splitPath( const std::string& full );
172
176 StatusCode connectInput( const std::string& ident );
177
178 template <class T>
179 inline T* i_book( DataObject* pPar, const std::string& rel, const std::string& title, const std::pair<DataObject*, T*>& o )
180 {
181 if ( o.first && registerObject( pPar, rel, (Base*)o.second ).isSuccess() ) return o.second;
182 delete o.first;
183 throw GaudiException( "Cannot book " + System::typeinfoName( typeid( T ) ) + " " + title, "HistogramSvc",
184 StatusCode::FAILURE );
185 }
186
188 AIDA::IHistogram2D* i_project( const std::string& nameAndTitle, const AIDA::IHistogram3D& h, const std::string& dir );
189
190 public:
191
193 StatusCode initialize() override;
195 StatusCode reinitialize() override;
197 StatusCode finalize() override;
198
200 AIDA::IHistogramFactory* histogramFactory() override { return this; }
201
202 // ==========================================================================
203 // Book 1D histogram with fix binning
204 // ==========================================================================
221 AIDA::IHistogram1D* book( const std::string& par, const std::string& rel, const std::string& title,
222 int nx, double lowx, double upx ) override;
223
224 AIDA::IHistogram1D* book( const std::string& par, int hID, const std::string& title,
225 int nx, double lowx, double upx ) override;
226
227 AIDA::IHistogram1D* book( DataObject* pPar, int hID, const std::string& title,
228 int nx, double lowx, double upx ) override;
229
230 AIDA::IHistogram1D* book( DataObject* pPar, const std::string& rel, const std::string& title,
231 int nx, double lowx, double upx ) override;
232
233 virtual AIDA::IHistogram1D* book( const std::pair<std::string, std::string>& loc, const std::string& title,
234 int nx, double lowx, double upx );
235
236 AIDA::IHistogram1D* book( const std::string& full, const std::string& title,
237 int nx, double lowx, double upx ) override;
238
239 // ==========================================================================
240 // Book 1D Profile histogram with fix binning
241 // ==========================================================================
258 AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel, const std::string& title,
259 int nx, double lowx, double upx, const std::string& opt ) override;
260
261 AIDA::IProfile1D* bookProf( const std::string& par, int hID, const std::string& title,
262 int nx, double lowx, double upx, const std::string& opt ) override;
263
264 AIDA::IProfile1D* bookProf( DataObject* pPar, int hID, const std::string& title,
265 int nx, double lowx, double upx, const std::string& opt ) override;
266
267 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc,
268 const std::string& title,
269 int nx, double lowx, double upx, const std::string& opt );
270
271 AIDA::IProfile1D* bookProf( const std::string& full, const std::string& title,
272 int nx, double lowx, double upx, const std::string& opt ) override;
273
274 AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title,
275 int nx, double lowx, double upx, const std::string& opt ) override;
276
277 AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel, const std::string& title,
278 int nx, double lowx, double upx,
279 double upper, double lower, const std::string& opt ) override;
280
281 AIDA::IProfile1D* bookProf( const std::string& par, int hID, const std::string& title,
282 int nx, double lowx, double upx,
283 double upper, double lower, const std::string& opt ) override;
284
285 AIDA::IProfile1D* bookProf( DataObject* pPar, int hID, const std::string& title,
286 int nx, double lowx, double upx,
287 double upper, double lower, const std::string& opt ) override;
288
289 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc,
290 const std::string& title,
291 int nx, double lowx, double upx,
292 double upper, double lower, const std::string& opt );
293
294 AIDA::IProfile1D* bookProf( const std::string& full, const std::string& title,
295 int nx, double lowx, double upx,
296 double upper, double lower, const std::string& opt ) override;
297
298 AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel, const std::string& title,
299 int nx, double lowx, double upx,
300 double upper, double lower, const std::string& opt ) override;
301
302 // ==========================================================================
303 // Book 1D histogram with variable binning
304 // ==========================================================================
319 AIDA::IHistogram1D* book( const std::string& par, int hID,
320 const std::string& title, Edges e ) override;
321
322 AIDA::IHistogram1D* book( DataObject* pPar, int hID,
323 const std::string& title, Edges e ) override;
324
325 AIDA::IHistogram1D* book( const std::string& par, const std::string& rel,
326 const std::string& title, Edges e ) override;
327
328 virtual AIDA::IHistogram1D* book( const std::pair<std::string, std::string>& loc,
329 const std::string& title, Edges e );
330
331 AIDA::IHistogram1D* book( const std::string& full,
332 const std::string& title, Edges e ) override;
333
334 AIDA::IHistogram1D* book( DataObject* pPar, const std::string& rel,
335 const std::string& title, Edges e ) override;
336
337 // ==========================================================================
338 // Book 1D profile histogram with variable binning
339 // ==========================================================================
354 AIDA::IProfile1D* bookProf( const std::string& full,
355 const std::string& title, Edges e ) override;
356
357 AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel,
358 const std::string& title, Edges e ) override;
359
360 AIDA::IProfile1D* bookProf( const std::string& par, int hID,
361 const std::string& title, Edges e ) override;
362
363 AIDA::IProfile1D* bookProf( DataObject* pPar, int hID,
364 const std::string& title, Edges e ) override;
365
366 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc,
367 const std::string& title, Edges e );
368
369 AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel,
370 const std::string& title, Edges e ) override;
371
372 virtual AIDA::IProfile1D* bookProf( const std::string& full, const std::string& title,
373 Edges e, double upper, double lower );
374
375 virtual AIDA::IProfile1D* bookProf( const std::string& par, const std::string& rel,
376 const std::string& title, Edges e,
377 double upper, double lower );
378
379 virtual AIDA::IProfile1D* bookProf( const std::string& par, int hID,
380 const std::string& title, Edges e,
381 double upper, double lower );
382
383 virtual AIDA::IProfile1D* bookProf( DataObject* pPar, int hID,
384 const std::string& title, Edges e,
385 double upper, double lower );
386
387 virtual AIDA::IProfile1D* bookProf( const std::pair<std::string, std::string>& loc,
388 const std::string& title, Edges e,
389 double upper, double lower );
390
391 virtual AIDA::IProfile1D* bookProf( DataObject* pPar, const std::string& rel,
392 const std::string& title, Edges e,
393 double upper, double lower );
394
395 // ==========================================================================
396 // Book 2D histogram with fixed binning
397 // ==========================================================================
417 AIDA::IHistogram2D* book( const std::string& full, const std::string& title,
418 int nx, double lowx, double upx,
419 int ny, double lowy, double upy ) override;
420
421 AIDA::IHistogram2D* book( const std::string& par, const std::string& rel,
422 const std::string& title,
423 int nx, double lowx, double upx,
424 int ny, double lowy, double upy ) override;
425
426 AIDA::IHistogram2D* book( const std::string& par, int hID, const std::string& title,
427 int nx, double lowx, double upx,
428 int ny, double lowy, double upy ) override;
429
430 virtual AIDA::IHistogram2D* book( const std::pair<std::string, std::string>& loc,
431 const std::string& title,
432 int nx, double lowx, double upx,
433 int ny, double lowy, double upy );
434
435 AIDA::IHistogram2D* book( DataObject* pPar, int hID, const std::string& title,
436 int nx, double lowx, double upx,
437 int ny, double lowy, double upy ) override;
438
439 AIDA::IHistogram2D* book( DataObject* pPar, const std::string& rel,
440 const std::string& title,
441 int nx, double lowx, double upx,
442 int ny, double lowy, double upy ) override;
443
444
445 // ==========================================================================
446 // Book 2D profile histogram with fixed binning
447 // ==========================================================================
467 virtual AIDA::IProfile2D* bookProf( const std::string& full,
468 const std::string& title,
469 int nx, double lowx, double upx,
470 int ny, double lowy, double upy,
471 double upper, double lower );
472
473 virtual AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel,
474 const std::string& title,
475 int nx, double lowx, double upx,
476 int ny, double lowy, double upy,
477 double upper, double lower );
478
479 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc,
480 const std::string& title,
481 int nx, double lowx, double upx,
482 int ny, double lowy, double upy,
483 double upper, double lower );
484
485 virtual AIDA::IProfile2D* bookProf( const std::string& par, int hID,
486 const std::string& title,
487 int nx, double lowx, double upx,
488 int ny, double lowy, double upy,
489 double upper, double lower );
490
491 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, int hID, const std::string& title,
492 int nx, double lowx, double upx,
493 int ny, double lowy, double upy,
494 double upper, double lower );
495
496 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel,
497 const std::string& title,
498 int nx, double lowx, double upx,
499 int ny, double lowy, double upy,
500 double upper, double lower );
501
502 AIDA::IProfile2D* bookProf( const std::string& full,
503 const std::string& title,
504 int nx, double lowx, double upx,
505 int ny, double lowy, double upy ) override;
506
507 AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel,
508 const std::string& title,
509 int nx, double lowx, double upx,
510 int ny, double lowy, double upy ) override;
511
512 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc,
513 const std::string& title,
514 int nx, double lowx, double upx,
515 int ny, double lowy, double upy );
516
517 AIDA::IProfile2D* bookProf( const std::string& par, int hID,
518 const std::string& title,
519 int nx, double lowx, double upx,
520 int ny, double lowy, double upy ) override;
521
522 AIDA::IProfile2D* bookProf( DataObject* pPar, int hID,
523 const std::string& title,
524 int nx, double lowx, double upx,
525 int ny, double lowy, double upy ) override;
526
527 AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel,
528 const std::string& title,
529 int nx, double lowx, double upx,
530 int ny, double lowy, double upy ) override;
531
532 // ==========================================================================
533 // Book 2D histogram with variable binning
534 // ==========================================================================
549 AIDA::IHistogram2D* book( const std::string& full,
550 const std::string& title,
551 Edges x, Edges y ) override;
552
553 AIDA::IHistogram2D* book( const std::string& par, const std::string& rel,
554 const std::string& title,
555 Edges x, Edges y ) override;
556
557 AIDA::IHistogram2D* book( const std::string& par, int hID,
558 const std::string& title,
559 Edges x, Edges y ) override;
560
561 virtual AIDA::IHistogram2D* book( const std::pair<std::string, std::string>& loc,
562 const std::string& title,
563 Edges x, Edges y );
564
565 AIDA::IHistogram2D* book( DataObject* pPar, int hID,
566 const std::string& title,
567 Edges x, Edges y ) override;
568
569 AIDA::IHistogram2D* book( DataObject* pPar, const std::string& rel,
570 const std::string& title,
571 Edges x, Edges y ) override;
572
573 // ==========================================================================
574 // Book 2D profile histogram with variable binning
575 // ==========================================================================
590 AIDA::IProfile2D* bookProf( const std::string& full,
591 const std::string& title,
592 Edges x, Edges y ) override;
593
594 AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel,
595 const std::string& title,
596 Edges x, Edges y ) override;
597
598 AIDA::IProfile2D* bookProf( const std::string& par, int hID,
599 const std::string& title,
600 Edges x, Edges y ) override;
601
602 AIDA::IProfile2D* bookProf( DataObject* pPar, int hID,
603 const std::string& title,
604 Edges x, Edges y ) override;
605
606 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc,
607 const std::string& title,
608 Edges x, Edges y );
609
610 AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel,
611 const std::string& title,
612 Edges x, Edges y ) override;
613
614 virtual AIDA::IProfile2D* bookProf( const std::string& full,
615 const std::string& title,
616 Edges x, Edges y,
617 double upper, double lower );
618
619 virtual AIDA::IProfile2D* bookProf( const std::string& par, const std::string& rel,
620 const std::string& title,
621 Edges x, Edges y,
622 double upper, double lower );
623
624 virtual AIDA::IProfile2D* bookProf( const std::string& par, int hID,
625 const std::string& title,
626 Edges x, Edges y,
627 double upper, double lower );
628
629 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, int hID,
630 const std::string& title,
631 Edges x, Edges y,
632 double upper, double lower );
633
634 virtual AIDA::IProfile2D* bookProf( const std::pair<std::string, std::string>& loc,
635 const std::string& title,
636 Edges x, Edges y,
637 double upper, double lower );
638
639 virtual AIDA::IProfile2D* bookProf( DataObject* pPar, const std::string& rel,
640 const std::string& title,
641 Edges x, Edges y,
642 double upper, double lower );
643
644 // ==========================================================================
645 // Book 3D histogram with fixed binning
646 // ==========================================================================
663 AIDA::IHistogram3D* book( const std::string& full,
664 const std::string& title,
665 int nx, double lowx, double upx,
666 int ny, double lowy, double upy,
667 int nz, double lowz, double upz ) override;
668
669 AIDA::IHistogram3D* book( const std::string& par, const std::string& rel,
670 const std::string& title,
671 int nx, double lowx, double upx,
672 int ny, double lowy, double upy,
673 int nz, double lowz, double upz ) override;
674
675 AIDA::IHistogram3D* book( const std::string& par, int hID,
676 const std::string& title,
677 int nx, double lowx, double upx,
678 int ny, double lowy, double upy,
679 int nz, double lowz, double upz ) override;
680
681 AIDA::IHistogram3D* book( DataObject* pPar, int hID,
682 const std::string& title,
683 int nx, double lowx, double upx,
684 int ny, double lowy, double upy,
685 int nz, double lowz, double upz ) override;
686
687 virtual AIDA::IHistogram3D* book( const std::pair<std::string, std::string>& loc,
688 const std::string& title,
689 int nx, double lowx, double upx,
690 int ny, double lowy, double upy,
691 int nz, double lowz, double upz );
692
693 AIDA::IHistogram3D* book( DataObject* pPar, const std::string& rel,
694 const std::string& title,
695 int nx, double lowx, double upx,
696 int ny, double lowy, double upy,
697 int nz, double lowz, double upz ) override;
698
699 // ==========================================================================
700 // Book 3D histogram with variable binning
701 // ==========================================================================
718 AIDA::IHistogram3D* book( const std::string& full,
719 const std::string& title,
720 Edges x, Edges y, Edges z ) override;
721
722 AIDA::IHistogram3D* book( const std::string& par, const std::string& rel,
723 const std::string& title,
724 Edges x, Edges y, Edges z ) override;
725
726 AIDA::IHistogram3D* book( const std::string& par, int hID,
727 const std::string& title,
728 Edges x, Edges y, Edges z ) override;
729
730 AIDA::IHistogram3D* book( DataObject* pPar, int hID,
731 const std::string& title,
732 Edges x, Edges y, Edges z ) override;
733
734 virtual AIDA::IHistogram3D* book( const std::pair<std::string, std::string>& loc,
735 const std::string& title,
736 Edges x, Edges y, Edges z );
737
738 AIDA::IHistogram3D* book( DataObject* pPar, const std::string& rel,
739 const std::string& title,
740 Edges x, Edges y, Edges z ) override;
741
742 // ==========================================================================
743 // Register histogram with the data store
744 // ==========================================================================
745 StatusCode registerObject( const std::string& parent, const std::string& rel, Base* obj ) override;
746
747 StatusCode registerObject( const std::string& parent, int item, Base* obj ) override;
748
749 StatusCode registerObject( Base* pPar, const std::string& rel, Base* obj ) override;
750
751 StatusCode registerObject( DataObject* pPar, int item, Base* obj ) override;
752
753 StatusCode registerObject( Base* pPar, int item, Base* obj ) override;
754
755 StatusCode registerObject( const std::string& full, Base* obj ) override;
756
757 StatusCode registerObject( DataObject* pPar, const std::string& rel, Base* obj ) override;
758
759 // ==========================================================================
760 // Unregister histogram from the data store
761 // ==========================================================================
762 StatusCode unregisterObject( Base* obj ) override;
763
764 StatusCode unregisterObject( Base* obj, const std::string& objectPath ) override;
765
766 StatusCode unregisterObject( Base* obj, int item ) override;
767
768 // ==========================================================================
769 // Retrieve histogram from data store
770 // ==========================================================================
771 StatusCode retrieveObject( IRegistry* pReg, const std::string& path,
772 AIDA::IHistogram1D*& obj ) override;
773
774 StatusCode retrieveObject( IRegistry* pReg, const std::string& path,
775 AIDA::IProfile1D*& obj ) override;
776
777 StatusCode retrieveObject( IRegistry* pReg, const std::string& path,
778 AIDA::IHistogram2D*& obj ) override;
779
780 StatusCode retrieveObject( IRegistry* pReg, const std::string& path,
781 AIDA::IProfile2D*& obj ) override;
782
783 StatusCode retrieveObject( IRegistry* pReg, const std::string& path,
784 AIDA::IHistogram3D*& obj ) override;
785
786 StatusCode retrieveObject( const std::string& full,
787 AIDA::IProfile1D*& obj ) override;
788
789 StatusCode retrieveObject( const std::string& full,
790 AIDA::IProfile2D*& obj ) override;
791
792 StatusCode retrieveObject( const std::string& full,
793 AIDA::IHistogram1D*& obj ) override;
794
795 StatusCode retrieveObject( const std::string& full,
796 AIDA::IHistogram2D*& obj ) override;
797
798 StatusCode retrieveObject( const std::string& full,
799 AIDA::IHistogram3D*& obj ) override;
800
801 StatusCode retrieveObject( const std::string& parent, const std::string& rel,
802 AIDA::IProfile1D*& obj ) override;
803
804 StatusCode retrieveObject( const std::string& parent, const std::string& rel,
805 AIDA::IProfile2D*& obj ) override;
806
807 StatusCode retrieveObject( const std::string& parent, const std::string& rel,
808 AIDA::IHistogram1D*& obj ) override;
809
810 StatusCode retrieveObject( const std::string& parent, const std::string& rel,
811 AIDA::IHistogram2D*& obj ) override;
812
813 StatusCode retrieveObject( const std::string& parent, const std::string& rel,
814 AIDA::IHistogram3D*& obj ) override;
815
816 StatusCode retrieveObject( const std::string& parent, int item,
817 AIDA::IProfile1D*& obj ) override;
818
819 StatusCode retrieveObject( const std::string& parent, int item,
820 AIDA::IProfile2D*& obj ) override;
821
822 StatusCode retrieveObject( const std::string& parent, int item,
823 AIDA::IHistogram1D*& obj ) override;
824
825 StatusCode retrieveObject( const std::string& parent, int item,
826 AIDA::IHistogram2D*& obj ) override;
827
828 StatusCode retrieveObject( const std::string& parent, int item,
829 AIDA::IHistogram3D*& obj ) override;
830
831 StatusCode retrieveObject( DataObject* par, const std::string& item,
832 AIDA::IProfile1D*& obj ) override;
833
834 StatusCode retrieveObject( DataObject* par, const std::string& item,
835 AIDA::IProfile2D*& obj ) override;
836
837 StatusCode retrieveObject( DataObject* par, const std::string& item,
838 AIDA::IHistogram1D*& obj ) override;
839
840 StatusCode retrieveObject( DataObject* par, const std::string& item,
841 AIDA::IHistogram2D*& obj ) override;
842
843 StatusCode retrieveObject( DataObject* par, const std::string& item,
844 AIDA::IHistogram3D*& obj ) override;
845
846 StatusCode retrieveObject( DataObject* par, int item,
847 AIDA::IProfile1D*& obj ) override;
848
849 StatusCode retrieveObject( DataObject* par, int item,
850 AIDA::IProfile2D*& obj ) override;
851
852 StatusCode retrieveObject( DataObject* par, int item,
853 AIDA::IHistogram1D*& obj ) override;
854
855 StatusCode retrieveObject( DataObject* par, int item,
856 AIDA::IHistogram2D*& obj ) override;
857
858 StatusCode retrieveObject( DataObject* par, int item,
859 AIDA::IHistogram3D*& obj ) override;
860
861 StatusCode retrieveObject( Base* par, int item,
862 AIDA::IProfile1D*& obj ) override;
863
864 StatusCode retrieveObject( Base* par, int item,
865 AIDA::IProfile2D*& obj ) override;
866
867 StatusCode retrieveObject( Base* par, int item,
868 AIDA::IHistogram1D*& obj ) override;
869
870 StatusCode retrieveObject( Base* par, int item,
871 AIDA::IHistogram2D*& obj ) override;
872
873 StatusCode retrieveObject( Base* par, int item,
874 AIDA::IHistogram3D*& obj ) override;
875
876 StatusCode retrieveObject( Base* par, const std::string& item,
877 AIDA::IProfile1D*& obj ) override;
878
879 StatusCode retrieveObject( Base* par, const std::string& item,
880 AIDA::IProfile2D*& obj ) override;
881
882 StatusCode retrieveObject( Base* par, const std::string& item,
883 AIDA::IHistogram1D*& obj ) override;
884
885 StatusCode retrieveObject( Base* par, const std::string& item,
886 AIDA::IHistogram2D*& obj ) override;
887
888 StatusCode retrieveObject( Base* par, const std::string& item,
889 AIDA::IHistogram3D*& obj ) override;
890
891 // ==========================================================================
892 // Find histogram identified by its full path in the data store
893 // ==========================================================================
894 StatusCode findObject( IRegistry* pReg, const std::string& path,
895 AIDA::IProfile1D*& obj ) override;
896
897 StatusCode findObject( IRegistry* pReg, const std::string& path,
898 AIDA::IProfile2D*& obj ) override;
899
900 StatusCode findObject( IRegistry* pReg, const std::string& path,
901 AIDA::IHistogram1D*& obj ) override;
902
903 StatusCode findObject( IRegistry* pReg, const std::string& path,
904 AIDA::IHistogram2D*& obj ) override;
905
906 StatusCode findObject( IRegistry* pReg, const std::string& path,
907 AIDA::IHistogram3D*& obj ) override;
908
909 StatusCode findObject( const std::string& full,
910 AIDA::IProfile1D*& obj ) override;
911
912 StatusCode findObject( const std::string& full,
913 AIDA::IProfile2D*& obj ) override ;
914
915 StatusCode findObject( const std::string& full,
916 AIDA::IHistogram1D*& obj ) override;
917
918 StatusCode findObject( const std::string& full,
919 AIDA::IHistogram2D*& obj ) override;
920
921 StatusCode findObject( const std::string& full,
922 AIDA::IHistogram3D*& obj ) override;
923
924 StatusCode findObject( const std::string& par, const std::string& rel,
925 AIDA::IProfile1D*& obj ) override;
926
927 StatusCode findObject( const std::string& par, const std::string& rel,
928 AIDA::IProfile2D*& obj ) override;
929
930 StatusCode findObject( const std::string& par, const std::string& rel,
931 AIDA::IHistogram1D*& obj ) override;
932
933 StatusCode findObject( const std::string& par, const std::string& rel,
934 AIDA::IHistogram2D*& obj ) override;
935
936 StatusCode findObject( const std::string& par, const std::string& rel,
937 AIDA::IHistogram3D*& obj ) override;
938
939 StatusCode findObject( const std::string& par, int item,
940 AIDA::IProfile1D*& obj ) override;
941
942 StatusCode findObject( const std::string& par, int item,
943 AIDA::IProfile2D*& obj ) override;
944
945 StatusCode findObject( const std::string& par, int item,
946 AIDA::IHistogram1D*& obj ) override;
947
948 StatusCode findObject( const std::string& par, int item,
949 AIDA::IHistogram2D*& obj ) override;
950
951 StatusCode findObject( const std::string& par, int item,
952 AIDA::IHistogram3D*& obj ) override;
953
954 StatusCode findObject( DataObject* par, int item,
955 AIDA::IProfile1D*& obj ) override;
956
957 StatusCode findObject( DataObject* par, int item,
958 AIDA::IProfile2D*& obj ) override;
959
960 StatusCode findObject( DataObject* par, int item,
961 AIDA::IHistogram1D*& obj ) override;
962
963 StatusCode findObject( DataObject* par, int item,
964 AIDA::IHistogram2D*& obj ) override;
965
966 StatusCode findObject( DataObject* par, int item,
967 AIDA::IHistogram3D*& obj ) override;
968
969 StatusCode findObject( DataObject* par, const std::string& item,
970 AIDA::IProfile1D*& obj ) override;
971
972 StatusCode findObject( DataObject* par, const std::string& item,
973 AIDA::IProfile2D*& obj ) override;
974
975 StatusCode findObject( DataObject* par, const std::string& item,
976 AIDA::IHistogram1D*& obj ) override;
977
978 StatusCode findObject( DataObject* par, const std::string& item,
979 AIDA::IHistogram2D*& obj ) override;
980
981 StatusCode findObject( DataObject* par, const std::string& item,
982 AIDA::IHistogram3D*& obj ) override;
983
984 StatusCode findObject( Base* par, int item,
985 AIDA::IProfile1D*& obj ) override;
986
987 StatusCode findObject( Base* par, int item,
988 AIDA::IProfile2D*& obj ) override;
989
990 StatusCode findObject( Base* par, int item,
991 AIDA::IHistogram1D*& obj ) override;
992
993 StatusCode findObject( Base* par, int item,
994 AIDA::IHistogram2D*& obj ) override;
995
996 StatusCode findObject( Base* par, int item,
997 AIDA::IHistogram3D*& obj ) override;
998
999 StatusCode findObject( Base* par, const std::string& item,
1000 AIDA::IProfile1D*& obj ) override;
1001
1002 StatusCode findObject( Base* par, const std::string& item,
1003 AIDA::IProfile2D*& obj ) override;
1004
1005 StatusCode findObject( Base* par, const std::string& item,
1006 AIDA::IHistogram1D*& obj ) override;
1007
1008 StatusCode findObject( Base* par, const std::string& item,
1009 AIDA::IHistogram2D*& obj ) override;
1010
1011 StatusCode findObject( Base* par, const std::string& item,
1012 AIDA::IHistogram3D*& obj ) override;
1013
1014 // ==========================================================================
1015 // Projections and slices.
1016 // ==========================================================================
1017 AIDA::IHistogram1D* projectionX( const std::string& name,
1018 const AIDA::IHistogram2D& h ) override;
1019
1020 AIDA::IHistogram1D* projectionY( const std::string& name,
1021 const AIDA::IHistogram2D& h ) override;
1022
1023 AIDA::IHistogram1D* sliceX( const std::string& name, const AIDA::IHistogram2D& h,
1024 int indexY ) override ;
1025
1026 AIDA::IHistogram1D* sliceY( const std::string& name, const AIDA::IHistogram2D& h,
1027 int indexX ) override ;
1028
1029 AIDA::IHistogram1D* sliceX( const std::string& name, const AIDA::IHistogram2D& h,
1030 int indexY1, int indexY2 ) override;
1031
1032 AIDA::IHistogram1D* sliceY( const std::string& name, const AIDA::IHistogram2D& h,
1033 int indexX1, int indexX2 ) override;
1034
1035 bool destroy( IBaseHistogram* hist ) override;
1036
1037 AIDA::IHistogram1D* add( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
1038 const AIDA::IHistogram1D& b ) override;
1039
1040 AIDA::IHistogram1D* subtract( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
1041 const AIDA::IHistogram1D& b ) override;
1042
1043 AIDA::IHistogram1D* multiply( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
1044 const AIDA::IHistogram1D& b ) override;
1045
1046 AIDA::IHistogram1D* divide( const std::string& nameAndTitle, const AIDA::IHistogram1D& a,
1047 const AIDA::IHistogram1D& b ) override;
1048
1049 AIDA::IHistogram2D* add( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
1050 const AIDA::IHistogram2D& b ) override;
1051
1052 AIDA::IHistogram2D* subtract( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
1053 const AIDA::IHistogram2D& b ) override;
1054
1055 AIDA::IHistogram2D* multiply( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
1056 const AIDA::IHistogram2D& b ) override;
1057
1058 AIDA::IHistogram2D* divide( const std::string& nameAndTitle, const AIDA::IHistogram2D& a,
1059 const AIDA::IHistogram2D& b ) override;
1060
1061 AIDA::IHistogram3D* add( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
1062 const AIDA::IHistogram3D& b ) override;
1063
1064 AIDA::IHistogram3D* subtract( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
1065 const AIDA::IHistogram3D& b ) override;
1066
1067 AIDA::IHistogram3D* multiply( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
1068 const AIDA::IHistogram3D& b ) override;
1069
1070 AIDA::IHistogram3D* divide( const std::string& nameAndTitle, const AIDA::IHistogram3D& a,
1071 const AIDA::IHistogram3D& b ) override;
1072
1073 AIDA::IHistogram2D* projectionXY( const std::string& nameAndTitle,
1074 const AIDA::IHistogram3D& h ) override ;
1075
1076 AIDA::IHistogram2D* projectionXZ( const std::string& nameAndTitle,
1077 const AIDA::IHistogram3D& h ) override ;
1078
1079 AIDA::IHistogram2D* projectionYZ( const std::string& nameAndTitle,
1080 const AIDA::IHistogram3D& h ) override ;
1081
1082
1083 AIDA::IHistogram2D* sliceXY( const std::string& /* nameAndTitle */,
1084 const AIDA::IHistogram3D& /* h */,
1085 int /* low */, int /* high */ ) override
1086 {
1087 not_implemented();
1088 return nullptr;
1089 }
1090
1091 AIDA::IHistogram2D* sliceXZ( const std::string& /* nameAndTitle */,
1092 const AIDA::IHistogram3D& /* h */,
1093 int /* low */, int /* high */ ) override
1094 {
1095 not_implemented();
1096 return nullptr;
1097 }
1098
1099 AIDA::IHistogram2D* sliceYZ( const std::string& /* nameAndTitle */,
1100 const AIDA::IHistogram3D& /* h */,
1101 int /* low */, int /* high */ ) override
1102 {
1103 not_implemented();
1104 return nullptr;
1105 }
1106
1107 AIDA::IHistogram1D* createHistogram1D( const std::string& name, const std::string& tit,
1108 int nx, double lowx, double upx );
1109
1110 AIDA::IHistogram1D* createHistogram1D( const std::string& name, const std::string& tit,
1111 int nx, double lowx, double upx,
1112 const std::string& /*opt*/ ) override;
1113
1114 AIDA::IHistogram1D* createHistogram1D( const std::string& name, const std::string& title,
1115 const Edges& x,
1116 const std::string& /*opt*/ ) override;
1117
1118 AIDA::IHistogram1D* createHistogram1D( const std::string& nameAndTitle,
1119 int nx, double lowx, double upx ) override;
1120
1121 AIDA::IHistogram1D* createCopy( const std::string& full,
1122 const AIDA::IHistogram1D& h ) override;
1123
1124 AIDA::IHistogram1D* createCopy( const std::string& par, const std::string& rel,
1125 const AIDA::IHistogram1D& h );
1126
1127 AIDA::IHistogram1D* createCopy( const std::pair<std::string, std::string>& loc,
1128 const AIDA::IHistogram1D& h );
1129
1130 AIDA::IHistogram1D* createCopy( DataObject* pPar, const std::string& rel,
1131 const AIDA::IHistogram1D& h );
1132
1133 AIDA::IHistogram2D* createHistogram2D( const std::string& name, const std::string& tit,
1134 int nx, double lowx, double upx,
1135 int ny, double lowy, double upy );
1136
1137 AIDA::IHistogram2D* createHistogram2D( const std::string& name, const std::string& tit,
1138 int nx, double lowx, double upx,
1139 int ny, double lowy, double upy,
1140 const std::string& /*opt*/ ) override;
1141
1142 AIDA::IHistogram2D* createHistogram2D( const std::string& name, const std::string& title,
1143 const Edges& x, const Edges& y,
1144 const std::string& /*opt*/ ) override;
1145
1146 AIDA::IHistogram2D* createHistogram2D( const std::string& nameAndTitle,
1147 int nx, double lowx, double upx,
1148 int ny, double lowy, double upy ) override;
1149
1150 AIDA::IHistogram2D* createCopy( const std::string& full,
1151 const AIDA::IHistogram2D& h ) override;
1152
1153 AIDA::IHistogram2D* createCopy( const std::string& par, const std::string& rel,
1154 const AIDA::IHistogram2D& h );
1155
1156 AIDA::IHistogram2D* createCopy( const std::pair<std::string, std::string>& loc,
1157 const AIDA::IHistogram2D& h );
1158
1159 AIDA::IHistogram2D* createCopy( DataObject* pPar, const std::string& rel,
1160 const AIDA::IHistogram2D& h );
1161
1162 AIDA::IHistogram3D* createHistogram3D( const std::string& name, const std::string& tit,
1163 int nx, double lowx, double upx,
1164 int ny, double lowy, double upy,
1165 int nz, double lowz, double upz );
1166
1167 AIDA::IHistogram3D* createHistogram3D( const std::string& name, const std::string& tit,
1168 int nx, double lowx, double upx,
1169 int ny, double lowy, double upy,
1170 int nz, double lowz, double upz,
1171 const std::string& /*opt*/ ) override;
1172
1173 AIDA::IHistogram3D* createHistogram3D( const std::string& name, const std::string& title,
1174 const Edges& x, const Edges& y, const Edges& z,
1175 const std::string& /*opt*/ ) override;
1176
1177 AIDA::IHistogram3D* createHistogram3D( const std::string& nameAndTitle,
1178 int nx, double lowx, double upx,
1179 int ny, double lowy, double upy,
1180 int nz, double lowz, double upz ) override;
1181
1182 AIDA::IHistogram3D* createCopy( const std::string& full,
1183 const AIDA::IHistogram3D& h ) override;
1184
1185 AIDA::IHistogram3D* createCopy( const std::string& par, const std::string& rel,
1186 const AIDA::IHistogram3D& h );
1187
1188 AIDA::IHistogram3D* createCopy( const std::pair<std::string, std::string>& loc,
1189 const AIDA::IHistogram3D& h );
1190
1191 AIDA::IHistogram3D* createCopy( DataObject* pPar, const std::string& rel,
1192 const AIDA::IHistogram3D& h );
1193
1194
1195 AIDA::IProfile1D* createProfile1D( const std::string& name, const std::string& tit,
1196 int nx, double lowx, double upx,
1197 const std::string& opt ) override;
1198
1199 AIDA::IProfile1D* createProfile1D( const std::string& name, const std::string& tit,
1200 int nx, double lowx, double upx,
1201 double upper, double lower,
1202 const std::string& opt ) override;
1203
1204 AIDA::IProfile1D* createProfile1D( const std::string& name,
1205 const std::string& title, const Edges& x,
1206 const std::string& /* opt */ ) override;
1207
1208 AIDA::IProfile1D* createProfile1D( const std::string& name,
1209 const std::string& title, const Edges& x,
1210 double upper, double lower,
1211 const std::string& /* opt */ ) override;
1212
1213 AIDA::IProfile1D* createProfile1D( const std::string& nametit,
1214 int nx, double lowx, double upx ) override;
1215
1216 AIDA::IProfile1D* createProfile1D( const std::string& nametit,
1217 int nx, double lowx, double upx,
1218 double upper, double lower ) override;
1219
1220 AIDA::IProfile1D* createCopy( const std::string& full,
1221 const AIDA::IProfile1D& h ) override;
1222
1223 AIDA::IProfile1D* createCopy( const std::string& par, const std::string& rel,
1224 const AIDA::IProfile1D& h );
1225
1226 AIDA::IProfile1D* createCopy( const std::pair<std::string, std::string>& loc,
1227 const AIDA::IProfile1D& h );
1228
1229 AIDA::IProfile1D* createCopy( DataObject* pPar, const std::string& rel,
1230 const AIDA::IProfile1D& h );
1231
1232 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit,
1233 int nx, double lowx, double upx,
1234 int ny, double lowy, double upy );
1235
1236 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit,
1237 int nx, double lowx, double upx,
1238 int ny, double lowy, double upy,
1239 const std::string& /*opt*/ ) override;
1240
1241 AIDA::IProfile2D* createProfile2D( const std::string& name,
1242 const std::string& title,
1243 const Edges& x, const Edges& y,
1244 const std::string& /*opt*/ ) override;
1245
1246 AIDA::IProfile2D* createProfile2D( const std::string& nameAndTitle,
1247 int nx, double lowx, double upx,
1248 int ny, double lowy, double upy ) override;
1249
1250 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit,
1251 int nx, double lowx, double upx,
1252 int ny, double lowy, double upy,
1253 double upper, double lower );
1254
1255 AIDA::IProfile2D* createProfile2D( const std::string& name, const std::string& tit,
1256 int nx, double lowx, double upx,
1257 int ny, double lowy, double upy,
1258 double upper, double lower, const std::string& /*opt*/ ) override;
1259
1260 AIDA::IProfile2D* createProfile2D( const std::string& name,
1261 const std::string& title,
1262 const Edges& x, const Edges& y,
1263 double upper, double lower,
1264 const std::string& /*opt*/ ) override;
1265
1266 AIDA::IProfile2D* createProfile2D( const std::string& nameAndTitle,
1267 int nx, double lowx, double upx,
1268 int ny, double lowy, double upy,
1269 double upper, double lower ) override;
1270
1271 AIDA::IProfile2D* createCopy( const std::string& full,
1272 const AIDA::IProfile2D& h ) override;
1273
1274 AIDA::IProfile2D* createCopy( const std::string& par, const std::string& rel,
1275 const AIDA::IProfile2D& h );
1276
1277 AIDA::IProfile2D* createCopy( const std::pair<std::string, std::string>& loc,
1278 const AIDA::IProfile2D& h );
1279
1280 AIDA::IProfile2D* createCopy( DataObject* pPar, const std::string& rel,
1281 const AIDA::IProfile2D& h );
1282
1283 AIDA::ICloud1D* createCloud1D( const std::string&, const std::string&,
1284 int, const std::string& ) override
1285 {
1286 not_implemented();
1287 return nullptr;
1288 }
1289
1290 AIDA::ICloud1D* createCloud1D(const std::string&) override
1291 {
1292 not_implemented();
1293 return nullptr;
1294 }
1295
1296 AIDA::ICloud1D* createCopy(const std::string&, const AIDA::ICloud1D&) override
1297 {
1298 not_implemented();
1299 return nullptr;
1300 }
1301
1302 AIDA::ICloud2D* createCloud2D( const std::string&, const std::string&,
1303 int, const std::string& ) override
1304 {
1305 not_implemented();
1306 return nullptr;
1307 }
1308
1309 AIDA::ICloud2D* createCloud2D(const std::string&) override
1310 {
1311 not_implemented();
1312 return nullptr;
1313 }
1314
1315 AIDA::ICloud2D* createCopy(const std::string&, const AIDA::ICloud2D&) override
1316 {
1317 not_implemented();
1318 return nullptr;
1319 }
1320
1321 AIDA::ICloud3D* createCloud3D(const std::string&, const std::string&, int, const std::string&) override
1322 {
1323 not_implemented();
1324 return nullptr;
1325 }
1326
1327 AIDA::ICloud3D* createCloud3D( const std::string& ) override
1328 {
1329 not_implemented();
1330 return nullptr;
1331 }
1332
1333 AIDA::ICloud3D* createCopy( const std::string&, const AIDA::ICloud3D& ) override
1334 {
1335 not_implemented();
1336 return nullptr;
1337 }
1338
1340 using IDataProviderSvc::registerObject;
1341 using IDataProviderSvc::unregisterObject;
1342 using IDataProviderSvc::retrieveObject;
1343 using IDataProviderSvc::findObject;
1344
1346 std::ostream& print( Base* h, std::ostream& s = std::cout ) const override;
1347
1349 std::ostream& write( Base* h, std::ostream& s = std::cout ) const override;
1350
1352 int write( Base* h, const char* file_name ) const override;
1353
1355 DataObject* createPath( const std::string& newPath ) override;
1356
1361 DataObject* createDirectory( const std::string& parentDir, const std::string& subDir ) override;
1362
1364 void update1Ddefs( Gaudi::Details::PropertyBase& );
1365
1366 typedef std::map<std::string, Gaudi::Histo1DDef> Histo1DMap;
1367
1368 private:
1369
1370 Gaudi::Property<DBaseEntries> m_input{this, "Input", {}, "input streams"};
1371 Gaudi::Property<Histo1DMap> m_defs1D{this, "Predefined1DHistos", {}, "histograms with predefined parameters"};
1372
1373 // modified histograms:
1374 std::set<std::string> m_mods1D;
1375
1376 };
1377 #endif // GAUDISVC_HISTOGRAMSVC_H
HistogramSvc::createCloud3D
AIDA::ICloud3D * createCloud3D(const std::string &, const std::string &, int, const std::string &) override
Definition: HistogramSvc.h:1321
System.h
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:23
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:1374
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:772
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:28
StatusCode::FAILURE
Definition: StatusCode.h:29
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:124
HistogramSvc::Histo1DMap
std::map< std::string, Gaudi::Histo1DDef > Histo1DMap
Definition: HistogramSvc.h:1366
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:314
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:299
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:91
HistogramSvc::createCloud1D
AIDA::ICloud1D * createCloud1D(const std::string &, const std::string &, int, const std::string &) override
Definition: HistogramSvc.h:1283
HistogramSvc::Helper::retrieve
StatusCode retrieve(A1 a1, A2 a2, A3 *&a3)
Definition: HistogramSvc.h:83
HistogramSvc::createCloud1D
AIDA::ICloud1D * createCloud1D(const std::string &) override
Definition: HistogramSvc.h:1290
std::map
STL class.
AIDA
GaudiKernel.
Definition: Fill.h:8
HistogramSvc::Helper::m_svc
HistogramSvc * m_svc
Definition: HistogramSvc.h:72
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:179
std::string
STL class.
AvalancheSchedulerSimpleTest.a1
a1
Definition: AvalancheSchedulerSimpleTest.py:80
DataSvc.h
GaudiPython.Persistency.add
def add(instance)
Definition: Persistency.py:32
compareOutputFiles.par
string par
Definition: compareOutputFiles.py:386
detail
TupleObj.h GaudiAlg/TupleObj.h namespace with few technical implementations.
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Find object identified by its directory entry.
Axis.h
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.
HistogramSvc::createCopy
AIDA::ICloud1D * createCopy(const std::string &, const AIDA::ICloud1D &) override
Definition: HistogramSvc.h:1296
HiveAlgSequencer.h
h
Definition: HiveAlgSequencer.py:24
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:129
GaudiException.h
std::runtime_error
STL class.
HistogramSvc::createCloud3D
AIDA::ICloud3D * createCloud3D(const std::string &) override
Definition: HistogramSvc.h:1327
HistogramSvc::Base
AIDA::IBaseHistogram Base
Definition: HistogramSvc.h:69
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
HistogramSvc::createCloud2D
AIDA::ICloud2D * createCloud2D(const std::string &) override
Definition: HistogramSvc.h:1309
HistogramSvc::createCopy
AIDA::ICloud3D * createCopy(const std::string &, const AIDA::ICloud3D &) override
Definition: HistogramSvc.h:1333
std::pair< std::string, std::string >
HistogramSvc::sliceYZ
AIDA::IHistogram2D * sliceYZ(const std::string &, const AIDA::IHistogram3D &, int, int) override
Definition: HistogramSvc.h:1099
std::set< std::string >
std::vector< double >
HistogramSvc::createCloud2D
AIDA::ICloud2D * createCloud2D(const std::string &, const std::string &, int, const std::string &) override
Definition: HistogramSvc.h:1302
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:118
GaudiPython.HistoUtils.bookProf
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
extends
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
HistogramSvc::Helper
Definition: HistogramSvc.h:71
HistogramSvc::histogramFactory
AIDA::IHistogramFactory * histogramFactory() override
Retrieve the AIDA HistogramFactory interface.
Definition: HistogramSvc.h:200
print
void print(string text)
Definition: mergesort.cpp:33
HistogramSvc::sliceXY
AIDA::IHistogram2D * sliceXY(const std::string &, const AIDA::IHistogram3D &, int, int) override
Definition: HistogramSvc.h:1083
GaudiPython.GaudiAlgs.write
write
Definition: GaudiAlgs.py:1144
HistogramSvc::Helper::act
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *))
Definition: HistogramSvc.h:140
AvalancheSchedulerSimpleTest.a2
a2
Definition: AvalancheSchedulerSimpleTest.py:83
gaudirun.s
string s
Definition: gaudirun.py:245
AvalancheSchedulerSimpleTest.a3
a3
Definition: AvalancheSchedulerSimpleTest.py:87
HistogramSvc::Helper::act
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:107
HistogramUtility.h
HistogramSvc::Helper::Helper
Helper(HistogramSvc *p)
Definition: HistogramSvc.h:73
HistogramSvc::Helper::retrieve
StatusCode retrieve(A1 a1, A3 *&a3)
Definition: HistogramSvc.h:75
HistogramSvc::P2D
AIDA::IProfile2D P2D
Definition: HistogramSvc.h:68
IDataProviderSvc::registerObject
virtual StatusCode registerObject(const std::string &fullPath, DataObject *pObject)=0
Register object with the data store.
HistogramSvc::sliceXZ
AIDA::IHistogram2D * sliceXZ(const std::string &, const AIDA::IHistogram3D &, int, int) override
Definition: HistogramSvc.h:1091
HistogramSvc::H3D
AIDA::IHistogram3D H3D
Definition: HistogramSvc.h:67
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:244
HistogramSvc::createCopy
AIDA::ICloud2D * createCopy(const std::string &, const AIDA::ICloud2D &) override
Definition: HistogramSvc.h:1315
IHistogramSvc.h
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
HistogramSvc::Helper::find
StatusCode find(A1 a1, A2 a2, A3 *&a3)
Definition: HistogramSvc.h:99
HistogramSvc
HistogramSvc class definition.
Definition: HistogramSvc.h:55