All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
HistogramSvc.h
Go to the documentation of this file.
1 // $Id: HistogramSvc.h,v 1.16 2008/10/09 09:59:14 marcocle Exp $
2 // ============================================================================
3 #ifndef GAUDISVC_HISTOGRAMSVC_H
4 #define GAUDISVC_HISTOGRAMSVC_H 1
5 // ============================================================================
6 // Include Files
7 // ============================================================================
8 // GaudiKernel
9 // ============================================================================
10 #include "GaudiKernel/System.h"
11 #include "GaudiKernel/DataSvc.h"
14 #include "GaudiKernel/IRegistry.h"
16 // ============================================================================
17 // AIDA
18 // ============================================================================
20 #include "AIDA_visibility_hack.h"
21 #include "AIDA/IHistogramFactory.h"
22 #include "AIDA/IAnnotation.h"
23 // ============================================================================
24 // local (+PI)
25 // ============================================================================
26 #include "Axis.h"
27 #include "GaudiPI.h"
28 #include "TH1.h"
29 #include "TH2.h"
30 #include "TH3.h"
31 // ============================================================================
32 namespace AIDA {
33  class ICloud1D;
34  class ICloud2D;
35  class ICloud3D;
36 }
37 // ============================================================================
38 // Forward declarations
39 #define DBINS(x) int n##x, double low##x, double up##x
40 #define BINS(x) n##x, low##x, up##x
41 #define NOT_IMPLEMENTED { not_implemented(); return 0; }
42 // ============================================================================
48 class HistogramSvc : virtual public extends1<DataSvc, IHistogramSvc>,
49  virtual public AIDA::IHistogramFactory
50 {
51 
52 private:
53  typedef const std::pair<std::string,std::string>& STRPAIR;
54  void not_implemented() const {
55  MsgStream log( msgSvc(), name() );
56  log << MSG::ERROR << "Sorry, not yet implemented..." << endmsg;
57  }
58 protected:
59  typedef const std::string& CSTR;
60  typedef std::vector<double> Edges;
61  typedef std::vector<std::string> DBaseEntries;
62  typedef AIDA::IHistogram1D H1D;
63  typedef AIDA::IHistogram2D H2D;
64  typedef AIDA::IHistogram3D H3D;
65  typedef AIDA::IProfile1D P1D;
66  typedef AIDA::IProfile2D P2D;
67  typedef AIDA::IBaseHistogram Base;
68  struct Helper {
71  template <class A1, class A3> StatusCode retrieve(A1 a1, A3*& a3) {
72  DataObject* pObject = 0;
73  StatusCode sc = m_svc->DataSvc::retrieveObject(a1,pObject);
74  a3 = dynamic_cast<A3*>(pObject);
75  return sc;
76  }
77  template <class A1, class A2, class A3> StatusCode retrieve(A1 a1, A2 a2, A3*& a3) {
78  DataObject* pObject = 0;
79  StatusCode sc = m_svc->DataSvc::retrieveObject(a1,a2,pObject);
80  a3 = dynamic_cast<A3*>(pObject);
81  return sc;
82  }
83  template <class A1, class A3> StatusCode find(A1 a1, A3*& a3) {
84  DataObject* pObject = 0;
85  StatusCode sc = m_svc->DataSvc::findObject(a1,pObject);
86  a3 = dynamic_cast<A3*>(pObject);
87  return sc;
88  }
89  template <class A1, class A2, class A3> StatusCode find(A1 a1, A2 a2, A3*& a3) {
90  DataObject* pObject = 0;
91  StatusCode sc = m_svc->DataSvc::findObject(a1,a2,pObject);
92  a3 = dynamic_cast<A3*>(pObject);
93  return sc;
94  }
95  template <class R, class S, class T1, class T2>
96  static R* act(R* res,const S& b, void (T1::*pmf)(const T2*,Double_t), Double_t scale) {
97  T1 *h1 = Gaudi::getRepresentation<R,T1>(*res);
98  T1 *h2 = Gaudi::getRepresentation<R,T1>(b);
99  if ( h1 && h2 ) {
100  (h1->*pmf)(h2,scale);
101  return res;
102  }
103  return 0;
104  }
105  template <class R, class S, class T1, class T2>
106  static R* act(R* res,const S& b, Bool_t (T1::*pmf)(const T2*,Double_t), Double_t scale) {
107  T1 *h1 = Gaudi::getRepresentation<R,T1>(*res);
108  T1 *h2 = Gaudi::getRepresentation<R,T1>(b);
109  if ( h1 && h2 ) {
110  (h1->*pmf)(h2,scale);
111  return res;
112  }
113  return 0;
114  }
115  template <class R, class S, class T1, class T2>
116  static R* act(R* res,const S& b, void (T1::*pmf)(const T2*)) {
117  T1 *h1 = Gaudi::getRepresentation<R,T1>(*res);
118  T1 *h2 = Gaudi::getRepresentation<R,T1>(b);
119  if ( h1 && h2 ) {
120  (h1->*pmf)(h2);
121  return res;
122  }
123  return 0;
124  }
125  template <class R, class S, class T1, class T2>
126  static R* act(R* res,const S& b, Bool_t (T1::*pmf)(const T2*)) {
127  T1 *h1 = Gaudi::getRepresentation<R,T1>(*res);
128  T1 *h2 = Gaudi::getRepresentation<R,T1>(b);
129  if ( h1 && h2 ) {
130  (h1->*pmf)(h2);
131  return res;
132  }
133  return 0;
134  }
135  };
136 
137 
140 
141 public:
147 
149  virtual ~HistogramSvc();
150 
156  std::pair<std::string,std::string> i_splitPath(CSTR full);
157 
162  std::string _STR(int i);
163 
164  template <class T> inline
165  T* i_book(DataObject* pPar,CSTR rel,CSTR title,const std::pair<DataObject*,T*>& o) {
166  if (o.first && registerObject(pPar, rel, (Base*)o.second).isSuccess())
167  return o.second;
168  delete o.first;
169  throw GaudiException("Cannot book "+System::typeinfoName(typeid(T))+" "+title,
170  "HistogramSvc",StatusCode::FAILURE);
171  }
172  template <class T> static DataObject* __cast(T* p) {
173  DataObject* q = dynamic_cast<DataObject*>(p);
174  if ( 0 == q && 0 != p ) {
175  throw std::runtime_error("HistogramSvc: Unexpected object type.");
176  }
177  return q;
178  }
180  H2D* i_project(CSTR nameAndTitle,const H3D& h, CSTR dir);
181 
182 public:
184  virtual StatusCode initialize ();
186  virtual StatusCode reinitialize ();
188  virtual StatusCode finalize ();
189 
191  virtual AIDA::IHistogramFactory* histogramFactory() { return this; }
192 
193  // ==========================================================================
194  // Book 1D histogram with fix binning
195  // ==========================================================================
213  virtual H1D* book(CSTR par, CSTR rel, CSTR title, DBINS(x))
214  { return book(createPath(par), rel, title, BINS(x)); }
215  virtual H1D* book(CSTR par, int hID, CSTR title, DBINS(x))
216  { return book(par, _STR(hID), title, BINS(x)); }
217  virtual H1D* book(DataObject* pPar, int hID, CSTR title, DBINS(x))
218  { return book(pPar, _STR(hID), title, BINS(x)); }
219  virtual H1D* book(DataObject* pPar, CSTR rel, CSTR title, DBINS(x)) ;
220  virtual H1D* book(STRPAIR loc,CSTR title, DBINS(x))
221  { return book(loc.first, loc.second, title, BINS(x)); }
222  virtual H1D* book(CSTR full, CSTR title, DBINS(x))
223  { return book(i_splitPath(full), title, BINS(x)); }
224  // ==========================================================================
225  // Book 1D Profile histogram with fix binning
226  // ==========================================================================
244  virtual P1D* bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x),CSTR opt)
245  { return bookProf(createPath(par), rel, title, BINS(x),opt); }
246  virtual P1D* bookProf(CSTR par, int hID, CSTR title, DBINS(x),CSTR opt )
247  { return bookProf(par, _STR(hID), title, BINS(x),opt); }
248  virtual P1D* bookProf(DataObject* pPar, int hID, CSTR title, DBINS(x),CSTR opt )
249  { return bookProf(pPar, _STR(hID), title, BINS(x),opt); }
250  virtual P1D* bookProf(STRPAIR loc,CSTR title, DBINS(x),CSTR opt)
251  { return bookProf(loc.first, loc.second, title, BINS(x),opt); }
252  virtual P1D* bookProf(CSTR full, CSTR title, DBINS(x),CSTR opt)
253  { return bookProf(i_splitPath(full), title, BINS(x),opt); }
254  virtual P1D* bookProf(DataObject* pPar, CSTR rel, CSTR title, DBINS(x),CSTR opt)
255  { return i_book(pPar,rel,title,Gaudi::createProf1D(title, BINS(x),0,0,opt)); }
256 
257  virtual P1D* bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), double upper, double lower,CSTR opt)
258  { return bookProf(createPath(par), rel, title, BINS(x), upper, lower , opt); }
259  virtual P1D* bookProf(CSTR par, int hID, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
260  { return bookProf(par, _STR(hID), title, BINS(x), upper, lower, opt ); }
261  virtual P1D* bookProf(DataObject* pPar, int hID, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
262  { return bookProf(pPar, _STR(hID), title, BINS(x), upper, lower, opt); }
263  virtual P1D* bookProf(STRPAIR loc,CSTR title, DBINS(x), double upper, double lower, CSTR opt)
264  { return bookProf(loc.first, loc.second, title, BINS(x), upper, lower,opt); }
265  virtual P1D* bookProf(CSTR full, CSTR title, DBINS(x), double upper, double lower, CSTR opt )
266  { return bookProf(i_splitPath(full), title, BINS(x), upper, lower , opt ); }
267  virtual P1D* bookProf(DataObject* pPar, CSTR rel, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
268  { return i_book(pPar,rel,title,Gaudi::createProf1D(title, BINS(x), upper, lower, opt)); }
269  // ==========================================================================
270  // Book 1D histogram with variable binning
271  // ==========================================================================
286  virtual H1D* book(CSTR par, int hID, CSTR title, Edges e)
287  { return book(par, _STR(hID), title, e); }
288  virtual H1D* book(DataObject* pPar, int hID, CSTR title, Edges e)
289  { return book(pPar, _STR(hID), title, e); }
290  virtual H1D* book(CSTR par, CSTR rel, CSTR title, Edges e )
291  { return book(createPath(par), rel, title, e); }
292  virtual H1D* book(STRPAIR loc,CSTR title, Edges e )
293  { return book(loc.first, loc.second, title, e); }
294  virtual H1D* book(CSTR full, CSTR title, Edges e )
295  { return book(i_splitPath(full), title, e); }
296  virtual H1D* book(DataObject* pPar, CSTR rel, CSTR title, Edges e )
297  { return i_book(pPar, rel, title, Gaudi::createH1D(title, e)); }
298 
299  // ==========================================================================
300  // Book 1D profile histogram with variable binning
301  // ==========================================================================
316  virtual P1D* bookProf(CSTR full, CSTR title, Edges e )
317  { return bookProf(i_splitPath(full), title, e); }
318  virtual P1D* bookProf(CSTR par, CSTR rel, CSTR title, Edges e )
319  { return bookProf(createPath(par), rel, title, e); }
320  virtual P1D* bookProf(CSTR par, int hID, CSTR title, Edges e )
321  { return bookProf(par, _STR(hID), title, e); }
322  virtual P1D* bookProf(DataObject* pPar, int hID, CSTR title, Edges e )
323  { return bookProf(pPar, _STR(hID), title, e); }
324  virtual P1D* bookProf(STRPAIR loc,CSTR title, Edges e)
325  { return bookProf(loc.first, loc.second, title, e); }
326  virtual P1D* bookProf(DataObject* pPar, CSTR rel, CSTR title, Edges e )
327  { return i_book(pPar,rel,title,Gaudi::createProf1D(title, e, 0, 0)); }
328 
329  virtual P1D* bookProf(CSTR full, CSTR title, Edges e, double upper, double lower)
330  { return bookProf(i_splitPath(full), title, e, upper, lower); }
331  virtual P1D* bookProf(CSTR par, CSTR rel, CSTR title, Edges e, double upper, double lower)
332  { return bookProf(createPath(par), rel, title, e, upper, lower); }
333  virtual P1D* bookProf(CSTR par, int hID, CSTR title, Edges e, double upper, double lower)
334  { return bookProf(par, _STR(hID), title, e, upper, lower); }
335  virtual P1D* bookProf(DataObject* pPar, int hID, CSTR title, Edges e, double upper, double lower)
336  { return bookProf(pPar, _STR(hID), title, e, upper, lower); }
337  virtual P1D* bookProf(STRPAIR loc,CSTR title, Edges e, double upper, double lower)
338  { return bookProf(loc.first, loc.second, title, e, upper, lower); }
339  virtual P1D* bookProf(DataObject* pPar, CSTR rel, CSTR title, Edges e, double upper, double lower)
340  { return i_book(pPar,rel,title,Gaudi::createProf1D(title, e, upper, lower));}
341  // ==========================================================================
342  // Book 2D histogram with fixed binning
343  // ==========================================================================
361  virtual H2D* book(CSTR full, CSTR title, DBINS(x), DBINS(y))
362  { return book(i_splitPath(full), title, BINS(x),BINS(y)); }
363  virtual H2D* book(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y))
364  { return book(createPath(par), rel, title, BINS(x),BINS(y)); }
365  virtual H2D* book(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y))
366  { return book(par,_STR(hID), title, BINS(x),BINS(y)); }
367  virtual H2D* book(STRPAIR loc,CSTR title, DBINS(x), DBINS(y))
368  { return book(loc.first, loc.second, title, BINS(x), BINS(y)); }
369  virtual H2D* book(DataObject* pPar, int hID, CSTR title, DBINS(x), DBINS(y))
370  { return book(pPar,_STR(hID), title, BINS(x),BINS(y)); }
371  virtual H2D* book(DataObject* pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y))
372  { return i_book(pPar,rel,title,Gaudi::createH2D(title, BINS(x),BINS(y)));}
373  // ==========================================================================
374  // Book 2D profile histogram with fixed binning
375  // ==========================================================================
393  virtual P2D* bookProf(CSTR full, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
394  { return bookProf(i_splitPath(full), title, BINS(x),BINS(y), upper, lower); }
395  virtual P2D* bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
396  { return bookProf(createPath(par), rel, title, BINS(x),BINS(y), upper, lower); }
397  virtual P2D* bookProf(STRPAIR loc,CSTR title, DBINS(x), DBINS(y), double upper, double lower)
398  { return bookProf(loc.first, loc.second, title, BINS(x), BINS(y), upper, lower); }
399  virtual P2D* bookProf(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
400  { return bookProf(par, _STR(hID), title, BINS(x),BINS(y), upper, lower); }
401  virtual P2D* bookProf(DataObject* pPar, int hID, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
402  { return bookProf(pPar,_STR(hID), title, BINS(x),BINS(y), upper, lower); }
403  virtual P2D* bookProf(DataObject* pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
404  { return i_book(pPar,rel,title,Gaudi::createProf2D(title, BINS(x),BINS(y), upper, lower)); }
405 
406  virtual P2D* bookProf(CSTR full, CSTR title, DBINS(x), DBINS(y))
407  { return bookProf(i_splitPath(full), title, BINS(x),BINS(y)); }
408  virtual P2D* bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y))
409  { return bookProf(createPath(par), rel, title, BINS(x),BINS(y)); }
410  virtual P2D* bookProf(STRPAIR loc,CSTR title, DBINS(x), DBINS(y))
411  { return bookProf(loc.first, loc.second, title, BINS(x), BINS(y)); }
412  virtual P2D* bookProf(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y))
413  { return bookProf(par, _STR(hID), title, BINS(x),BINS(y)); }
414  virtual P2D* bookProf(DataObject* pPar, int hID, CSTR title, DBINS(x), DBINS(y))
415  { return bookProf(pPar,_STR(hID), title, BINS(x),BINS(y)); }
416  virtual P2D* bookProf(DataObject* pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y))
417  { return i_book(pPar,rel,title,Gaudi::createProf2D(title, BINS(x),BINS(y),0,0));}
418  // ==========================================================================
419  // Book 2D histogram with variable binning
420  // ==========================================================================
435  virtual H2D* book(CSTR full, CSTR title, Edges x, Edges y )
436  { return book(i_splitPath(full), title, x, y); }
437  virtual H2D* book(CSTR par, CSTR rel, CSTR title, Edges x, Edges y )
438  { return book(createPath(par), rel, title, x, y); }
439  virtual H2D* book(CSTR par, int hID, CSTR title, Edges x, Edges y )
440  { return book(par, _STR(hID), title, x, y); }
441  virtual H2D* book(STRPAIR loc,CSTR title, Edges x, Edges y )
442  { return book(loc.first, loc.second, title, x, y); }
443  virtual H2D* book(DataObject* pPar, int hID, CSTR title, Edges x, Edges y )
444  { return book(pPar, _STR(hID), title, x, y); }
445  virtual H2D* book(DataObject* pPar, CSTR rel, CSTR title, Edges x, Edges y )
446  { return i_book(pPar, rel, title, Gaudi::createH2D(title, x,y)); }
447  // ==========================================================================
448  // Book 2D profile histogram with variable binning
449  // ==========================================================================
464  virtual P2D* bookProf(CSTR full, CSTR title, Edges x, Edges y )
465  { return bookProf(i_splitPath(full), title, x, y); }
466  virtual P2D* bookProf(CSTR par, CSTR rel, CSTR title, Edges x, Edges y )
467  { return bookProf(createPath(par), rel, title, x, y); }
468  virtual P2D* bookProf(CSTR par, int hID, CSTR title, Edges x, Edges y )
469  { return bookProf(par, _STR(hID), title, x, y); }
470  virtual P2D* bookProf(DataObject* pPar, int hID, CSTR title, Edges x, Edges y )
471  { return bookProf(pPar, _STR(hID), title, x, y); }
472  virtual P2D* bookProf(STRPAIR loc,CSTR title, Edges x, Edges y )
473  { return bookProf(loc.first, loc.second, title, x, y); }
474  virtual P2D* bookProf(DataObject* pPar, CSTR rel, CSTR title, Edges x, Edges y )
475  { return i_book(pPar, rel, title, Gaudi::createProf2D(title,x,y,0,0)); }
476 
477  virtual P2D* bookProf(CSTR full, CSTR title, Edges x, Edges y, double upper, double lower )
478  { return bookProf(i_splitPath(full), title, x, y, upper, lower); }
479  virtual P2D* bookProf(CSTR par, CSTR rel, CSTR title, Edges x, Edges y, double upper, double lower )
480  { return bookProf(createPath(par), rel, title, x, y, upper, lower); }
481  virtual P2D* bookProf(CSTR par, int hID, CSTR title, Edges x, Edges y, double upper, double lower )
482  { return bookProf(par, _STR(hID), title, x, y, upper, lower); }
483  virtual P2D* bookProf(DataObject* pPar, int hID, CSTR title, Edges x, Edges y, double upper, double lower )
484  { return bookProf(pPar, _STR(hID), title, x, y, upper, lower); }
485  virtual P2D* bookProf(STRPAIR loc,CSTR title, Edges x, Edges y, double upper, double lower )
486  { return bookProf(loc.first, loc.second, title, x, y, upper, lower); }
487  virtual P2D* bookProf(DataObject* pPar, CSTR rel, CSTR title, Edges x, Edges y, double upper, double lower )
488  { return i_book(pPar, rel, title, Gaudi::createProf2D(title,x,y, upper, lower)); }
489  // ==========================================================================
490  // Book 3D histogram with fixed binning
491  // ==========================================================================
509  virtual H3D* book(CSTR full, CSTR title, DBINS(x), DBINS(y), DBINS(z))
510  { return book(i_splitPath(full),title,BINS(x),BINS(y),BINS(z)); }
511  virtual H3D* book(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y), DBINS(z))
512  { return book(createPath(par),rel,title,BINS(x),BINS(y),BINS(z)); }
513  virtual H3D* book(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y), DBINS(z))
514  { return book(par,_STR(hID),title,BINS(x),BINS(y),BINS(z)); }
515  virtual H3D* book(DataObject* pPar, int hID, CSTR title, DBINS(x), DBINS(y), DBINS(z))
516  { return book(pPar,_STR(hID), title, BINS(x),BINS(y),BINS(z)); }
517  virtual H3D* book(STRPAIR loc,CSTR title, DBINS(x), DBINS(y), DBINS(z))
518  { return book(loc.first, loc.second, title, BINS(x),BINS(y),BINS(z)); }
519  virtual H3D* book(DataObject* pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y), DBINS(z))
520  { return i_book(pPar, rel, title, Gaudi::createH3D(title,BINS(x),BINS(y),BINS(z)));}
521  // ==========================================================================
522  // Book 3D histogram with variable binning
523  // ==========================================================================
540  virtual H3D* book(CSTR full, CSTR title, Edges x, Edges y, Edges z)
541  { return book(i_splitPath(full), title, x, y, z); }
542  virtual H3D* book(CSTR par, CSTR rel, CSTR title, Edges x, Edges y, Edges z)
543  { return book(createPath(par), rel, title, x, y, z); }
544  virtual H3D* book(CSTR par, int hID, CSTR title, Edges x, Edges y, Edges z)
545  { return book(par,_STR(hID), title, x, y, z); }
546  virtual H3D* book(DataObject* pPar, int hID, CSTR title, Edges x, Edges y, Edges z)
547  { return book(pPar,_STR(hID), title, x, y, z); }
548  virtual H3D* book(STRPAIR loc,CSTR title, Edges x, Edges y, Edges z)
549  { return book(loc.first, loc.second, title, x,y,z); }
550  virtual H3D* book(DataObject* pPar, CSTR rel, CSTR title, Edges x, Edges y, Edges z)
551  { return i_book(pPar, rel, title, Gaudi::createH3D(title,x,y,z)); }
552 
553  // ==========================================================================
554  // Register histogram with the data store
555  // ==========================================================================
556 //------------------------------------------------------------------------------
557 // Register object with the data store
558 //------------------------------------------------------------------------------
559  virtual StatusCode registerObject(CSTR parent, CSTR rel, Base* obj )
560  { return registerObject(createPath(parent), rel, obj); }
561  virtual StatusCode registerObject(CSTR parent, int item, Base* obj )
562  { return registerObject(parent, _STR(item), obj); }
563  virtual StatusCode registerObject(Base* pPar, CSTR rel, Base* obj )
564  { return registerObject(__cast(pPar), rel, obj); }
565  virtual StatusCode registerObject(DataObject* pPar, int item, Base* obj )
566  { return registerObject(pPar, _STR(item), obj); }
567  virtual StatusCode registerObject(Base* pPar, int item, Base* obj )
568  { return registerObject(__cast(pPar), item, obj); }
569  virtual StatusCode registerObject(CSTR full, Base* obj );
570  virtual StatusCode registerObject(DataObject* pPar, CSTR rel, Base* obj );
571  // ==========================================================================
572  // Unregister histogram from the data store
573  // ==========================================================================
575  { return DataSvc::unregisterObject(__cast(obj)); }
576  virtual StatusCode unregisterObject(Base* obj, CSTR objectPath)
577  { return DataSvc::unregisterObject(__cast(obj),objectPath); }
578  virtual StatusCode unregisterObject(Base* obj, int item )
579  { return DataSvc::unregisterObject(__cast(obj),item); }
580  // ==========================================================================
581  // Retrieve histogram from data store
582  // ==========================================================================
584  { return Helper(this).retrieve(pReg,path,obj); }
586  { return Helper(this).retrieve(pReg,path,obj); }
588  { return Helper(this).retrieve(pReg,path,obj); }
590  { return Helper(this).retrieve(pReg,path,obj); }
592  { return Helper(this).retrieve(pReg,path,obj); }
593  //------------------------------------------------------------------------------
594  virtual StatusCode retrieveObject(CSTR full,P1D*& obj)
595  { return Helper(this).retrieve(full,obj); }
596  virtual StatusCode retrieveObject(CSTR full,P2D*& obj)
597  { return Helper(this).retrieve(full,obj); }
598  virtual StatusCode retrieveObject(CSTR full,H1D*& obj)
599  { return Helper(this).retrieve(full,obj); }
600  virtual StatusCode retrieveObject(CSTR full,H2D*& obj)
601  { return Helper(this).retrieve(full,obj); }
602  virtual StatusCode retrieveObject(CSTR full,H3D*& obj)
603  { return Helper(this).retrieve(full,obj); }
604  //------------------------------------------------------------------------------
605  virtual StatusCode retrieveObject(CSTR parent,CSTR rel,P1D*& obj)
606  { return Helper(this).retrieve(parent,rel,obj); }
607  virtual StatusCode retrieveObject(CSTR parent,CSTR rel,P2D*& obj)
608  { return Helper(this).retrieve(parent,rel,obj); }
609  virtual StatusCode retrieveObject(CSTR parent,CSTR rel,H1D*& obj)
610  { return Helper(this).retrieve(parent,rel,obj); }
611  virtual StatusCode retrieveObject(CSTR parent,CSTR rel,H2D*& obj)
612  { return Helper(this).retrieve(parent,rel,obj); }
613  virtual StatusCode retrieveObject(CSTR parent,CSTR rel,H3D*& obj)
614  { return Helper(this).retrieve(parent,rel,obj); }
615  //------------------------------------------------------------------------------
616  virtual StatusCode retrieveObject(CSTR parent,int item,P1D*& obj)
617  { return Helper(this).retrieve(parent,item,obj); }
618  virtual StatusCode retrieveObject(CSTR parent,int item,P2D*& obj)
619  { return Helper(this).retrieve(parent,item,obj); }
620  virtual StatusCode retrieveObject(CSTR parent,int item,H1D*& obj)
621  { return Helper(this).retrieve(parent,item,obj); }
622  virtual StatusCode retrieveObject(CSTR parent,int item,H2D*& obj)
623  { return Helper(this).retrieve(parent,item,obj); }
624  virtual StatusCode retrieveObject(CSTR parent,int item,H3D*& obj)
625  { return Helper(this).retrieve(parent,item,obj); }
626  //------------------------------------------------------------------------------
628  { return Helper(this).retrieve(par,item,obj); }
630  { return Helper(this).retrieve(par,item,obj); }
632  { return Helper(this).retrieve(par,item,obj); }
634  { return Helper(this).retrieve(par,item,obj); }
636  { return Helper(this).retrieve(par,item,obj); }
637  //------------------------------------------------------------------------------
638  virtual StatusCode retrieveObject(DataObject* par,int item,P1D*& obj)
639  { return Helper(this).retrieve(par,item,obj); }
640  virtual StatusCode retrieveObject(DataObject* par,int item,P2D*& obj)
641  { return Helper(this).retrieve(par,item,obj); }
642  virtual StatusCode retrieveObject(DataObject* par,int item,H1D*& obj)
643  { return Helper(this).retrieve(par,item,obj); }
644  virtual StatusCode retrieveObject(DataObject* par,int item,H2D*& obj)
645  { return Helper(this).retrieve(par,item,obj); }
646  virtual StatusCode retrieveObject(DataObject* par,int item,H3D*& obj)
647  { return Helper(this).retrieve(par,item,obj); }
648  //------------------------------------------------------------------------------
649  virtual StatusCode retrieveObject(Base* par,int item,P1D*& obj)
650  { return Helper(this).retrieve(__cast(par),item,obj); }
651  virtual StatusCode retrieveObject(Base* par,int item,P2D*& obj)
652  { return Helper(this).retrieve(__cast(par),item,obj); }
653  virtual StatusCode retrieveObject(Base* par,int item,H1D*& obj)
654  { return Helper(this).retrieve(__cast(par),item,obj); }
655  virtual StatusCode retrieveObject(Base* par,int item,H2D*& obj)
656  { return Helper(this).retrieve(__cast(par),item,obj); }
657  virtual StatusCode retrieveObject(Base* par,int item,H3D*& obj)
658  { return Helper(this).retrieve(__cast(par),item,obj); }
659  //------------------------------------------------------------------------------
661  { return Helper(this).retrieve(__cast(par),item,obj); }
663  { return Helper(this).retrieve(__cast(par),item,obj); }
665  { return Helper(this).retrieve(__cast(par),item,obj); }
667  { return Helper(this).retrieve(__cast(par),item,obj); }
669  { return Helper(this).retrieve(__cast(par),item,obj); }
670 
671  // ==========================================================================
672  // Find histogram identified by its full path in the data store
673  // ==========================================================================
674 
675  //------------------------------------------------------------------------------
676  // Find object identified by its full path in the data store
677  //------------------------------------------------------------------------------
679  { return Helper(this).find(pReg,path,obj); }
681  { return Helper(this).find(pReg,path,obj); }
683  { return Helper(this).find(pReg,path,obj); }
685  { return Helper(this).find(pReg,path,obj); }
687  { return Helper(this).find(pReg,path,obj); }
688  //------------------------------------------------------------------------------
689  virtual StatusCode findObject(CSTR full,P1D*& obj)
690  { return Helper(this).find(full,obj); }
691  virtual StatusCode findObject(CSTR full,P2D*& obj)
692  { return Helper(this).find(full,obj); }
693  virtual StatusCode findObject(CSTR full,H1D*& obj)
694  { return Helper(this).find(full,obj); }
695  virtual StatusCode findObject(CSTR full,H2D*& obj)
696  { return Helper(this).find(full,obj); }
697  virtual StatusCode findObject(CSTR full,H3D*& obj)
698  { return Helper(this).find(full,obj); }
699  //------------------------------------------------------------------------------
700  virtual StatusCode findObject(CSTR par,CSTR rel,P1D*& obj)
701  { return Helper(this).find(par,rel,obj); }
702  virtual StatusCode findObject(CSTR par,CSTR rel,P2D*& obj)
703  { return Helper(this).find(par,rel,obj); }
704  virtual StatusCode findObject(CSTR par,CSTR rel,H1D*& obj)
705  { return Helper(this).find(par,rel,obj); }
706  virtual StatusCode findObject(CSTR par,CSTR rel,H2D*& obj)
707  { return Helper(this).find(par,rel,obj); }
708  virtual StatusCode findObject(CSTR par,CSTR rel,H3D*& obj)
709  { return Helper(this).find(par,rel,obj); }
710  //------------------------------------------------------------------------------
711  virtual StatusCode findObject(CSTR par,int item,P1D*& obj)
712  { return Helper(this).find(par,item,obj); }
713  virtual StatusCode findObject(CSTR par,int item,P2D*& obj)
714  { return Helper(this).find(par,item,obj); }
715  virtual StatusCode findObject(CSTR par,int item,H1D*& obj)
716  { return Helper(this).find(par,item,obj); }
717  virtual StatusCode findObject(CSTR par,int item,H2D*& obj)
718  { return Helper(this).find(par,item,obj); }
719  virtual StatusCode findObject(CSTR par,int item,H3D*& obj)
720  { return Helper(this).find(par,item,obj); }
721  //------------------------------------------------------------------------------
722  virtual StatusCode findObject(DataObject* par,int item,P1D*& obj)
723  { return Helper(this).find(par,item,obj); }
724  virtual StatusCode findObject(DataObject* par,int item,P2D*& obj)
725  { return Helper(this).find(par,item,obj); }
726  virtual StatusCode findObject(DataObject* par,int item,H1D*& obj)
727  { return Helper(this).find(par,item,obj); }
728  virtual StatusCode findObject(DataObject* par,int item,H2D*& obj)
729  { return Helper(this).find(par,item,obj); }
730  virtual StatusCode findObject(DataObject* par,int item,H3D*& obj)
731  { return Helper(this).find(par,item,obj); }
732  //------------------------------------------------------------------------------
734  { return Helper(this).find(par,item,obj); }
736  { return Helper(this).find(par,item,obj); }
738  { return Helper(this).find(par,item,obj); }
740  { return Helper(this).find(par,item,obj); }
742  { return Helper(this).find(par,item,obj); }
743  //------------------------------------------------------------------------------
744  virtual StatusCode findObject(Base* par,int item,P1D*& obj)
745  { return Helper(this).find(__cast(par),item,obj); }
746  virtual StatusCode findObject(Base* par,int item,P2D*& obj)
747  { return Helper(this).find(__cast(par),item,obj); }
748  virtual StatusCode findObject(Base* par,int item,H1D*& obj)
749  { return Helper(this).find(__cast(par),item,obj); }
750  virtual StatusCode findObject(Base* par,int item,H2D*& obj)
751  { return Helper(this).find(__cast(par),item,obj); }
752  virtual StatusCode findObject(Base* par,int item,H3D*& obj)
753  { return Helper(this).find(__cast(par),item,obj); }
754  //------------------------------------------------------------------------------
755  virtual StatusCode findObject(Base* par,CSTR item,P1D*& obj)
756  { return Helper(this).find(__cast(par),item,obj); }
757  virtual StatusCode findObject(Base* par,CSTR item,P2D*& obj)
758  { return Helper(this).find(__cast(par),item,obj); }
759  virtual StatusCode findObject(Base* par,CSTR item,H1D*& obj)
760  { return Helper(this).find(__cast(par),item,obj); }
761  virtual StatusCode findObject(Base* par,CSTR item,H2D*& obj)
762  { return Helper(this).find(__cast(par),item,obj); }
763  virtual StatusCode findObject(Base* par,CSTR item,H3D*& obj)
764  { return Helper(this).find(__cast(par),item,obj); }
765 
766  // ==========================================================================
767  // Projections and slices.
768  // ==========================================================================
769  virtual H1D* projectionX(CSTR name,const H2D& h)
770  { return sliceX( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN); }
771  virtual H1D* projectionY(CSTR name,const H2D& h)
772  { return sliceY( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN); }
773  virtual H1D* sliceX(CSTR name,const H2D& h,int indexY)
774  { return sliceX( name, h, indexY, indexY ); }
775  virtual H1D* sliceY(CSTR name,const H2D& h,int indexX)
776  { return sliceY( name, h, indexX, indexX ); }
777  virtual H1D* sliceX(CSTR name,const H2D& h,int indexY1,int indexY2);
778  virtual H1D* sliceY(CSTR name,const H2D& h,int indexX1,int indexX2);
779  //------------------------------------------------------------------------------
780  bool destroy( IBaseHistogram* hist);
781 
782  H1D* add(CSTR nameAndTitle, const H1D& a, const H1D& b)
783  { return Helper::act(createCopy(nameAndTitle,a),b,&TH1::Add, 1.); }
784  H1D* subtract(CSTR nameAndTitle, const H1D& a, const H1D& b)
785  { return Helper::act(createCopy(nameAndTitle,a),b,&TH1::Add,-1.); }
786  H1D* multiply(CSTR nameAndTitle, const H1D& a, const H1D& b)
787  { return Helper::act(createCopy(nameAndTitle,a),b,&TH1::Multiply); }
788  H1D* divide(CSTR nameAndTitle, const H1D& a, const H1D& b)
789  { return Helper::act(createCopy(nameAndTitle,a),b,&TH1::Divide); }
790 
791  H2D* add(CSTR nameAndTitle, const H2D& a, const H2D& b)
792  { return Helper::act(createCopy(nameAndTitle,a),b,&TH2D::Add, 1.); }
793  H2D* subtract(CSTR nameAndTitle, const H2D& a, const H2D& b)
794  { return Helper::act(createCopy(nameAndTitle,a),b,&TH2D::Add,-1.); }
795  H2D* multiply(CSTR nameAndTitle, const H2D& a, const H2D& b)
796  { return Helper::act(createCopy(nameAndTitle,a),b,&TH2D::Multiply); }
797  H2D* divide(CSTR nameAndTitle, const H2D& a, const H2D& b)
798  { return Helper::act(createCopy(nameAndTitle,a),b,&TH2D::Divide); }
799 
800  H3D* add(CSTR nameAndTitle, const H3D& a, const H3D& b)
801  { return Helper::act(createCopy(nameAndTitle,a),b,&TH3D::Add, 1.); }
802  H3D* subtract(CSTR nameAndTitle, const H3D& a, const H3D& b)
803  { return Helper::act(createCopy(nameAndTitle,a),b,&TH3D::Add,-1.); }
804  H3D* multiply(CSTR nameAndTitle, const H3D& a, const H3D& b)
805  { return Helper::act(createCopy(nameAndTitle,a),b,&TH3D::Multiply); }
806  H3D* divide(CSTR nameAndTitle, const H3D& a, const H3D& b)
807  { return Helper::act(createCopy(nameAndTitle,a),b,&TH3D::Divide); }
808 
809  H2D* projectionXY(CSTR nameAndTitle,const H3D& h)
810  { return i_project(nameAndTitle,h,"xy"); }
811  H2D* projectionXZ(CSTR nameAndTitle,const H3D& h)
812  { return i_project(nameAndTitle,h,"xz"); }
813  H2D* projectionYZ(CSTR nameAndTitle,const H3D& h)
814  { return i_project(nameAndTitle,h,"yz"); }
815  H2D* sliceXY(CSTR /* nameAndTitle */,const H3D& /* h */,int /* low */,int /* high */ ) NOT_IMPLEMENTED
816  H2D* sliceXZ(CSTR /* nameAndTitle */,const H3D& /* h */,int /* low */,int /* high */ ) NOT_IMPLEMENTED
817  H2D* sliceYZ(CSTR /* nameAndTitle */,const H3D& /* h */,int /* low */,int /* high */ ) NOT_IMPLEMENTED
818 
819  //------------------------------------------------------------------------------
821  { return book( name, tit, BINS(x)); }
823  { return book( name, tit, BINS(x)); }
824  H1D* createHistogram1D(CSTR name,CSTR title,const Edges& x,CSTR /*opt*/)
825  { return book(name, title, x); }
826  H1D* createHistogram1D(CSTR nameAndTitle, DBINS(x))
827  { return book(nameAndTitle, nameAndTitle, BINS(x)); }
828  H1D* createCopy(CSTR full, const H1D& h)
829  { return createCopy(i_splitPath(full), h); }
830  H1D* createCopy(CSTR par, CSTR rel, const H1D& h)
831  { return createCopy(createPath(par), rel, h); }
832  H1D* createCopy(STRPAIR loc, const H1D& h)
833  { return createCopy(loc.first, loc.second, h); }
834  H1D* createCopy(DataObject* pPar, CSTR rel, const H1D& h)
835  { return i_book(pPar, rel, h.title(), Gaudi::createH1D(h)); }
836  //------------------------------------------------------------------------------
838  { return book( name, tit, BINS(x), BINS(y)); }
839  H2D* createHistogram2D(CSTR name,CSTR tit,DBINS(x),DBINS(y),CSTR /*opt*/)
840  { return book( name, tit, BINS(x), BINS(y)); }
841  H2D* createHistogram2D(CSTR name,CSTR title,const Edges& x,const Edges& y, CSTR /*opt*/)
842  { return book(name, title, x, y); }
843  H2D* createHistogram2D(CSTR nameAndTitle, DBINS(x), DBINS(y))
844  { return book(nameAndTitle, nameAndTitle, BINS(x), BINS(y)); }
845  H2D* createCopy(CSTR full, const H2D& h)
846  { return createCopy(i_splitPath(full), h); }
847  H2D* createCopy(CSTR par, CSTR rel, const H2D& h)
848  { return createCopy(createPath(par), rel, h); }
849  H2D* createCopy(STRPAIR loc, const H2D& h)
850  { return createCopy(loc.first, loc.second, h); }
851  H2D* createCopy(DataObject* pPar, CSTR rel, const H2D& h)
852  { return i_book(pPar, rel, h.title(), Gaudi::createH2D(h)); }
853  //------------------------------------------------------------------------------
854  H3D* createHistogram3D(CSTR name, CSTR tit, DBINS(x), DBINS(y), DBINS(z))
855  { return book( name, tit, BINS(x), BINS(y), BINS(z)); }
856  H3D* createHistogram3D(CSTR name, CSTR tit, DBINS(x), DBINS(y), DBINS(z), CSTR /*opt*/)
857  { return book( name, tit, BINS(x), BINS(y), BINS(z)); }
858  H3D* createHistogram3D(CSTR name, CSTR title,const Edges& x,const Edges& y,const Edges& z,CSTR /*opt*/)
859  { return book(name, title, x, y, z); }
860  H3D* createHistogram3D(CSTR nameAndTitle, DBINS(x), DBINS(y), DBINS(z))
861  { return book(nameAndTitle, nameAndTitle, BINS(x), BINS(y), BINS(z)); }
862  H3D* createCopy(CSTR full, const H3D& h)
863  { return createCopy(i_splitPath(full), h); }
864  H3D* createCopy(CSTR par, CSTR rel, const H3D& h)
865  { return createCopy(createPath(par), rel, h); }
866  H3D* createCopy(STRPAIR loc, const H3D& h)
867  { return createCopy(loc.first, loc.second, h); }
868  H3D* createCopy(DataObject* pPar, CSTR rel, const H3D& h)
869  { return i_book(pPar, rel, h.title(), Gaudi::createH3D(h)); }
870  //------------------------------------------------------------------------------
871 
872 
874  { return bookProf( name, tit, BINS(x) , opt ); }
875  P1D* createProfile1D(CSTR name,CSTR tit,DBINS(x),double upper, double lower , CSTR opt )
876  { return bookProf( name, tit, BINS(x), upper, lower , opt ); }
877  P1D* createProfile1D(CSTR name,CSTR title,const Edges& x,CSTR /* opt */ )
878  { return bookProf(name, title, x ); }
879  P1D* createProfile1D(CSTR name,CSTR title,const Edges& x,double upper, double lower, CSTR /* opt */ )
880  { return bookProf(name, title, x, upper, lower ); }
881 
883  { return bookProf( nametit, nametit, BINS(x) , "s"); }
884  P1D* createProfile1D(CSTR nametit,DBINS(x),double upper, double lower )
885  { return bookProf( nametit, nametit, BINS(x), upper, lower , "s"); }
886 
887 
888  P1D* createCopy(CSTR full, const P1D& h)
889  { return createCopy(i_splitPath(full), h); }
890  P1D* createCopy(CSTR par, CSTR rel, const P1D& h)
891  { return createCopy(createPath(par), rel, h); }
892  P1D* createCopy(STRPAIR loc, const P1D& h)
893  { return createCopy(loc.first, loc.second, h); }
894  P1D* createCopy(DataObject* pPar, CSTR rel, const P1D& h)
895  { return i_book(pPar, rel, h.title(), Gaudi::createProf1D(h)); }
896  //------------------------------------------------------------------------------
898  { return bookProf( name, tit, BINS(x), BINS(y)); }
899  P2D* createProfile2D(CSTR name,CSTR tit,DBINS(x),DBINS(y),CSTR /*opt*/)
900  { return bookProf( name, tit, BINS(x), BINS(y)); }
901  P2D* createProfile2D(CSTR name,CSTR title,const Edges& x,const Edges& y, CSTR /*opt*/)
902  { return bookProf(name, title, x, y); }
903  P2D* createProfile2D(CSTR nameAndTitle, DBINS(x), DBINS(y))
904  { return bookProf(nameAndTitle, nameAndTitle, BINS(x), BINS(y)); }
905 
906  P2D* createProfile2D(CSTR name,CSTR tit,DBINS(x),DBINS(y),double upper, double lower)
907  { return bookProf( name, tit, BINS(x), BINS(y), upper, lower); }
908  P2D* createProfile2D(CSTR name,CSTR tit,DBINS(x),DBINS(y),double upper, double lower,CSTR /*opt*/)
909  { return bookProf( name, tit, BINS(x), BINS(y), upper, lower); }
910  P2D* createProfile2D(CSTR name,CSTR title,const Edges& x,const Edges& y,double upper, double lower, CSTR /*opt*/)
911  { return bookProf(name, title, x, y, upper, lower); }
912  P2D* createProfile2D(CSTR nameAndTitle, DBINS(x), DBINS(y),double upper, double lower)
913  { return bookProf(nameAndTitle, nameAndTitle, BINS(x), BINS(y), upper, lower);}
914 
915  P2D* createCopy(CSTR full, const P2D& h)
916  { return createCopy(i_splitPath(full), h); }
917  P2D* createCopy(CSTR par, CSTR rel, const P2D& h)
918  { return createCopy(createPath(par), rel, h); }
919  P2D* createCopy(STRPAIR loc, const P2D& h)
920  { return createCopy(loc.first, loc.second, h); }
921  P2D* createCopy(DataObject* pPar, CSTR rel, const P2D& h)
922  { return i_book(pPar, rel, h.title(), Gaudi::createProf2D(h)); }
923  //------------------------------------------------------------------------------
924  AIDA::ICloud1D* createCloud1D(CSTR, CSTR, int, CSTR) NOT_IMPLEMENTED
925  AIDA::ICloud1D* createCloud1D(CSTR) NOT_IMPLEMENTED
926  AIDA::ICloud1D* createCopy(CSTR, const AIDA::ICloud1D&) NOT_IMPLEMENTED
927  AIDA::ICloud2D* createCloud2D(CSTR, CSTR, int, CSTR) NOT_IMPLEMENTED
928  AIDA::ICloud2D* createCloud2D(CSTR) NOT_IMPLEMENTED
929  AIDA::ICloud2D* createCopy(CSTR, const AIDA::ICloud2D&) NOT_IMPLEMENTED
930  AIDA::ICloud3D* createCloud3D(CSTR, CSTR, int, CSTR) NOT_IMPLEMENTED
931  AIDA::ICloud3D* createCloud3D(CSTR) NOT_IMPLEMENTED
932  AIDA::ICloud3D* createCopy(CSTR, const AIDA::ICloud3D&) NOT_IMPLEMENTED
933 
939 
941  virtual std::ostream& print(Base* h, std::ostream& s = std::cout) const;
942 
944  virtual std::ostream& write(Base* h, std::ostream& s = std::cout) const;
945 
947  virtual int write(Base* h, const char* file_name ) const;
948 
950  virtual DataObject* createPath(CSTR newPath );
951 
956  virtual DataObject* createDirectory (CSTR parentDir, CSTR subDir );
957 
958 public:
959  // ==========================================================================
961  void update1Ddefs ( Property& ) ;
962  // ==========================================================================
963  typedef std::map<std::string,Gaudi::Histo1DDef> Histo1DMap ;
964  // ==========================================================================
965 private:
966  // ==========================================================================
967  // container with the definition of "the special" histograms
968  Histo1DMap m_defs1D ;
969  // ==========================================================================
970  // modified histograms:
971  std::set<std::string> m_mods1D ;
972  // ==========================================================================
973 };
974 // ===========================================================================
975 // The END
976 // ===========================================================================
977 #endif // GAUDISVC_HISTOGRAMSVC_H
978 // ===========================================================================
virtual P2D * bookProf(STRPAIR loc, CSTR title, Edges x, Edges y, double upper, double lower)
Definition: HistogramSvc.h:485
H1D * createCopy(CSTR par, CSTR rel, const H1D &h)
Definition: HistogramSvc.h:830
H2D * add(CSTR nameAndTitle, const H2D &a, const H2D &b)
Definition: HistogramSvc.h:791
H2D * subtract(CSTR nameAndTitle, const H2D &a, const H2D &b)
Definition: HistogramSvc.h:793
virtual P2D * bookProf(CSTR par, int hID, CSTR title, Edges x, Edges y, double upper, double lower)
Definition: HistogramSvc.h:481
virtual StatusCode retrieveObject(CSTR parent, int item, P2D *&obj)
Definition: HistogramSvc.h:618
virtual H1D * book(STRPAIR loc, CSTR title, Edges e)
Definition: HistogramSvc.h:292
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
H2D * createCopy(DataObject *pPar, CSTR rel, const H2D &h)
Definition: HistogramSvc.h:851
H1D * createCopy(DataObject *pPar, CSTR rel, const H1D &h)
Definition: HistogramSvc.h:834
virtual StatusCode findObject(DataObject *par, CSTR item, P1D *&obj)
Definition: HistogramSvc.h:733
virtual P2D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
Definition: HistogramSvc.h:401
P2D * createProfile2D(CSTR name, CSTR title, const Edges &x, const Edges &y, double upper, double lower, CSTR)
Definition: HistogramSvc.h:910
virtual H2D * book(CSTR par, int hID, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:439
Define general base for Gaudi exception.
virtual StatusCode findObject(CSTR par, int item, H1D *&obj)
Definition: HistogramSvc.h:715
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:26
const std::string & CSTR
Definition: HistogramSvc.h:59
virtual H1D * book(CSTR par, CSTR rel, CSTR title, Edges e)
Definition: HistogramSvc.h:290
std::set< std::string > m_mods1D
Definition: HistogramSvc.h:971
virtual StatusCode retrieveObject(CSTR parent, CSTR rel, P1D *&obj)
Definition: HistogramSvc.h:605
bool destroy(IBaseHistogram *hist)
virtual StatusCode findObject(DataObject *par, CSTR item, H3D *&obj)
Definition: HistogramSvc.h:741
virtual P1D * bookProf(STRPAIR loc, CSTR title, Edges e, double upper, double lower)
Definition: HistogramSvc.h:337
virtual StatusCode findObject(Base *par, CSTR item, H2D *&obj)
Definition: HistogramSvc.h:761
virtual StatusCode findObject(CSTR par, int item, P1D *&obj)
Definition: HistogramSvc.h:711
virtual StatusCode retrieveObject(Base *par, int item, H1D *&obj)
Definition: HistogramSvc.h:653
virtual P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:474
virtual H2D * book(STRPAIR loc, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:367
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), double upper, double lower)
Definition: HistogramSvc.h:906
virtual StatusCode retrieveObject(CSTR parent, int item, H3D *&obj)
Definition: HistogramSvc.h:624
virtual P2D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
Definition: HistogramSvc.h:395
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:298
virtual P1D * bookProf(CSTR full, CSTR title, Edges e)
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:316
H2D const H3D int NOT_IMPLEMENTED H2D CSTR tit
Definition: HistogramSvc.h:820
std::pair< DataObject *, AIDA::IHistogram1D * > createH1D(const AIDA::IHistogram1D &hist)
Copy constructor.
H1D * subtract(CSTR nameAndTitle, const H1D &a, const H1D &b)
Definition: HistogramSvc.h:784
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
virtual StatusCode retrieveObject(DataObject *par, int item, H2D *&obj)
Definition: HistogramSvc.h:644
P1D * createCopy(STRPAIR loc, const P1D &h)
Definition: HistogramSvc.h:892
virtual StatusCode registerObject(Base *pPar, CSTR rel, Base *obj)
Definition: HistogramSvc.h:563
virtual StatusCode retrieveObject(IRegistry *pReg, CSTR path, H1D *&obj)
Definition: HistogramSvc.h:583
virtual StatusCode findObject(Base *par, int item, H3D *&obj)
Definition: HistogramSvc.h:752
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
virtual P1D * bookProf(CSTR par, int hID, CSTR title, Edges e)
Definition: HistogramSvc.h:320
P1D * createProfile1D(CSTR nametit, DBINS(x), double upper, double lower)
Definition: HistogramSvc.h:884
virtual P1D * bookProf(CSTR full, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
Definition: HistogramSvc.h:265
virtual H1D * projectionY(CSTR name, const H2D &h)
Definition: HistogramSvc.h:771
const std::pair< std::string, std::string > & STRPAIR
Definition: HistogramSvc.h:53
virtual P1D * bookProf(DataObject *pPar, int hID, CSTR title, Edges e)
Definition: HistogramSvc.h:322
virtual H1D * book(STRPAIR loc, CSTR title, DBINS(x))
Definition: HistogramSvc.h:220
virtual StatusCode findObject(DataObject *par, int item, P1D *&obj)
Definition: HistogramSvc.h:722
P1D * createCopy(CSTR full, const P1D &h)
Definition: HistogramSvc.h:888
virtual P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y, double upper, double lower)
Definition: HistogramSvc.h:487
virtual H1D * book(DataObject *pPar, int hID, CSTR title, DBINS(x))
Definition: HistogramSvc.h:217
virtual AIDA::IHistogramFactory * histogramFactory()
Retrieve the AIDA HistogramFactory interface.
Definition: HistogramSvc.h:191
virtual StatusCode findObject(CSTR full, H3D *&obj)
Definition: HistogramSvc.h:697
H2D * createHistogram2D(CSTR nameAndTitle, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:843
virtual H2D * book(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:371
virtual P2D * bookProf(CSTR full, CSTR title, Edges x, Edges y, double upper, double lower)
Definition: HistogramSvc.h:477
virtual std::ostream & write(Base *h, std::ostream &s=std::cout) const
Write (ASCII) the 1D histogram table into the output stream.
H2D * multiply(CSTR nameAndTitle, const H2D &a, const H2D &b)
Definition: HistogramSvc.h:795
virtual P1D * bookProf(CSTR par, int hID, CSTR title, Edges e, double upper, double lower)
Definition: HistogramSvc.h:333
T * i_book(DataObject *pPar, CSTR rel, CSTR title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:165
void not_implemented() const
Definition: HistogramSvc.h:54
StatusCode find(A1 a1, A3 *&a3)
Definition: HistogramSvc.h:83
StatusCode retrieve(A1 a1, A2 a2, A3 *&a3)
Definition: HistogramSvc.h:77
virtual StatusCode retrieveObject(Base *par, CSTR item, P1D *&obj)
Definition: HistogramSvc.h:660
virtual P2D * bookProf(STRPAIR loc, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
Definition: HistogramSvc.h:397
P1D * createProfile1D(CSTR name, CSTR title, const Edges &x, CSTR)
Definition: HistogramSvc.h:877
virtual StatusCode initialize()
Initialise the service.
virtual H1D * book(CSTR par, CSTR rel, CSTR title, DBINS(x))
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:213
virtual StatusCode retrieveObject(IRegistry *pReg, CSTR path, H3D *&obj)
Definition: HistogramSvc.h:591
virtual StatusCode retrieveObject(CSTR full, H2D *&obj)
Definition: HistogramSvc.h:600
virtual H1D * sliceY(CSTR name, const H2D &h, int indexX)
Definition: HistogramSvc.h:775
virtual StatusCode findObject(Base *par, int item, P2D *&obj)
Definition: HistogramSvc.h:746
H3D * createHistogram3D(CSTR name, CSTR tit, DBINS(x), DBINS(y), DBINS(z))
Definition: HistogramSvc.h:854
virtual P2D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:412
virtual P1D * bookProf(CSTR full, CSTR title, Edges e, double upper, double lower)
Definition: HistogramSvc.h:329
virtual StatusCode findObject(Base *par, CSTR item, H3D *&obj)
Definition: HistogramSvc.h:763
virtual P2D * bookProf(CSTR full, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:406
Data provider interface definition.
virtual StatusCode unregisterObject(Base *obj, int item)
Definition: HistogramSvc.h:578
virtual P1D * bookProf(DataObject *pPar, int hID, CSTR title, Edges e, double upper, double lower)
Definition: HistogramSvc.h:335
H2D * i_project(CSTR nameAndTitle, const H3D &h, CSTR dir)
Helper for 2D projections.
virtual P1D * bookProf(STRPAIR loc, CSTR title, Edges e)
Definition: HistogramSvc.h:324
H2D * createCopy(CSTR par, CSTR rel, const H2D &h)
Definition: HistogramSvc.h:847
virtual StatusCode retrieveObject(Base *par, CSTR item, H3D *&obj)
Definition: HistogramSvc.h:668
virtual StatusCode registerObject(Base *pPar, int item, Base *obj)
Definition: HistogramSvc.h:567
DBaseEntries m_input
Input streams.
Definition: HistogramSvc.h:139
virtual StatusCode retrieveObject(IRegistry *pReg, CSTR path, P1D *&obj)
Definition: HistogramSvc.h:585
virtual P2D * bookProf(STRPAIR loc, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:410
StatusCode connectInput(CSTR ident)
Connect input histogram file to the service.
virtual H3D * book(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y), DBINS(z))
Definition: HistogramSvc.h:511
Histo1DMap m_defs1D
Definition: HistogramSvc.h:968
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), double upper, double lower, CSTR)
Definition: HistogramSvc.h:908
H1D * multiply(CSTR nameAndTitle, const H1D &a, const H1D &b)
Definition: HistogramSvc.h:786
virtual StatusCode retrieveObject(DataObject *par, int item, P2D *&obj)
Definition: HistogramSvc.h:640
virtual StatusCode retrieveObject(DataObject *par, CSTR item, P1D *&obj)
Definition: HistogramSvc.h:627
virtual ~HistogramSvc()
Destructor.
virtual StatusCode findObject(Base *par, int item, H1D *&obj)
Definition: HistogramSvc.h:748
virtual StatusCode retrieveObject(CSTR parent, int item, P1D *&obj)
Definition: HistogramSvc.h:616
HistogramSvc * m_svc
Definition: HistogramSvc.h:69
virtual StatusCode finalize()
finalize the service
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(const AIDA::IProfile2D &hist)
Copy constructor.
virtual StatusCode retrieveObject(Base *par, CSTR item, P2D *&obj)
Definition: HistogramSvc.h:662
H2D * projectionXY(CSTR nameAndTitle, const H3D &h)
Definition: HistogramSvc.h:809
virtual H1D * book(CSTR par, int hID, CSTR title, DBINS(x))
Definition: HistogramSvc.h:215
virtual H1D * book(CSTR full, CSTR title, Edges e)
Definition: HistogramSvc.h:294
virtual StatusCode retrieveObject(IRegistry *pReg, CSTR path, H2D *&obj)
Definition: HistogramSvc.h:587
virtual H3D * book(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y), DBINS(z))
Definition: HistogramSvc.h:515
virtual P2D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:408
virtual StatusCode retrieveObject(DataObject *par, int item, P1D *&obj)
Definition: HistogramSvc.h:638
virtual H1D * book(DataObject *pPar, int hID, CSTR title, Edges e)
Definition: HistogramSvc.h:288
virtual StatusCode findObject(Base *par, int item, H2D *&obj)
Definition: HistogramSvc.h:750
virtual std::ostream & print(Base *h, std::ostream &s=std::cout) const
Print (ASCII) the 1D histogram into the output stream.
virtual P2D * bookProf(DataObject *pPar, int hID, CSTR title, Edges x, Edges y, double upper, double lower)
Definition: HistogramSvc.h:483
virtual StatusCode findObject(DataObject *par, CSTR item, H1D *&obj)
Definition: HistogramSvc.h:737
tuple h2
Definition: Test.py:42
virtual StatusCode findObject(CSTR full, P2D *&obj)
Definition: HistogramSvc.h:691
std::pair< std::string, std::string > i_splitPath(CSTR full)
Split full path into its components.
virtual P1D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), CSTR opt)
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:244
virtual P1D * bookProf(STRPAIR loc, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
Definition: HistogramSvc.h:263
H3D * add(CSTR nameAndTitle, const H3D &a, const H3D &b)
Definition: HistogramSvc.h:800
#define BINS(x)
Definition: HistogramSvc.h:40
virtual StatusCode findObject(Base *par, CSTR item, H1D *&obj)
Definition: HistogramSvc.h:759
struct GAUDI_API map
Parametrisation class for map-like implementation.
HistogramSvc(CSTR name, ISvcLocator *svc)
Statndard Constructor.
H1D * createCopy(STRPAIR loc, const H1D &h)
Definition: HistogramSvc.h:832
virtual StatusCode findObject(CSTR full, P1D *&obj)
Definition: HistogramSvc.h:689
P2D * createCopy(CSTR full, const P2D &h)
Definition: HistogramSvc.h:915
virtual H2D * book(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:445
virtual P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
Definition: HistogramSvc.h:267
virtual StatusCode findObject(DataObject *par, int item, H1D *&obj)
Definition: HistogramSvc.h:726
virtual H1D * book(CSTR par, int hID, CSTR title, Edges e)
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:286
AIDA::IProfile1D P1D
Definition: HistogramSvc.h:65
H2D * sliceXY(CSTR, const H3D &, int, int) NOT_IMPLEMENTED H2D *sliceXZ(CSTR
P1D * createProfile1D(CSTR name, CSTR tit, DBINS(x), CSTR opt)
Definition: HistogramSvc.h:873
virtual StatusCode retrieveObject(Base *par, int item, H3D *&obj)
Definition: HistogramSvc.h:657
virtual StatusCode findObject(CSTR full, H1D *&obj)
Definition: HistogramSvc.h:693
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *))
Definition: HistogramSvc.h:116
AIDA::IHistogram2D H2D
Definition: HistogramSvc.h:63
P2D * createCopy(DataObject *pPar, CSTR rel, const P2D &h)
Definition: HistogramSvc.h:921
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
virtual P2D * bookProf(CSTR par, CSTR rel, CSTR title, Edges x, Edges y, double upper, double lower)
Definition: HistogramSvc.h:479
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:897
virtual DataObject * createPath(CSTR newPath)
Create all directories in a given full path.
virtual P2D * bookProf(DataObject *pPar, int hID, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:470
virtual P1D * bookProf(CSTR full, CSTR title, DBINS(x), CSTR opt)
Definition: HistogramSvc.h:252
virtual StatusCode retrieveObject(DataObject *par, CSTR item, P2D *&obj)
Definition: HistogramSvc.h:629
AIDA::IBaseHistogram Base
Definition: HistogramSvc.h:67
H2D * divide(CSTR nameAndTitle, const H2D &a, const H2D &b)
Definition: HistogramSvc.h:797
H2D const H3D int NOT_IMPLEMENTED H2D * sliceYZ(CSTR, const H3D &, int, int) NOT_IMPLEMENTEDH1D *createHistogram1D(CSTR name
virtual P2D * bookProf(CSTR full, CSTR title, Edges x, Edges y)
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:464
virtual StatusCode retrieveObject(DataObject *par, CSTR item, H3D *&obj)
Definition: HistogramSvc.h:635
virtual StatusCode retrieveObject(CSTR full, P1D *&obj)
Definition: HistogramSvc.h:594
virtual StatusCode findObject(IRegistry *pReg, CSTR path, P2D *&obj)
Definition: HistogramSvc.h:680
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(const AIDA::IHistogram2D &hist)
Copy constructor.
void update1Ddefs(Property &)
handler to be invoked for updating property m_defs1D
virtual P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
Definition: HistogramSvc.h:403
H2D * createHistogram2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), CSTR)
Definition: HistogramSvc.h:839
virtual StatusCode findObject(DataObject *par, int item, P2D *&obj)
Definition: HistogramSvc.h:724
P1D * createCopy(CSTR par, CSTR rel, const P1D &h)
Definition: HistogramSvc.h:890
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
static DataObject * __cast(T *p)
Definition: HistogramSvc.h:172
virtual H2D * book(CSTR par, CSTR rel, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:437
virtual P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges e)
Definition: HistogramSvc.h:326
virtual StatusCode findObject(Base *par, CSTR item, P2D *&obj)
Definition: HistogramSvc.h:757
const std::string CSTR
P2D * createCopy(CSTR par, CSTR rel, const P2D &h)
Definition: HistogramSvc.h:917
H1D * createHistogram1D(CSTR nameAndTitle, DBINS(x))
Definition: HistogramSvc.h:826
virtual P1D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), CSTR opt)
Definition: HistogramSvc.h:248
string opt
print 'Summary: %32s [s] d d steps'%(summary.protocol,summary.type,summary.nevt,len(summary.data),)
Definition: ana.py:116
#define private
Definition: Class_dict.cpp:5
virtual StatusCode retrieveObject(DataObject *par, CSTR item, H1D *&obj)
Definition: HistogramSvc.h:631
virtual StatusCode retrieveObject(CSTR parent, CSTR rel, P2D *&obj)
Definition: HistogramSvc.h:607
virtual H1D * sliceX(CSTR name, const H2D &h, int indexY)
Definition: HistogramSvc.h:773
virtual StatusCode retrieveObject(DataObject *par, int item, H3D *&obj)
Definition: HistogramSvc.h:646
virtual P2D * bookProf(CSTR full, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:393
virtual StatusCode findObject(DataObject *par, CSTR item, P2D *&obj)
Definition: HistogramSvc.h:735
virtual StatusCode retrieveObject(CSTR full, H1D *&obj)
Definition: HistogramSvc.h:598
virtual P2D * bookProf(CSTR par, int hID, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:468
virtual P1D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
Definition: HistogramSvc.h:261
H2D * createCopy(STRPAIR loc, const H2D &h)
Definition: HistogramSvc.h:849
virtual H3D * book(DataObject *pPar, int hID, CSTR title, Edges x, Edges y, Edges z)
Definition: HistogramSvc.h:546
virtual StatusCode registerObject(CSTR parent, CSTR rel, Base *obj)
Definition: HistogramSvc.h:559
P1D * createCopy(DataObject *pPar, CSTR rel, const P1D &h)
Definition: HistogramSvc.h:894
virtual StatusCode retrieveObject(Base *par, int item, P2D *&obj)
Definition: HistogramSvc.h:651
virtual const std::string & name() const
Retrieve name of the service.
Definition: Service.cpp:331
P2D * createProfile2D(CSTR nameAndTitle, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:903
virtual H3D * book(CSTR full, CSTR title, DBINS(x), DBINS(y), DBINS(z))
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:509
virtual StatusCode retrieveObject(CSTR parent, CSTR rel, H1D *&obj)
Definition: HistogramSvc.h:609
virtual DataObject * createDirectory(CSTR parentDir, CSTR subDir)
Create a sub-directory in a directory.
virtual H1D * book(DataObject *pPar, CSTR rel, CSTR title, Edges e)
Definition: HistogramSvc.h:296
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual StatusCode registerObject(DataObject *pPar, int item, Base *obj)
Definition: HistogramSvc.h:565
H2D * createHistogram2D(CSTR name, CSTR tit, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:837
H1D * add(CSTR nameAndTitle, const H1D &a, const H1D &b)
Definition: HistogramSvc.h:782
std::vector< std::string > DBaseEntries
Definition: HistogramSvc.h:61
virtual StatusCode findObject(CSTR par, CSTR rel, P1D *&obj)
Definition: HistogramSvc.h:700
virtual StatusCode retrieveObject(CSTR parent, CSTR rel, H2D *&obj)
Definition: HistogramSvc.h:611
virtual StatusCode retrieveObject(CSTR parent, int item, H1D *&obj)
Definition: HistogramSvc.h:620
std::vector< double > Edges
Definition: HistogramSvc.h:60
P1D * createProfile1D(CSTR name, CSTR title, const Edges &x, double upper, double lower, CSTR)
Definition: HistogramSvc.h:879
H3D * createCopy(STRPAIR loc, const H3D &h)
Definition: HistogramSvc.h:866
virtual StatusCode retrieveObject(DataObject *par, int item, H1D *&obj)
Definition: HistogramSvc.h:642
virtual H2D * book(CSTR full, CSTR title, Edges x, Edges y)
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:435
virtual StatusCode findObject(DataObject *par, int item, H2D *&obj)
Definition: HistogramSvc.h:728
virtual H3D * book(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y), DBINS(z))
Definition: HistogramSvc.h:513
virtual StatusCode findObject(IRegistry *pReg, CSTR path, P1D *&obj)
Definition: HistogramSvc.h:678
H3D * createCopy(DataObject *pPar, CSTR rel, const H3D &h)
Definition: HistogramSvc.h:868
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:43
virtual StatusCode findObject(IRegistry *pReg, CSTR path, H1D *&obj)
Definition: HistogramSvc.h:682
virtual H3D * book(CSTR par, CSTR rel, CSTR title, Edges x, Edges y, Edges z)
Definition: HistogramSvc.h:542
virtual H2D * book(CSTR par, CSTR rel, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:363
virtual StatusCode retrieveObject(DataObject *par, CSTR item, H2D *&obj)
Definition: HistogramSvc.h:633
std::string _STR(int i)
virtual P1D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), CSTR opt)
Definition: HistogramSvc.h:246
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:106
virtual P2D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y), double upper, double lower)
Definition: HistogramSvc.h:399
virtual H2D * book(DataObject *pPar, int hID, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:443
H2D * projectionXZ(CSTR nameAndTitle, const H3D &h)
Definition: HistogramSvc.h:811
virtual H2D * book(STRPAIR loc, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:441
H1D * createCopy(CSTR full, const H1D &h)
Definition: HistogramSvc.h:828
std::pair< DataObject *, AIDA::IHistogram3D * > createH3D(const AIDA::IHistogram3D &hist)
Copy constructor.
virtual H3D * book(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y), DBINS(z))
Definition: HistogramSvc.h:519
virtual H1D * book(CSTR full, CSTR title, DBINS(x))
Definition: HistogramSvc.h:222
virtual P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, Edges e, double upper, double lower)
Definition: HistogramSvc.h:339
H1D * createHistogram1D(CSTR name, CSTR title, const Edges &x, CSTR)
Definition: HistogramSvc.h:824
virtual StatusCode retrieveObject(Base *par, int item, H2D *&obj)
Definition: HistogramSvc.h:655
virtual H2D * book(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:369
Gaudi::Histogram2D H2D
Definition: H2D.cpp:250
virtual StatusCode unregisterObject(const std::string &fullPath)
Unregister object from the data store.
Definition: DataSvc.cpp:541
virtual P2D * bookProf(DataObject *pPar, int hID, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:414
virtual H3D * book(CSTR par, int hID, CSTR title, Edges x, Edges y, Edges z)
Definition: HistogramSvc.h:544
virtual P1D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), CSTR opt)
Definition: HistogramSvc.h:254
P2D * createProfile2D(CSTR nameAndTitle, DBINS(x), DBINS(y), double upper, double lower)
Definition: HistogramSvc.h:912
virtual P1D * bookProf(CSTR par, CSTR rel, CSTR title, Edges e, double upper, double lower)
Definition: HistogramSvc.h:331
std
AIDA -> ROTO converter.
Definition: GaudiAlgs.py:73
static R * act(R *res, const S &b, Bool_t(T1::*pmf)(const T2 *))
Definition: HistogramSvc.h:126
H2D const H3D int NOT_IMPLEMENTED H2D CSTR DBINS(x))
Definition: HistogramSvc.h:820
string s
Definition: gaudirun.py:210
virtual P2D * bookProf(CSTR par, CSTR rel, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:466
tuple item
print s1,s2
Definition: ana.py:146
virtual P2D * bookProf(STRPAIR loc, CSTR title, Edges x, Edges y)
Definition: HistogramSvc.h:472
#define NOT_IMPLEMENTED
Definition: HistogramSvc.h:41
Gaudi::Histogram3D H3D
Definition: H3D.cpp:281
virtual H3D * book(CSTR full, CSTR title, Edges x, Edges y, Edges z)
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:540
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:96
virtual StatusCode findObject(IRegistry *pReg, CSTR path, H2D *&obj)
Definition: HistogramSvc.h:684
virtual StatusCode findObject(CSTR par, int item, H3D *&obj)
Definition: HistogramSvc.h:719
H3D * createCopy(CSTR par, CSTR rel, const H3D &h)
Definition: HistogramSvc.h:864
virtual H3D * book(DataObject *pPar, CSTR rel, CSTR title, Edges x, Edges y, Edges z)
Definition: HistogramSvc.h:550
std::pair< DataObject *, AIDA::IProfile1D * > createProf1D(const AIDA::IProfile1D &hist)
Copy constructor.
H1D * divide(CSTR nameAndTitle, const H1D &a, const H1D &b)
Definition: HistogramSvc.h:788
Helper(HistogramSvc *p)
Definition: HistogramSvc.h:70
virtual StatusCode retrieveObject(CSTR full, H3D *&obj)
Definition: HistogramSvc.h:602
virtual StatusCode findObject(Base *par, CSTR item, P1D *&obj)
Definition: HistogramSvc.h:755
H3D * subtract(CSTR nameAndTitle, const H3D &a, const H3D &b)
Definition: HistogramSvc.h:802
virtual StatusCode retrieveObject(Base *par, CSTR item, H1D *&obj)
Definition: HistogramSvc.h:664
StatusCode retrieve(A1 a1, A3 *&a3)
Definition: HistogramSvc.h:71
virtual P2D * bookProf(DataObject *pPar, CSTR rel, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:416
virtual StatusCode retrieveObject(CSTR parent, CSTR rel, H3D *&obj)
Definition: HistogramSvc.h:613
This is a number of static methods for bootstrapping the Gaudi framework.
Definition: Bootstrap.h:15
virtual StatusCode unregisterObject(Base *obj)
Definition: HistogramSvc.h:574
AIDA::IProfile2D P2D
Definition: HistogramSvc.h:66
virtual StatusCode retrieveObject(CSTR parent, int item, H2D *&obj)
Definition: HistogramSvc.h:622
AIDA::IHistogram1D H1D
Definition: HistogramSvc.h:62
virtual H2D * book(CSTR full, CSTR title, DBINS(x), DBINS(y))
Book histogram and register it with the histogram data store.
Definition: HistogramSvc.h:361
virtual H3D * book(STRPAIR loc, CSTR title, DBINS(x), DBINS(y), DBINS(z))
Definition: HistogramSvc.h:517
Gaudi::Histogram1D H1D
Definition: H1D.cpp:293
virtual P1D * bookProf(CSTR par, CSTR rel, CSTR title, Edges e)
Definition: HistogramSvc.h:318
virtual StatusCode findObject(DataObject *par, int item, H3D *&obj)
Definition: HistogramSvc.h:730
AIDA::IHistogram3D H3D
Definition: HistogramSvc.h:64
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:31
H3D * createHistogram3D(CSTR name, CSTR title, const Edges &x, const Edges &y, const Edges &z, CSTR)
Definition: HistogramSvc.h:858
virtual StatusCode retrieveObject(CSTR full, P2D *&obj)
Definition: HistogramSvc.h:596
list i
Definition: ana.py:128
virtual H3D * book(STRPAIR loc, CSTR title, Edges x, Edges y, Edges z)
Definition: HistogramSvc.h:548
virtual StatusCode retrieveObject(Base *par, CSTR item, H2D *&obj)
Definition: HistogramSvc.h:666
virtual StatusCode findObject(IRegistry *pReg, CSTR path, H3D *&obj)
Definition: HistogramSvc.h:686
virtual StatusCode findObject(CSTR full, H2D *&obj)
Definition: HistogramSvc.h:695
H3D * createHistogram3D(CSTR name, CSTR tit, DBINS(x), DBINS(y), DBINS(z), CSTR)
Definition: HistogramSvc.h:856
virtual H2D * book(CSTR par, int hID, CSTR title, DBINS(x), DBINS(y))
Definition: HistogramSvc.h:365
virtual StatusCode findObject(Base *par, int item, P1D *&obj)
Definition: HistogramSvc.h:744
P2D * createProfile2D(CSTR name, CSTR title, const Edges &x, const Edges &y, CSTR)
Definition: HistogramSvc.h:901
virtual StatusCode findObject(CSTR par, int item, P2D *&obj)
Definition: HistogramSvc.h:713
H3D * createHistogram3D(CSTR nameAndTitle, DBINS(x), DBINS(y), DBINS(z))
Definition: HistogramSvc.h:860
virtual StatusCode retrieveObject(Base *par, int item, P1D *&obj)
Definition: HistogramSvc.h:649
virtual P1D * bookProf(STRPAIR loc, CSTR title, DBINS(x), CSTR opt)
Definition: HistogramSvc.h:250
H2D * createCopy(CSTR full, const H2D &h)
Definition: HistogramSvc.h:845
virtual StatusCode findObject(CSTR par, CSTR rel, H1D *&obj)
Definition: HistogramSvc.h:704
virtual StatusCode registerObject(CSTR parent, int item, Base *obj)
Definition: HistogramSvc.h:561
P2D * createProfile2D(CSTR name, CSTR tit, DBINS(x), DBINS(y), CSTR)
Definition: HistogramSvc.h:899
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:243
virtual StatusCode findObject(CSTR par, CSTR rel, H3D *&obj)
Definition: HistogramSvc.h:708
P1D * createProfile1D(CSTR name, CSTR tit, DBINS(x), double upper, double lower, CSTR opt)
Definition: HistogramSvc.h:875
H3D * multiply(CSTR nameAndTitle, const H3D &a, const H3D &b)
Definition: HistogramSvc.h:804
virtual StatusCode unregisterObject(Base *obj, CSTR objectPath)
Definition: HistogramSvc.h:576
virtual P1D * bookProf(CSTR par, int hID, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
Definition: HistogramSvc.h:259
P1D * createProfile1D(CSTR nametit, DBINS(x))
Definition: HistogramSvc.h:882
virtual StatusCode reinitialize()
Initialise the service.
virtual StatusCode findObject(DataObject *par, CSTR item, H2D *&obj)
Definition: HistogramSvc.h:739
std::map< std::string, Gaudi::Histo1DDef > Histo1DMap
Definition: HistogramSvc.h:963
virtual StatusCode retrieveObject(IRegistry *pReg, CSTR path, P2D *&obj)
Definition: HistogramSvc.h:589
P2D * createCopy(STRPAIR loc, const P2D &h)
Definition: HistogramSvc.h:919
virtual StatusCode findObject(CSTR par, CSTR rel, P2D *&obj)
Definition: HistogramSvc.h:702
H1D * createHistogram1D(CSTR name, CSTR tit, DBINS(x), CSTR)
Definition: HistogramSvc.h:822
H3D * createCopy(CSTR full, const H3D &h)
Definition: HistogramSvc.h:862
H2D * projectionYZ(CSTR nameAndTitle, const H3D &h)
Definition: HistogramSvc.h:813
H2D * createHistogram2D(CSTR name, CSTR title, const Edges &x, const Edges &y, CSTR)
Definition: HistogramSvc.h:841
virtual H1D * projectionX(CSTR name, const H2D &h)
Definition: HistogramSvc.h:769
virtual P1D * bookProf(CSTR par, CSTR rel, CSTR title, DBINS(x), double upper, double lower, CSTR opt)
Definition: HistogramSvc.h:257
H3D * divide(CSTR nameAndTitle, const H3D &a, const H3D &b)
Definition: HistogramSvc.h:806
virtual StatusCode findObject(CSTR par, CSTR rel, H2D *&obj)
Definition: HistogramSvc.h:706
virtual StatusCode findObject(CSTR par, int item, H2D *&obj)
Definition: HistogramSvc.h:717
StatusCode find(A1 a1, A2 a2, A3 *&a3)
Definition: HistogramSvc.h:89
HistogramSvc class definition.
Definition: HistogramSvc.h:48