| The Gaudi Framework v32r1 (f65d50dc)

HistoDecorator.h
Go to the documentation of this file.
1 // ============================================================================
2 #ifndef GAUDIPYTHON_HISTODECORATOR_H
3 #define GAUDIPYTHON_HISTODECORATOR_H 1
4 // ============================================================================
5 // Include files
6 // ============================================================================
7 // GaudiAlg
8 // ============================================================================
9 #include "GaudiAlg/GaudiHistoAlg.h"
10 // ============================================================================
11 // GaudiPython
12 // ============================================================================
13 #include "GaudiPython/GaudiPython.h"
14 #include "GaudiPython/Vector.h"
15 // ============================================================================
16 struct GaudiHistoTool;
17 // ============================================================================
18 namespace GaudiPython {
25 class GAUDI_API HistoDecorator {
26 public:
27 // ========================================================================
28 typedef std::vector<GaudiAlg::ID> IDs;
29 typedef std::vector<AIDA::IHistogram1D*> Histos1D;
30 typedef std::vector<AIDA::IHistogram2D*> Histos2D;
31 typedef std::vector<AIDA::IHistogram3D*> Histos3D;
32 typedef std::vector<AIDA::IProfile1D*> Profiles1D;
33 typedef std::vector<AIDA::IProfile2D*> Profiles2D;
34 // ========================================================================
35 public:
36 // ========================================================================
46 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const double data, const std::string& title,
47 const double low, const double high, const unsigned long bins = 100 );
48 // ========================================================================
59 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const double data, const GaudiAlg::HistoID& ID,
60 const std::string& title, const double low, const double high,
61 const unsigned long bins = 100 );
62 // ========================================================================
73 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const double data, const long ID,
74 const std::string& title, const double low, const double high,
75 const unsigned long bins = 100 );
76 // ========================================================================
87 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const double data, const std::string& ID,
88 const std::string& title, const double low, const double high,
89 const unsigned long bins = 100 );
90 // ========================================================================
100 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const GaudiPython::Vector& data,
101 const std::string& title, const double low, const double high,
102 const unsigned long bins = 100 );
103 // ========================================================================
114 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const GaudiPython::Vector& data,
115 const GaudiAlg::HistoID& ID, const std::string& title, const double low,
116 const double high, const unsigned long bins = 100 );
117 // ========================================================================
128 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const GaudiPython::Vector& data, const long ID,
129 const std::string& title, const double low, const double high,
130 const unsigned long bins = 100 );
131 // ========================================================================
142 static AIDA::IHistogram1D* plot1D( const GaudiHistoAlg& algo, const GaudiPython::Vector& data,
143 const std::string& ID, const std::string& title, const double low,
144 const double high, const unsigned long bins = 100 );
145 // ========================================================================
159 static AIDA::IHistogram2D* plot2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
160 const std::string& title, const double lowX, const double highX,
161 const double lowY, const double highY, const unsigned long binsX = 50,
162 const unsigned long binsY = 50, const double weight = 1.0 );
163 // ========================================================================
178 static AIDA::IHistogram2D* plot2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
179 const GaudiAlg::HistoID& ID, const std::string& title, const double lowX,
180 const double highX, const double lowY, const double highY,
181 const unsigned long binsX = 50, const unsigned long binsY = 50,
182 const double weight = 1.0 );
183 // ========================================================================
198 static AIDA::IHistogram2D* plot2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
199 const long ID, const std::string& title, const double lowX, const double highX,
200 const double lowY, const double highY, const unsigned long binsX = 50,
201 const unsigned long binsY = 50, const double weight = 1.0 );
202 // ========================================================================
217 static AIDA::IHistogram2D* plot2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
218 const std::string& ID, const std::string& title, const double lowX,
219 const double highX, const double lowY, const double highY,
220 const unsigned long binsX = 50, const unsigned long binsY = 50,
221 const double weight = 1.0 );
222 // ========================================================================
240 static AIDA::IHistogram3D* plot3D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
241 const double valueZ, const std::string& title, const double lowX,
242 const double highX, const double lowY, const double highY, const double lowZ,
243 const double highZ, const unsigned long binsX = 10,
244 const unsigned long binsY = 10, const unsigned long binsZ = 10,
245 const double weight = 1.0 );
246 // ========================================================================
265 static AIDA::IHistogram3D* plot3D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
266 const double valueZ, const GaudiAlg::HistoID& ID, const std::string& title,
267 const double lowX, const double highX, const double lowY, const double highY,
268 const double lowZ, const double highZ, const unsigned long binsX = 10,
269 const unsigned long binsY = 10, const unsigned long binsZ = 10,
270 const double weight = 1.0 );
271 // ========================================================================
290 static AIDA::IHistogram3D* plot3D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
291 const double valueZ, const long ID, const std::string& title, const double lowX,
292 const double highX, const double lowY, const double highY, const double lowZ,
293 const double highZ, const unsigned long binsX = 10,
294 const unsigned long binsY = 10, const unsigned long binsZ = 10,
295 const double weight = 1.0 );
296 // ========================================================================
315 static AIDA::IHistogram3D* plot3D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
316 const double valueZ, const std::string& ID, const std::string& title,
317 const double lowX, const double highX, const double lowY, const double highY,
318 const double lowZ, const double highZ, const unsigned long binsX = 10,
319 const unsigned long binsY = 10, const unsigned long binsZ = 10,
320 const double weight = 1.0 );
321 // ========================================================================
322 // 1D-profiles: by title
323 // ========================================================================
324 static AIDA::IProfile1D* profile1D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
325 const std::string& title, const double lowX, const double highX,
326 const unsigned long binsX = 100, const std::string& opt = "",
327 const double lowY = -std::numeric_limits<double>::max(),
328 const double highY = std::numeric_limits<double>::max(),
329 const double weight = 1.0 );
330 // ========================================================================
331 // 1D-profiles: by generic ID
332 // ========================================================================
333 static AIDA::IProfile1D*
334 profile1D( const GaudiHistoAlg& algo, const double valueX, const double valueY, const GaudiAlg::HistoID& ID,
335 const std::string& title, const double lowX, const double highX, const unsigned long binsX = 100,
336 const std::string& opt = "", const double lowY = -std::numeric_limits<double>::max(),
337 const double highY = std::numeric_limits<double>::max(), const double weight = 1.0 );
338 // ========================================================================
339 // 1D-profiles: by numeric ID
340 // ========================================================================
341 static AIDA::IProfile1D* profile1D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
342 const long ID, const std::string& title, const double lowX, const double highX,
343 const unsigned long binsX = 100, const std::string& opt = "",
344 const double lowY = -std::numeric_limits<double>::max(),
345 const double highY = std::numeric_limits<double>::max(),
346 const double weight = 1.0 );
347 // ========================================================================
348 // 1D-profiles: by string ID
349 // ========================================================================
350 static AIDA::IProfile1D*
351 profile1D( const GaudiHistoAlg& algo, const double valueX, const double valueY, const std::string& ID,
352 const std::string& title, const double lowX, const double highX, const unsigned long binsX = 100,
353 const std::string& opt = "", const double lowY = -std::numeric_limits<double>::max(),
354 const double highY = std::numeric_limits<double>::max(), const double weight = 1.0 );
355 // ========================================================================
356 // 2D-profiles: by title
357 // ========================================================================
358 static AIDA::IProfile2D* profile2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
359 const double valueZ, const std::string& title, const double lowX,
360 const double highX, const double lowY, const double highY,
361 const unsigned long binsX = 50, const unsigned long binsY = 50,
362 const double weight = 1.0 );
363 // ========================================================================
364 // 2D-profiles: by generic ID
365 // ========================================================================
366 static AIDA::IProfile2D* profile2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
367 const double valueZ, const GaudiAlg::HistoID& ID, const std::string& title,
368 const double lowX, const double highX, const double lowY, const double highY,
369 const unsigned long binsX = 50, const unsigned long binsY = 50,
370 const double weight = 1.0 );
371 // ========================================================================
372 // 2D-profiles: by numeric ID
373 // ========================================================================
374 static AIDA::IProfile2D* profile2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
375 const double valueZ, const long ID, const std::string& title, const double lowX,
376 const double highX, const double lowY, const double highY,
377 const unsigned long binsX = 50, const unsigned long binsY = 50,
378 const double weight = 1.0 );
379 // ========================================================================
380 // 2D-profiles: by string ID
381 // ========================================================================
382 static AIDA::IProfile2D* profile2D( const GaudiHistoAlg& algo, const double valueX, const double valueY,
383 const double valueZ, const std::string& ID, const std::string& title,
384 const double lowX, const double highX, const double lowY, const double highY,
385 const unsigned long binsX = 50, const unsigned long binsY = 50,
386 const double weight = 1.0 );
387 // ========================================================================
388 public:
389 // ========================================================================
390 static size_t _histos_a_( const GaudiHistoAlg* cmp, IDs& ids, Histos1D& histos );
391 static size_t _histos_t_( const GaudiHistoTool* cmp, IDs& ids, Histos1D& histos );
392 static size_t _histos_a_( const IAlgorithm* cmp, IDs& ids, Histos1D& histos );
393 static size_t _histos_t_( const IAlgTool* cmp, IDs& ids, Histos1D& histos );
394 // ========================================================================
395 static size_t _histos_a_( const GaudiHistoAlg* cmp, IDs& ids, Histos2D& histos );
396 static size_t _histos_t_( const GaudiHistoTool* cmp, IDs& ids, Histos2D& histos );
397 static size_t _histos_a_( const IAlgorithm* cmp, IDs& ids, Histos2D& histos );
398 static size_t _histos_t_( const IAlgTool* cmp, IDs& ids, Histos2D& histos );
399 // ========================================================================
400 static size_t _histos_a_( const GaudiHistoAlg* cmp, IDs& ids, Histos3D& histos );
401 static size_t _histos_t_( const GaudiHistoTool* cmp, IDs& ids, Histos3D& histos );
402 static size_t _histos_a_( const IAlgorithm* cmp, IDs& ids, Histos3D& histos );
403 static size_t _histos_t_( const IAlgTool* cmp, IDs& ids, Histos3D& histos );
404 // ========================================================================
405 static size_t _histos_a_( const GaudiHistoAlg* cmp, IDs& ids, Profiles1D& histos );
406 static size_t _histos_t_( const GaudiHistoTool* cmp, IDs& ids, Profiles1D& histos );
407 static size_t _histos_a_( const IAlgorithm* cmp, IDs& ids, Profiles1D& histos );
408 static size_t _histos_t_( const IAlgTool* cmp, IDs& ids, Profiles1D& histos );
409 // ========================================================================
410 static size_t _histos_a_( const GaudiHistoAlg* cmp, IDs& ids, Profiles2D& histos );
411 static size_t _histos_t_( const GaudiHistoTool* cmp, IDs& ids, Profiles2D& histos );
412 static size_t _histos_a_( const IAlgorithm* cmp, IDs& ids, Profiles2D& histos );
413 static size_t _histos_t_( const IAlgTool* cmp, IDs& ids, Profiles2D& histos );
414 // ========================================================================
415 };
416 // ==========================================================================
417 } // end of namespace GaudiPython
418 // ============================================================================
419 // The END
420 // ============================================================================
421 #endif // GAUDIPYTHON_HISTODECORATOR_H
Vector.h
GaudiHistoAlg
Simple class to extend the functionality of class GaudiAlgorithm.
Definition: GaudiHistoAlg.h:37
GaudiPython::HistoDecorator::Histos2D
std::vector< AIDA::IHistogram2D * > Histos2D
Definition: HistoDecorator.h:30
GaudiHistoTool
Simple class to extend the functionality of class GaudiTool.
Definition: GaudiHistoTool.h:39
GaudiPython::HistoDecorator::IDs
std::vector< GaudiAlg::ID > IDs
Definition: HistoDecorator.h:28
std::string
STL class.
compareRootHistos.histos
list histos
Definition: compareRootHistos.py:13
IAlgorithm
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
GaudiPython.h
GaudiPython
GaudiPython.h GaudiPython/GaudiPython.h.
Definition: AlgDecorators.h:37
std::vector
STL class.
GaudiPython::HistoDecorator::Profiles2D
std::vector< AIDA::IProfile2D * > Profiles2D
Definition: HistoDecorator.h:33
IAlgTool
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
GaudiHistoAlg.h
GaudiPython::HistoDecorator::Histos1D
std::vector< AIDA::IHistogram1D * > Histos1D
Definition: HistoDecorator.h:29
GaudiPython::HistoDecorator::Histos3D
std::vector< AIDA::IHistogram3D * > Histos3D
Definition: HistoDecorator.h:31
GaudiPython::HistoDecorator
Simple decorator class to allow to reuse the functionality of GaudiHistos<TYPE> class in pythin.
Definition: HistoDecorator.h:25
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:71
GaudiPython::HistoDecorator::Profiles1D
std::vector< AIDA::IProfile1D * > Profiles1D
Definition: HistoDecorator.h:32
GaudiAlg::ID
ID class for Histogram and Ntuples.
Definition: GaudiHistoID.h:43
std::numeric_limits