7#ifndef G4ATLASTESTS_SIMTESTHISTO_H
8#define G4ATLASTESTS_SIMTESTHISTO_H
15#include "GaudiKernel/ITHistSvc.h"
16#include "GaudiKernel/ServiceHandle.h"
39#define _TPROFILE(var,name,nbin,xmin,xmax) \
41 const std::string histName{name}; \
42 const std::string histPath{m_path + histName}; \
43 if (!m_histSvc->exists(histPath)) { \
44 var = new TProfile(histName.c_str(), histName.c_str(),nbin,xmin,xmax); \
45 CHECK(m_histSvc->regHist(histPath,var)); \
47 CHECK(m_histSvc->getHist(histPath, var)); \
52#define _TH1D(var,name,nbin,xmin,xmax) \
54 const std::string histName{name}; \
55 const std::string histPath{m_path + histName}; \
56 if (!m_histSvc->exists(histPath)) { \
57 var = new TH1D(histName.c_str(), histName.c_str(),nbin, xmin, xmax); \
58 var->StatOverflows(); \
59 CHECK(m_histSvc->regHist(histPath, var)); \
61 CHECK(m_histSvc->getHist(histPath, var)); \
66#define _TH1D_NOCHECK(var,name,nbin,xmin,xmax) \
67 if (!m_histSvc->exists(m_path+name)) { \
68 var = new TH1D(name,name,nbin,xmin,xmax); \
69 var->StatOverflows(); \
70 if(m_histSvc->regHist(m_path+name,var).isFailure()) \
71 std::cout<<"Cannot register histogram "<<name<<std::endl; \
73 if(m_histSvc->getHist(m_path+name,var).isFailure()) \
74 std::cout<<"Cannot get histogram "<<name<<std::endl; \
77#define _TH1D_WEIGHTED(var,name,nbin,xmin,xmax) \
78 _TH1D(var,name,nbin,xmin,xmax); \
81#define _TH2D_NOCHECK(var,name,nbinx,xmin,xmax,nbiny,ymin,ymax) \
82 if (!m_histSvc->exists(m_path+name)) { \
83 var = new TH2D(name,name,nbinx,xmin,xmax,nbiny,ymin,ymax); \
84 if(m_histSvc->regHist(m_path+name,var).isFailure()) \
85 std::cout<<"Cannot register histogram "<<name<<std::endl;\
87 if(m_histSvc->getHist(m_path+name,var).isFailure()) \
88 std::cout<<"Cannot get histogram "<<name<<std::endl; \
91#define _TH2D(var,name,nbinx,xmin,xmax,nbiny,ymin,ymax) \
93 const std::string histName{name}; \
94 const std::string histPath{m_path + histName}; \
95 if (!m_histSvc->exists(histPath)) { \
96 var = new TH2D(histName.c_str(),histName.c_str(),nbinx,xmin,xmax,nbiny,ymin,ymax); \
97 CHECK(m_histSvc->regHist(histPath,var)); \
99 CHECK(m_histSvc->getHist(histPath,var)); \
103#define _TH2D_WEIGHTED(var,name,nbinx,xmin,xmax,nbiny,ymin,ymax) \
104 _TH2D(var,name,nbinx,xmin,xmax,nbiny,ymin,ymax); \
107#define _SET_TITLE(var,title,xaxis,yaxis) \
108 var->SetXTitle(xaxis); \
109 var->SetYTitle(yaxis); \
110 var->SetTitle((std::string(var->GetName())+" : "+title).c_str());
Helpers for checking error return status codes and reporting errors.
ServiceHandle< ITHistSvc > m_histSvc