ATLAS Offline Software
Loading...
Searching...
No Matches
GenAnalysis.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef GENERATORMODULES_GENANALYSIS_H
6#define GENERATORMODULES_GENANALYSIS_H
7
9#include "GaudiKernel/ITHistSvc.h"
10#include "TH1D.h"
11#include "TH2D.h"
12#include "TProfile.h"
13
14
27class GenAnalysis : public GenBase {
28public:
29
30 GenAnalysis(const std::string& name, ISvcLocator* pSvcLocator);
31 virtual ~GenAnalysis() { }
32
34 StatusCode initialize();
36 StatusCode execute();
37
39
40 virtual StatusCode init() { return StatusCode::SUCCESS; }
41 virtual StatusCode analyze() = 0;
42 virtual StatusCode finalize() { return StatusCode::SUCCESS; }
44
45
46protected:
47
49
50
52
53 TH1D* bookHisto1D(const std::string& name, const std::string& title, const std::vector<double>& binedges,
54 const std::string& xtitle="", const std::string& ytitle="");
55 TH1D* bookHisto1D(const std::string& name, const std::string& title, size_t numbins, double low, double high,
56 const std::string& xtitle="", const std::string& ytitle="");
57
58 TProfile* bookProfile1D(const std::string& name, const std::string& title, const std::vector<double>& binedges,
59 const std::string& xtitle="", const std::string& ytitle="");
60 TProfile* bookProfile1D(const std::string& name, const std::string& title, size_t numbins, double low, double high,
61 const std::string& xtitle="", const std::string& ytitle="");
62
63 TH2D* bookHisto2D(const std::string& name, const std::string& title,
64 const std::vector<double>& binedgesx, const std::vector<double>& binedgesy,
65 const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle="");
66 TH2D* bookHisto2D(const std::string& name, const std::string& title,
67 size_t numbinsx, double xlow, double xhigh,
68 size_t numbinsy, double ylow, double yhigh,
69 const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle="");
70
72 std::string fullhistopath(const std::string& localpath) {
73 return "/" + m_histkey + "/" + name() + "/" + localpath;
74 }
75
77 TH1* histo(const std::string& key);
78
80 TProfile* profile(const std::string& key);
81
84 return m_histSvc;
85 }
86
88
89
90private:
91
93 std::string m_histkey;
95
96};
97
98
99#endif
const ServiceHandle< ITHistSvc > histSvc() const
Directly access the histogram service.
Definition GenAnalysis.h:83
TProfile * profile(const std::string &key)
Retrieve a profile histogram.
TProfile * bookProfile1D(const std::string &name, const std::string &title, const std::vector< double > &binedges, const std::string &xtitle="", const std::string &ytitle="")
virtual StatusCode finalize()
Definition GenAnalysis.h:42
TH1 * histo(const std::string &key)
Retrieve a histogram (as TH1* base class pointer)
TH1D * bookHisto1D(const std::string &name, const std::string &title, const std::vector< double > &binedges, const std::string &xtitle="", const std::string &ytitle="")
virtual StatusCode analyze()=0
TH2D * bookHisto2D(const std::string &name, const std::string &title, const std::vector< double > &binedgesx, const std::vector< double > &binedgesy, const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
StatusCode execute()
Per-event analysis routine: calls user-supplied analyze()
virtual StatusCode init()
Definition GenAnalysis.h:40
virtual ~GenAnalysis()
Definition GenAnalysis.h:31
ServiceHandle< ITHistSvc > m_histSvc
Definition GenAnalysis.h:94
std::string m_histkey
Container name for the MC event collection to be analysed.
Definition GenAnalysis.h:93
std::string fullhistopath(const std::string &localpath)
Get a histogram's full path, given the name local to the analysis.
Definition GenAnalysis.h:72
StatusCode initialize()
Setup analysis tools and call user-supplied init()
GenAnalysis(const std::string &name, ISvcLocator *pSvcLocator)
GenBase(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition GenBase.cxx:11