|
@ -32,34 +32,58 @@ const int nBins = 200; |
|
|
template <typename TVar> |
|
|
template <typename TVar> |
|
|
class DrawVar |
|
|
class DrawVar |
|
|
{ |
|
|
{ |
|
|
private: |
|
|
|
|
|
std::string _identifier; |
|
|
|
|
|
TVar _min; |
|
|
|
|
|
TVar _max; |
|
|
|
|
|
TVar _value = TVar{}; |
|
|
|
|
|
TH1 *_histogram = nullptr; |
|
|
|
|
|
|
|
|
|
|
|
public: |
|
|
|
|
|
DrawVar(std::string identifier, TVar min, TVar max) |
|
|
|
|
|
: _identifier { identifier }, _min { min }, _max { max } |
|
|
|
|
|
{ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private: |
|
|
|
|
|
std::string _identifier; |
|
|
|
|
|
TVar _min; |
|
|
|
|
|
TVar _max; |
|
|
|
|
|
TVar _value = TVar{}; |
|
|
|
|
|
TH1 *_histogram = nullptr; |
|
|
|
|
|
|
|
|
|
|
|
public: |
|
|
|
|
|
DrawVar(std::string identifier, TVar min, TVar max) |
|
|
|
|
|
: _identifier{identifier}, _min{min}, _max{max} |
|
|
|
|
|
{ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
std::string getIdentifier() { |
|
|
|
|
|
return _identifier; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
std::string getId() |
|
|
|
|
|
{ |
|
|
|
|
|
return _identifier; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TVar getMin() { |
|
|
|
|
|
return _min; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
const char *getIdStr() |
|
|
|
|
|
{ |
|
|
|
|
|
return _identifier.c_str(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TVar getMax() { |
|
|
|
|
|
return _max; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TVar getMin() |
|
|
|
|
|
{ |
|
|
|
|
|
return _min; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TVar* getValuePointer() { |
|
|
|
|
|
return &_value; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TVar getMax() |
|
|
|
|
|
{ |
|
|
|
|
|
return _max; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TVar *getValuePointer() |
|
|
|
|
|
{ |
|
|
|
|
|
return &_value; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TVar getValue() |
|
|
|
|
|
{ |
|
|
|
|
|
return _value; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TH1 *getHist() |
|
|
|
|
|
{ |
|
|
|
|
|
return _histogram; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void setHist(TH1D *hist) |
|
|
|
|
|
{ |
|
|
|
|
|
_histogram = hist; |
|
|
|
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
int general_cuts() |
|
|
int general_cuts() |
|
@ -84,8 +108,7 @@ int general_cuts() |
|
|
gStyle->SetOptFit(0); |
|
|
gStyle->SetOptFit(0); |
|
|
|
|
|
|
|
|
std::vector<DrawVar<Float_t>> float_vars{ |
|
|
std::vector<DrawVar<Float_t>> float_vars{ |
|
|
DrawVar<Float_t>{"B0_PT", 0., 20000.} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
DrawVar<Float_t>("B0_PT", 0., 20000.)}; |
|
|
std::vector<DrawVar<Double_t>> double_vars{ |
|
|
std::vector<DrawVar<Double_t>> double_vars{ |
|
|
|
|
|
|
|
|
}; |
|
|
}; |
|
@ -107,16 +130,14 @@ int general_cuts() |
|
|
|
|
|
|
|
|
for (size_t i = 0; i < float_vars.size(); i++) |
|
|
for (size_t i = 0; i < float_vars.size(); i++) |
|
|
{ |
|
|
{ |
|
|
auto the_var = &float_vars[i]; |
|
|
|
|
|
chain->SetBranchAddress(the_var->identifier.c_str(), &(the_var->value)); |
|
|
|
|
|
the_var->histogram = new TH1D(TString::Format("h1_%s", the_var->identifier.c_str()).Data(), the_var->identifier.c_str(), nBins, the_var->min, the_var->max); |
|
|
|
|
|
|
|
|
chain->SetBranchAddress(float_vars[i].getIdStr(), float_vars[i].getValuePointer()); |
|
|
|
|
|
float_vars[i].setHist(new TH1D(TString::Format("h1_%s", float_vars[i].getIdStr()).Data(), float_vars[i].getIdStr(), nBins, float_vars[i].getMin(), float_vars[i].getMax())); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (size_t i = 0; i < double_vars.size(); i++) |
|
|
for (size_t i = 0; i < double_vars.size(); i++) |
|
|
{ |
|
|
{ |
|
|
auto the_var = &double_vars[i]; |
|
|
|
|
|
chain->SetBranchAddress(the_var->identifier.c_str(), &(the_var->value)); |
|
|
|
|
|
the_var->histogram = new TH1D(TString::Format("h1_%s", the_var->identifier.c_str()).Data(), the_var->identifier.c_str(), nBins, the_var->min, the_var->max); |
|
|
|
|
|
|
|
|
chain->SetBranchAddress(double_vars[i].getIdStr(), double_vars[i].getValuePointer()); |
|
|
|
|
|
double_vars[i].setHist(new TH1D(TString::Format("h1_%s", double_vars[i].getIdStr()).Data(), double_vars[i].getIdStr(), nBins, double_vars[i].getMin(), double_vars[i].getMax())); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
unsigned int entries = chain->GetEntries(); |
|
|
unsigned int entries = chain->GetEntries(); |
|
@ -128,12 +149,12 @@ int general_cuts() |
|
|
|
|
|
|
|
|
for (size_t i = 0; i < float_vars.size(); i++) |
|
|
for (size_t i = 0; i < float_vars.size(); i++) |
|
|
{ |
|
|
{ |
|
|
float_vars[i].histogram->Fill(float_vars[i].value); |
|
|
|
|
|
|
|
|
float_vars[i].getHist()->Fill(float_vars[i].getValue()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (size_t i = 0; i < double_vars.size(); i++) |
|
|
for (size_t i = 0; i < double_vars.size(); i++) |
|
|
{ |
|
|
{ |
|
|
double_vars[i].histogram->Fill(double_vars[i].value); |
|
|
|
|
|
|
|
|
double_vars[i].getHist()->Fill(double_vars[i].getValue()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -143,28 +164,33 @@ int general_cuts() |
|
|
|
|
|
|
|
|
c1->Draw(); |
|
|
c1->Draw(); |
|
|
|
|
|
|
|
|
TCanvas *c2 = new TCanvas("c2", "Canvas 2", 0, 0, 1200, 600); |
|
|
|
|
|
c2->Divide(4, 2); |
|
|
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < float_vars.size(); i++) |
|
|
|
|
|
|
|
|
if (float_vars.size() > 0) |
|
|
{ |
|
|
{ |
|
|
c2->cd(i+1); |
|
|
|
|
|
float_vars[i].histogram->Draw(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TCanvas *c2 = new TCanvas("c2", "Canvas 2", 0, 0, 1200, 600); |
|
|
|
|
|
c2->Divide(4, 2); |
|
|
|
|
|
|
|
|
c2->Draw(); |
|
|
|
|
|
|
|
|
for (size_t i = 0; i < float_vars.size(); i++) |
|
|
|
|
|
{ |
|
|
|
|
|
c2->cd(i + 1); |
|
|
|
|
|
float_vars[i].getHist()->Draw(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TCanvas *c3 = new TCanvas("c3", "Canvas 3", 0, 0, 1200, 600); |
|
|
|
|
|
c3->Divide(4, 2); |
|
|
|
|
|
|
|
|
c2->Draw(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
for (size_t i = 0; i < double_vars.size(); i++) |
|
|
|
|
|
|
|
|
if (double_vars.size() > 0) |
|
|
{ |
|
|
{ |
|
|
c3->cd(i+1); |
|
|
|
|
|
double_vars[i].histogram->Draw(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TCanvas *c3 = new TCanvas("c3", "Canvas 3", 0, 0, 1200, 600); |
|
|
|
|
|
c3->Divide(4, 2); |
|
|
|
|
|
|
|
|
c3->Draw(); |
|
|
|
|
|
|
|
|
for (size_t i = 0; i < double_vars.size(); i++) |
|
|
|
|
|
{ |
|
|
|
|
|
c3->cd(i + 1); |
|
|
|
|
|
double_vars[i].getHist()->Draw(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
c3->Draw(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |