BmnRoot
Loading...
Searching...
No Matches
BmnSimulationReport.h
Go to the documentation of this file.
1
7#ifndef BMNSIMULATIONREPORT_H_
8#define BMNSIMULATIONREPORT_H_
9
10#include "BmnDetectorList.h"
11#include "BmnDrawHist.h"
12#include "BmnReport.h"
13#include "TF1.h"
14#include "TPaveStats.h"
15
16#include <string>
17
18using std::ostream;
19using std::string;
20
21class BmnHistManager;
22
23// basic height and wigth of pad
24const Int_t baseW = 700;
25const Int_t baseH = 500;
26
33class BmnSimulationReport : public BmnReport
34{
35 public:
40
45
57 void Create(BmnHistManager* histManager, const string& outputDir);
58 void Create(const string& outputDir);
59 void Create();
60
69 void Create(const string& fileName, const string& outputDir);
70
71 void SetHM(BmnHistManager* hm) { fHM = hm; }
72
76 BmnHistManager* HM() const { return fHM; }
77
82 void DrawH1ByPattern(const string& histNamePattern);
83
88 void DrawH1ByPattern(const string& histNamePattern, string (*labelFormatter)(const string&, const BmnHistManager*));
89
98 void DrawH2ByPattern(const string& histNamePattern,
99 HistScale logx = kLinear,
100 HistScale logy = kLinear,
101 HistScale logz = kLinear,
102 const string& drawOpt = "");
103
104 void SetOnlyPrimes(const Bool_t prime) { fPrimes = prime; }
105
106 Bool_t GetOnlyPrimes() const { return fPrimes; }
107
108 void AddStationSet(DetectorId id, void* ss) { fDetStationSets.insert(std::make_pair(id, ss)); }
109
111
112 static TClass* GetStationSetClass(DetectorId det);
113 static char* HistNameHits(string detName, Short_t iSt) { return Form("%s_st%d_x_vs_y", detName.data(), iSt); }
114 static char* HistNameHits(TString& detName, Short_t iSt) { return Form("%s_st%d_x_vs_y", detName.Data(), iSt); }
115 static char* HistNameStripDigit(TString& detName, Short_t iSt, Short_t iMod, Short_t iLayer)
116 {
117 return Form("%s_Station_%d_module_%d_layer_%d", detName.Data(), iSt, iMod, iLayer);
118 }
119
120 protected:
121 void DrawMuSigma(TVirtualPad* pad, TH1* h);
122 void DrawOneH1(const TString canvasName,
123 const TString name1,
124 const TString drawOpt,
125 Int_t histW = baseW,
126 Int_t histH = baseH);
127 void DrawOneH1Log(const TString canvasName,
128 const TString name1,
129 const TString drawOpt,
130 Int_t histW = baseW,
131 Int_t histH = baseH);
132 void DrawTwoH1(const TString canvasName,
133 const TString name1,
134 const TString name2,
135 const TString drawOpt,
136 Bool_t doFit = kFALSE,
137 Int_t histW = baseW,
138 Int_t histH = baseH);
139 void DrawOneH2(const TString canvasName, const TString name1, Int_t histW = baseW, Int_t histH = baseH);
140 void DrawTwoH2(const TString canvasName,
141 const TString name1,
142 const TString name2,
143 Int_t histW = baseW,
144 Int_t histH = baseH);
145 void DrawThreeH1(const TString canvasName,
146 const TString name1,
147 const TString name2,
148 const TString name3,
149 Int_t histW = baseW,
150 Int_t histH = baseH);
151 void DrawThreeH2(const TString canvasName,
152 const TString name1,
153 const TString name2,
154 const TString name3,
155 Int_t histW = baseW,
156 Int_t histH = baseH);
157 void DrawFourH2(const TString canvasName,
158 const TString name1,
159 const TString name2,
160 const TString name3,
161 const TString name4,
162 Int_t histW = baseW,
163 Int_t histH = baseH);
164 void DrawNH2(const string canvasName,
165 const vector<string>& names,
166 Int_t histW = baseW,
167 Int_t histH = baseH,
168 Int_t ncols = 2);
169 const Int_t MinNEntries4Fit = 10;
170
171 private:
172 BmnHistManager* fHM; // Histogram manager
173 Bool_t fPrimes;
174
175 map<DetectorId, void*> fDetStationSets;
176
178 BmnSimulationReport& operator=(const BmnSimulationReport&) = delete;
179
180 ClassDef(BmnSimulationReport, 1)
181};
182
183#endif /* BmnSIMULATIONREPORT_H_ */
Helper functions for drawing 1D and 2D histograms and graphs.
const Int_t baseH
const Int_t baseW
DetectorId
Histogram manager.
Base class for reports.
Definition BmnReport.h:29
Base class for simulation reports.
BmnHistManager * HM() const
Return pointer to Histogram manager.
BmnSimulationReport()
Constructor.
static char * HistNameHits(string detName, Short_t iSt)
void DrawNH2(const string canvasName, const vector< string > &names, Int_t histW=baseW, Int_t histH=baseH, Int_t ncols=2)
static TClass * GetStationSetClass(DetectorId det)
void DrawTwoH2(const TString canvasName, const TString name1, const TString name2, Int_t histW=baseW, Int_t histH=baseH)
void Create(const string &fileName, const string &outputDir)
Main function which creates report data.
void DrawH1ByPattern(const string &histNamePattern)
Select by pattern TH1 histograms and draw each histogram on separate canvas.
void DrawThreeH2(const TString canvasName, const TString name1, const TString name2, const TString name3, Int_t histW=baseW, Int_t histH=baseH)
void DrawOneH1Log(const TString canvasName, const TString name1, const TString drawOpt, Int_t histW=baseW, Int_t histH=baseH)
void Create(const string &outputDir)
void DrawH2ByPattern(const string &histNamePattern, HistScale logx=kLinear, HistScale logy=kLinear, HistScale logz=kLinear, const string &drawOpt="")
Select by pattern TH2 histograms and draw each histogram on separate canvas.
void SetHM(BmnHistManager *hm)
static char * HistNameStripDigit(TString &detName, Short_t iSt, Short_t iMod, Short_t iLayer)
void DrawH1ByPattern(const string &histNamePattern, string(*labelFormatter)(const string &, const BmnHistManager *))
Select by pattern TH1 histograms and draw all histograms on the same canvas.
void DrawTwoH1(const TString canvasName, const TString name1, const TString name2, const TString drawOpt, Bool_t doFit=kFALSE, Int_t histW=baseW, Int_t histH=baseH)
void Create()
Pure abstract function which is called from public Create() function. This function has to write repo...
void Create(BmnHistManager *histManager, const string &outputDir)
Main function which creates report data.
void DrawFourH2(const TString canvasName, const TString name1, const TString name2, const TString name3, const TString name4, Int_t histW=baseW, Int_t histH=baseH)
static char * HistNameHits(TString &detName, Short_t iSt)
void SetOnlyPrimes(const Bool_t prime)
virtual ~BmnSimulationReport()
Destructor.
void DrawOneH2(const TString canvasName, const TString name1, Int_t histW=baseW, Int_t histH=baseH)
void DrawMuSigma(TVirtualPad *pad, TH1 *h)
void DrawThreeH1(const TString canvasName, const TString name1, const TString name2, const TString name3, Int_t histW=baseW, Int_t histH=baseH)
void DrawOneH1(const TString canvasName, const TString name1, const TString drawOpt, Int_t histW=baseW, Int_t histH=baseH)
void AddStationSet(DetectorId id, void *ss)
HistScale
Define linear or logarithmic scale for drawing.
Definition BmnDrawHist.h:69
@ kLinear
Definition BmnDrawHist.h:71