26 const static std::vector<ELmvmSrc>
fSrcs;
28 const static std::vector<std::string>
fSrcLatex;
32 const static std::vector<ELmvmAnaStep>
fAnaSteps;
40 const static std::vector<ELmvmSignal>
fSignals;
51 const static std::vector<std::string>
fCandNames;
58 std::vector<std::string>
CombineNames(
const std::string& name,
const std::vector<std::string>& subNames);
60 std::vector<std::string>
CombineNames(
const std::string& name,
const std::vector<std::string>& subNames1,
61 const std::vector<std::string>& subNames2);
64 void CreateH1(
const std::string& name,
const std::string& axisX,
const std::string& axisY,
double nBins,
double min,
67 void CreateH1(
const std::string& name,
const std::string& axisX,
const std::string& axisY,
double nBins,
double min,
68 double max,
bool doSumw2);
70 void CreateH1(
const std::string& name,
const std::vector<std::string>& subNames,
const std::string& axisX,
71 const std::string& axisY,
double nBins,
double min,
double max);
73 void CreateH1(
const std::string& name,
const std::vector<std::string>& subNames,
const std::string& axisX,
74 const std::string& axisY,
double nBins,
double min,
double max,
bool doSumw2);
76 void CreateH1(
const std::string& name,
const std::vector<std::string>& subNames1,
77 const std::vector<std::string>& subNames2,
const std::string& axisX,
const std::string& axisY,
78 double nBins,
double min,
double max);
80 void CreateH1(
const std::string& name,
const std::vector<std::string>& subNames1,
81 const std::vector<std::string>& subNames2,
const std::string& axisX,
const std::string& axisY,
82 double nBins,
double min,
double max,
bool doSumw2);
84 void CreateH2(
const std::string& name,
const std::string& axisX,
const std::string& axisY,
const std::string& axisZ,
85 double nBinsX,
double minX,
double maxX,
double nBinsY,
double minY,
double maxY);
87 void CreateH2(
const std::string& name,
const std::vector<std::string>& subNames,
const std::string& axisX,
88 const std::string& axisY,
const std::string& axisZ,
double nBinsX,
double minX,
double maxX,
89 double nBinsY,
double minY,
double maxY);
91 void CreateH2(
const std::string& name,
const std::vector<std::string>& subNames1,
92 const std::vector<std::string>& subNames2,
const std::string& axisX,
const std::string& axisY,
93 const std::string& axisZ,
double nBinsX,
double minX,
double maxX,
double nBinsY,
double minY,
100 T* hNew =
static_cast<T*
>(
fHM.GetObject(name)->Clone());
101 hNew->SetNameTitle(newName.c_str(), newName.c_str());
102 fHM.Add(newName, hNew);
109 TH1D* hNew =
static_cast<TH1D*
>(
h->Clone());
110 hNew->SetNameTitle(newName.c_str(), newName.c_str());
111 fHM.Add(newName, hNew);
121 void FillH1(
const std::string& name,
double x,
double w = 1.);
122 void FillH2(
const std::string& name,
double x,
double y,
double w = 1.);
130 TNamed*
GetObject(
const std::string& name) {
return fHM.GetObject(name); }
132 TH1D*
H1(
const std::string& name) {
return static_cast<TH1D*
>(
fHM.H1(name)); }
133 TH2D*
H2(
const std::string& name) {
return static_cast<TH2D*
>(
fHM.H2(name)); }
141 TH1D*
H1Clone(
const std::string& name) {
return static_cast<TH1D*
>(
H1(name)->Clone()); }
142 TH2D*
H2Clone(
const std::string& name) {
return static_cast<TH2D*
>(
H2(name)->Clone()); }
145 TH1D*
H1Clone(
const std::string& name,
ELmvmSrc src) {
return static_cast<TH1D*
>(
H1(name, src)->Clone()); }
146 TH2D*
H2Clone(
const std::string& name,
ELmvmSrc src) {
return static_cast<TH2D*
>(
H2(name, src)->Clone()); }
149 return static_cast<TH1D*
>(
H1(name, src, step)->Clone());
153 return static_cast<TH2D*
>(
H2(name, src, step)->Clone());
161 Int_t color, std::string opt =
"");
163 void SetLegend(std::vector<LmvmLegend>,
double textsize,
double x1,
double y1,
double x2,
double y2);
169 void Rebin(
const std::string& name,
int nGroup);
170 void Rebin(
const std::string& name,
const std::vector<std::string>& subNames,
int nGroup);
171 void Rebin(
const std::string& name,
const std::vector<std::string>& subNames1,
172 const std::vector<std::string>& subNames2,
int nGroup);
174 TH1D*
CreateSignificanceH1(TH1D* s, TH1D* bg,
const std::string& name,
const std::string& option);
175 TH2D*
CreateSignificanceH2(TH2D* signal, TH2D* bg,
const std::string& name,
const std::string& title);
177 void DrawAll(
int dim,
const std::string& hFullname,
const std::string& padText, std::vector<std::string> xLabel,
178 std::vector<std::string> yLabel,
bool logX,
bool logY,
double min,
double max);
179 void DrawAllGTracks(
int dim,
const std::string& cName,
const std::string& hName, std::vector<std::string> xLabel,
180 std::vector<std::string> yLabel,
bool logX,
bool logY,
double min,
double max);
181 void DrawAllCands(
int dim,
const std::string& cName,
const std::string& hName, std::vector<std::string> xLabel,
182 std::vector<std::string> yLabel,
bool logX,
bool logY,
double min,
double max);
184 std::vector<std::string> xLabel, std::vector<std::string> yLabel,
bool logX,
bool logY,
friend fscal max(fscal x, fscal y)
friend fscal min(fscal x, fscal y)
static constexpr size_t size()
Data class with information on a STS local track.
void FillH1(const std::string &name, ELmvmAnaStep step, double x, double w=1.)
void CreateH1(const std::string &name, const std::string &axisX, const std::string &axisY, double nBins, double min, double max)
static const std::vector< int > fAnaStepColors
static const std::vector< ELmvmSrc > fSrcs
static const std::vector< std::string > fCandNames
static const std::vector< std::string > fAnaStepLatex
void CreateH1(const std::string &name, const std::vector< std::string > &subNames, const std::string &axisX, const std::string &axisY, double nBins, double min, double max, bool doSumw2)
std::vector< std::string > CombineNames(const std::string &name, const std::vector< std::string > &subNames1, const std::vector< std::string > &subNames2)
TH2D * H2Clone(const std::string &name, ELmvmSrc src, ELmvmAnaStep step)
void DrawEfficiency(TH1 *h1, TH1 *h2, double xPos, double yPos)
void DrawSimDataLabel(double xPos, double yPos)
TH1D * CreateSignificanceH1(TH1D *s, TH1D *bg, const std::string &name, const std::string &option)
void FillH1(const std::string &name, double x, double w=1.)
TH2D * GetRatioElectronsOthers(const std::string &hName, ELmvmAnaStep step)
void CreateH1(const std::string &name, const std::string &axisX, const std::string &axisY, double nBins, double min, double max, bool doSumw2)
void FillH2(const std::string &name, ELmvmSrc src, double x, double y, double wSignal)
TH2D * H2Clone(const std::string &name)
TH2D * H2(const std::string &name)
TH2D * H2(const std::string &name, ELmvmSrc src, ELmvmAnaStep step)
void SetOptH1(TH1D *hist, TString xAxisTitle, TString yAxisTitle, Int_t Ndevision, Int_t style, Float_t size, Int_t color, std::string opt="")
static const int fNofSignals
TH2D * H2Clone(const std::string &name, ELmvmSrc src)
static const std::vector< int > fSrcColors
static const int fNofGTrackNames
void CreateH2(const std::string &name, const std::vector< std::string > &subNames1, const std::vector< std::string > &subNames2, const std::string &axisX, const std::string &axisY, const std::string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
static const std::vector< std::string > fBgPairSrcNames
static const std::vector< ELmvmSignal > fSignals
TH1D * H1Clone(const std::string &name, ELmvmSrc src)
std::vector< std::string > CombineNames(const std::string &name, const std::vector< std::string > &subNames)
static const std::vector< std::string > fFSCandLatex
void SetOptCanvas(TCanvas *canvas)
void CreateH2(const std::string &name, const std::string &axisX, const std::string &axisY, const std::string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
static const int fNofBgPairSrc
void FillH2(const std::string &name, ELmvmAnaStep step, double x, double y, double w=1.)
static const std::vector< std::string > fSrcNames
static const std::vector< std::string > fCandLatex
TH2D * H2Clone(const std::string &name, ELmvmAnaStep step)
TH1D * CreateHByClone(TH1D *h, const std::string &newName)
TH1D * H1(const std::string &name, ELmvmAnaStep step)
static const std::vector< ELmvmAnaStep > fAnaStepsFS
std::string GetName(const std::string &name, ELmvmAnaStep step)
void FillH1(const std::string &name, ELmvmSrc src, ELmvmAnaStep step, double x, double wSignal)
void FillH2(const std::string &name, double x, double y, double w=1.)
void DrawAll(int dim, const std::string &hFullname, const std::string &padText, std::vector< std::string > xLabel, std::vector< std::string > yLabel, bool logX, bool logY, double min, double max)
TH1D * H1(const std::string &name, ELmvmSrc src)
TH2D * H2(const std::string &name, ELmvmAnaStep step)
TH1D * H1Clone(const std::string &name, ELmvmAnaStep step)
static const std::vector< std::string > fGTrackNames
TH1D * H1(const std::string &name, ELmvmSrc src, ELmvmAnaStep step)
void DrawAllCandsAndSteps(int dim, const std::string &cName, const std::string &hName, std::vector< std::string > xLabel, std::vector< std::string > yLabel, bool logX, bool logY, double min, double max)
static const std::vector< std::string > fSrcLatex
void Rebin(const std::string &name, const std::vector< std::string > &subNames1, const std::vector< std::string > &subNames2, int nGroup)
void Rebin(const std::string &name, int nGroup)
TH2D * CreateSignificanceH2(TH2D *signal, TH2D *bg, const std::string &name, const std::string &title)
static const std::vector< std::string > fGTrackLatex
static const std::vector< ELmvmAnaStep > fAnaSteps
static const int fNofCandNames
void FillH1(const std::string &name, ELmvmSrc src, double x, double wSignal)
std::string GetName(const std::string &name, ELmvmSrc src)
TH2D * H2(const std::string &name, ELmvmSrc src)
void DrawAllGTracks(int dim, const std::string &cName, const std::string &hName, std::vector< std::string > xLabel, std::vector< std::string > yLabel, bool logX, bool logY, double min, double max)
static const std::vector< std::string > fSignalNames
void CreateH1(const std::string &name, const std::vector< std::string > &subNames, const std::string &axisX, const std::string &axisY, double nBins, double min, double max)
void DrawAllCands(int dim, const std::string &cName, const std::string &hName, std::vector< std::string > xLabel, std::vector< std::string > yLabel, bool logX, bool logY, double min, double max)
void Rebin(const std::string &name, const std::vector< std::string > &subNames, int nGroup)
static const std::vector< std::string > fFSCandNames
static const int fNofAnaSteps
void SetAnalysisStepAxis(TH1 *hist)
void CreateH1(const std::string &name, const std::vector< std::string > &subNames1, const std::vector< std::string > &subNames2, const std::string &axisX, const std::string &axisY, double nBins, double min, double max, bool doSumw2)
T * CreateHByClone(const std::string &name, const std::string &newName)
TH1D * H1Clone(const std::string &name)
TNamed * GetObject(const std::string &name)
TH1D * H1(const std::string &name)
void DrawRatioElectronsOthers(const std::string &cName, const std::string &hName)
std::string GetName(const std::string &name, ELmvmSrc src, ELmvmAnaStep step)
void CreateH1(const std::string &name, const std::vector< std::string > &subNames1, const std::vector< std::string > &subNames2, const std::string &axisX, const std::string &axisY, double nBins, double min, double max)
static const std::vector< std::string > fBgPairSrcLatex
T * CreateHByClone(const std::string &name, const std::string &newName, ELmvmAnaStep step)
static const std::vector< std::string > fAnaStepNames
void SetLegend(std::vector< LmvmLegend >, double textsize, double x1, double y1, double x2, double y2)
void FillH2(const std::string &name, ELmvmSrc src, ELmvmAnaStep step, double x, double y, double wSignal)
void CreateH2(const std::string &name, const std::vector< std::string > &subNames, const std::string &axisX, const std::string &axisY, const std::string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
static void DrawAnaStepOnPad(ELmvmAnaStep step)
TH1D * H1Clone(const std::string &name, ELmvmSrc src, ELmvmAnaStep step)