ATLAS Offline Software
PlotBase.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 // -------------------------------------------------------------
6 // Base class for Plot Collections
7 //
8 // author: Felix Socher <felix.socher@cern.ch>
9 // -------------------------------------------------------------
10 #ifndef TRKVALHISTUTILS_PLOTBASE_H
11 #define TRKVALHISTUTILS_PLOTBASE_H
12 
13 #include <string>
14 #include <utility> //for std::pair
15 #include <vector>
16 //should be possible to fwd-declare TH1F, TH2F, TH3F, TProfile, TProfile2D TTree .. why isn't this done?
17 #include "TH1F.h"
18 #include "TH2F.h"
19 #include "TH3F.h"
20 #include "TProfile.h"
21 #include "TProfile2D.h"
22 #include "TTree.h"
23 #include "TEfficiency.h"
24 
25 
26 //fwd-declares
27 class TEfficiency;
28 
29 typedef std::pair<TH1*, std::string> HistData;
30 typedef std::pair<TTree*, std::string> TreeData;
31 typedef std::pair<TEfficiency*, std::string> EfficiencyData;
32 
33 class PlotBase {
34 public:
35  PlotBase(PlotBase *parent, const std::string & sDir);
36  virtual ~PlotBase(){}
37  void initialize();
38  void finalize();
39  void setDetailLevel(int iDetailLevel);
40  void RegisterSubPlot(PlotBase* pPlotBase){m_vSubNodes.push_back(pPlotBase);}
41 
43  std::vector<HistData> retrieveBookedHistograms();
45  std::vector<TreeData> retrieveBookedTrees();
47  std::vector<EfficiencyData> retrieveBookedEfficiencies();
51 
53  TH1F* Book1D(const std::string & name, const std::string & labels, int nBins, float start, float end, bool prependDir = true);
55  TH1F* Book1D(const std::string & name, TH1* refHist, const std::string & labels, bool prependDir = true);
56 
58  TH2F* Book2D(const std::string & name, const std::string & labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir = true);
60  TH2F* Book2D(const std::string & name, TH2* refHist, const std::string & labels, bool prependDir = true);
62  TH2F* Book2D(const std::string & name, const std::string & labels, int nBinsX, Double_t* binsX, int nBinsY, Double_t startY, Double_t endY, bool prependDir = true);
63 
65  TH3F* Book3D(const std::string & name, const std::string & labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, int nBinsZ, float startZ, float endZ, bool prependDir = true);
67  TH3F* Book3D(const std::string & name, TH3* refHist, const std::string & labels, bool prependDir = true);
68 
70  TProfile* BookTProfile(const std::string &name, const std::string & labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir = true, bool useRMS=false);
72  TProfile* BookTProfile(const std::string &name, const std::string & labels, int nBinsX, float* binsX, bool prependDir = true);
74  TProfile* BookTProfileRangeY(const std::string &name, const std::string & labels, int nBinsX, double* binsX, double startY, double endY, bool prependDir = true); //cannot overload, conflicts with previous definitions
76  TProfile2D * BookTProfile2D(const std::string &name, const std::string & labels, const int nBinsX, const double xlo, const double xhi, const int nBinsY, const double ylo, const double yhi, bool prependDir=true, bool useRMS=false);
78  TProfile2D * BookTProfile2D(const std::string &name, const std::string &labels, const int nBinsX, double* binsX, const int nBinsY, double* binsY, bool prependDir=true, bool useRMS=false);
80  TEfficiency * BookTEfficiency(const std::string &name, const std::string & labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir = true);
82  TEfficiency * BookTEfficiency(const std::string &name, const std::string & labels, const int nBinsX, const float xlo, const float xhi, const int nBinsy, const float ylo, const float yhi, const bool prependDir = true);
85  TTree* BookTree(const std::string & name, bool prependDir = true);
86 
87  std::string getDirectory(){return m_sDirectory;}
88 
89 private:
90  virtual void initializePlots(){;}
91  virtual void finalizePlots(){;}
92  static std::string constructPrefix(std::string dir, bool prependDir);
93 
94 protected:
95  std::vector<PlotBase*> m_vSubNodes;
96  std::vector<HistData> m_vBookedHistograms;
97  std::vector<TreeData> m_vBookedTrees;
98  std::vector<EfficiencyData> m_vBookedEfficiencies;
99  std::string m_sDirectory;
101 };
102 
103 #endif
PlotBase::constructPrefix
static std::string constructPrefix(std::string dir, bool prependDir)
Definition: PlotBase.cxx:287
WritePulseShapeToCool.yhi
yhi
Definition: WritePulseShapeToCool.py:153
PlotBase::m_iDetailLevel
int m_iDetailLevel
Definition: PlotBase.h:100
PlotBase::m_vBookedHistograms
std::vector< HistData > m_vBookedHistograms
Definition: PlotBase.h:96
PlotBase::Book1D
TH1F * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:88
PlotBase::BookTree
TTree * BookTree(const std::string &name, bool prependDir=true)
Book a TTree.
Definition: PlotBase.cxx:275
PlotBase::retrieveBookedTrees
std::vector< TreeData > retrieveBookedTrees()
Retrieve all booked trees.
Definition: PlotBase.cxx:67
PlotBase
Definition: PlotBase.h:33
TH2F
Definition: rootspy.cxx:420
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
PlotBase::initializePlots
virtual void initializePlots()
Definition: PlotBase.h:90
PlotBase::m_sDirectory
std::string m_sDirectory
Definition: PlotBase.h:99
PlotBase::m_vBookedEfficiencies
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition: PlotBase.h:98
PlotBase::BookTEfficiency
TEfficiency * BookTEfficiency(const std::string &name, const std::string &labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir=true)
Book a (1-D) TEfficiency histogram.
Definition: PlotBase.cxx:251
TProfile2D
Definition: rootspy.cxx:531
PlotBase::Book2D
TH2F * Book2D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2D histogram.
Definition: PlotBase.cxx:117
PlotBase::~PlotBase
virtual ~PlotBase()
Definition: PlotBase.h:36
PlotBase::retrieveBookedEfficiencies
std::vector< EfficiencyData > retrieveBookedEfficiencies()
Retrieve all booked efficiency objects.
Definition: PlotBase.cxx:77
PlotBase::BookTProfile2D
TProfile2D * BookTProfile2D(const std::string &name, const std::string &labels, const int nBinsX, const double xlo, const double xhi, const int nBinsY, const double ylo, const double yhi, bool prependDir=true, bool useRMS=false)
Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
Definition: PlotBase.cxx:225
PlotBase::PlotBase
PlotBase(PlotBase *parent, const std::string &sDir)
Definition: PlotBase.cxx:23
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
PlotBase::BookTProfileRangeY
TProfile * BookTProfileRangeY(const std::string &name, const std::string &labels, int nBinsX, double *binsX, double startY, double endY, bool prependDir=true)
Book a TProfile histogram with variable binning in x-axis and limits in y-values.
Definition: PlotBase.cxx:211
PlotBase::RegisterSubPlot
void RegisterSubPlot(PlotBase *pPlotBase)
Definition: PlotBase.h:40
HistData
std::pair< TH1 *, std::string > HistData
Definition: PlotBase.h:27
beamspotnt.labels
list labels
Definition: bin/beamspotnt.py:1447
PlotBase::m_vSubNodes
std::vector< PlotBase * > m_vSubNodes
Definition: PlotBase.h:95
PlotBase::retrieveBookedHistograms
std::vector< HistData > retrieveBookedHistograms()
Retrieve all booked histograms.
Definition: PlotBase.cxx:57
PlotBase::finalize
void finalize()
Definition: PlotBase.cxx:41
WritePulseShapeToCool.xhi
xhi
Definition: WritePulseShapeToCool.py:152
PlotBase::initialize
void initialize()
Definition: PlotBase.cxx:33
ChangeHistoRange.binsY
list binsY
Definition: ChangeHistoRange.py:59
TH3
Definition: rootspy.cxx:440
test_pyathena.parent
parent
Definition: test_pyathena.py:15
WritePulseShapeToCool.xlo
xlo
Definition: WritePulseShapeToCool.py:133
TH2
Definition: rootspy.cxx:373
WritePulseShapeToCool.ylo
ylo
Definition: WritePulseShapeToCool.py:134
PlotBase::Book3D
TH3F * Book3D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, int nBinsZ, float startZ, float endZ, bool prependDir=true)
Book a TH3D histogram.
Definition: PlotBase.cxx:151
beamspotman.dir
string dir
Definition: beamspotman.py:623
dumpTgcDigiJitter.nBins
list nBins
Definition: dumpTgcDigiJitter.py:29
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
EfficiencyData
std::pair< TEfficiency *, std::string > EfficiencyData
Definition: PlotBase.h:31
TH3F
Definition: rootspy.cxx:495
TProfile
Definition: rootspy.cxx:515
TH1F
Definition: rootspy.cxx:320
TH1
Definition: rootspy.cxx:268
TreeData
std::pair< TTree *, std::string > TreeData
Definition: PlotBase.h:30
PlotBase::BookTProfile
TProfile * BookTProfile(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir=true, bool useRMS=false)
Book a TProfile histogram.
Definition: PlotBase.cxx:180
ChangeHistoRange.binsX
list binsX
Definition: ChangeHistoRange.py:56
PlotBase::getDirectory
std::string getDirectory()
Definition: PlotBase.h:87
PlotBase::finalizePlots
virtual void finalizePlots()
Definition: PlotBase.h:91
PlotBase::m_vBookedTrees
std::vector< TreeData > m_vBookedTrees
Definition: PlotBase.h:97
PlotBase::setDetailLevel
void setDetailLevel(int iDetailLevel)
Definition: PlotBase.cxx:49