Skip to content

Commit

Permalink
Updated stacked plots cosmetics.
Browse files Browse the repository at this point in the history
- fixed "University of Siena" name in file headers;
- added divide_by_bin_width to the SmartHistogram<TH1D>;
- added FlatAnalyzerData_tautau_other_tag class;
- in FlatAnalyzerDataCollectionReader taking information required to
  plot histograms from FlatAnalyzerDataCollection;
- added CMS_lumi.h and updated TdrStyle.h according the last CMS
  Publications Committee reccommendations;
- fixed Print_Stack, RootPrintToPdf and StackedPlotDescriptor to follow
  new plot decoration format;
- added script print_control_plots.sh to print all control plots that
  should be put into the AN;
- added dependency on ROOT library ASImage make.sh and make_withFactory.sh.
  • Loading branch information
kandrosov committed May 1, 2015
1 parent 137c6f6 commit 7a59027
Show file tree
Hide file tree
Showing 179 changed files with 1,296 additions and 770 deletions.
4 changes: 2 additions & 2 deletions Analysis/include/AnalysisCategories.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*!
* \file AnalysisCategories.h
* \brief Definition of data and event categories used in HH->bbTauTau analysis.
* \author Konstantin Androsov (Siena University, INFN Pisa)
* \author Maria Teresa Grippo (Siena University, INFN Pisa)
* \author Konstantin Androsov (University of Siena, INFN Pisa)
* \author Maria Teresa Grippo (University of Siena, INFN Pisa)
* \date 2014-09-16 created
*
* Copyright 2014 Konstantin Androsov <[email protected]>,
Expand Down
4 changes: 2 additions & 2 deletions Analysis/include/BaseAnalyzer.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*!
* \file BaseAnalyzer.h
* \brief Definition of BaseAnalyzer class which is the base class for all X->HH->bbTauTau and H->tautau analyzers.
* \author Konstantin Androsov (Siena University, INFN Pisa)
* \author Maria Teresa Grippo (Siena University, INFN Pisa)
* \author Konstantin Androsov (University of Siena, INFN Pisa)
* \author Maria Teresa Grippo (University of Siena, INFN Pisa)
* \date 2014-03-20 created
*
* Copyright 2014 Konstantin Androsov <[email protected]>,
Expand Down
4 changes: 2 additions & 2 deletions Analysis/include/BaseFlatTreeAnalyzer.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*!
* \file BaseFlatTreeAnalyzer.h
* \brief Definition of BaseFlatTreeAnalyzer class, the base class for flat tree analyzers.
* \author Konstantin Androsov (Siena University, INFN Pisa)
* \author Maria Teresa Grippo (Siena University, INFN Pisa)
* \author Konstantin Androsov (University of Siena, INFN Pisa)
* \author Maria Teresa Grippo (University of Siena, INFN Pisa)
* \date 2014-09-03 created
*
* Copyright 2014 Konstantin Androsov <[email protected]>,
Expand Down
4 changes: 2 additions & 2 deletions Analysis/include/BaseFlatTreeProducer.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*!
* \file BaseFlatTreeProducer.h
* \brief Definition of BaseFlatTreeProducer class, the base class for flat tree producers.
* \author Konstantin Androsov (Siena University, INFN Pisa)
* \author Maria Teresa Grippo (Siena University, INFN Pisa)
* \author Konstantin Androsov (University of Siena, INFN Pisa)
* \author Maria Teresa Grippo (University of Siena, INFN Pisa)
* \date 2014-07-11 created
*
* Copyright 2014 Konstantin Androsov <[email protected]>,
Expand Down
4 changes: 2 additions & 2 deletions Analysis/include/Config.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*!
* \file Config.h
* \brief Definition of Config class.
* \author Konstantin Androsov (Siena University, INFN Pisa)
* \author Maria Teresa Grippo (Siena University, INFN Pisa)
* \author Konstantin Androsov (University of Siena, INFN Pisa)
* \author Maria Teresa Grippo (University of Siena, INFN Pisa)
*
* Copyright 2014 Konstantin Androsov <[email protected]>,
* Maria Teresa Grippo <[email protected]>
Expand Down
4 changes: 2 additions & 2 deletions Analysis/include/EventWeights.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*!
* \file EventWeights.h
* \brief Definition of the class to calculate and store different event weights.
* \author Konstantin Androsov (Siena University, INFN Pisa)
* \author Maria Teresa Grippo (Siena University, INFN Pisa)
* \author Konstantin Androsov (University of Siena, INFN Pisa)
* \author Maria Teresa Grippo (University of Siena, INFN Pisa)
* \date 2014-11-17 created
*
* Copyright 2014 Konstantin Androsov <[email protected]>,
Expand Down
159 changes: 108 additions & 51 deletions Analysis/include/FlatAnalyzerData.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*!
* \file FlatAnalyzerData.h
* \brief Definition of histogram containers for flat tree analyzers.
* \author Konstantin Androsov (Siena University, INFN Pisa)
* \author Maria Teresa Grippo (Siena University, INFN Pisa)
* \author Konstantin Androsov (University of Siena, INFN Pisa)
* \author Maria Teresa Grippo (University of Siena, INFN Pisa)
* \date 2014-12-02 created
*
* Copyright 2014 Konstantin Androsov <[email protected]>,
Expand Down Expand Up @@ -35,41 +35,40 @@ namespace analysis {

class FlatAnalyzerData : public root_ext::AnalyzerData {
public:
TH1D_ENTRY_CUSTOM_EX(m_sv, M_tt_Bins(), "M_{#tau#tau} [GeV]", "dN/dm_{#tau#tau} [1/GeV]", false, 1.5, true)
TH1D_ENTRY_CUSTOM_EX(m_vis, M_tt_Bins(), "M_{vis}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_bb_slice, M_tt_bbSlice_Bins(), "2DM_{sv}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_ttbb, M_ttbb_Bins(), "M_{#tau#tau+jj} [GeV]", "dN/dm_{#tau#tau+jj} [1/GeV]", false, 1.1, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_ttbb_kinfit, M_ttbb_Bins(), "M_{H}^{kinfit} [GeV]", "dN/dm_{H}^{kinfit} [1/GeV]", false, 1.1, true)


TH1D_ENTRY_EX(pt_b1, 20, 0, 200, "Leading selected jet p_{T} [GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(eta_b1, 25, -2.5, 2.5, "Leading selected jet #eta", "Events", false, 2, SaveAll)
TH1D_ENTRY_EX(csv_b1, 25, 0, 1, "Leading selected jet CSV", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(pt_b2, 20, 0, 200, "Subleading selected jet p_{T} [GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(eta_b2, 25, -2.5, 2.5, "Subleading selected jet #eta", "Events", false, 2, SaveAll)
TH1D_ENTRY_EX(csv_b2, 25, 0, 1, "Subleading selected jet CSV", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(pt_H_tt, 20, 0, 300, "P_{T}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(pt_H_bb, 20, 0, 300, "P_{T}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(pt_H_hh, 20, 0, 300, "P_{T}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(m_bb, 30, 0, 600, "M_{jj} [GeV]", "dN/dm_{jj} [1/GeV]", false, 1.1, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_tt, 22, 0., 3.3, "#Delta#Phi_{#tau#tau}[rad]", "Events", false, 1.3, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_bb, 22, 0., 3.3, "#Delta#Phi_{bb}[rad]", "Events", false, 1.8, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_bb_MET, 22, 0., 3.3, "#Delta#Phi_{bb,MET}[rad]", "Events", false, 1.5, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_tt_MET, 22, 0., 3.3, "#Delta#Phi_{#tau#tau,MET}[rad]", "Events", false, 1.5, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_hh, 22, 0., 3.3, "#Delta#Phi_{#tau#taubb}[rad]", "Events", false, 1.5, SaveAll)
TH1D_ENTRY_EX(DeltaR_tt, 40, 0, 6, "#DeltaR_{#tau#tau}", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(DeltaR_bb, 40, 0, 6, "#DeltaR_{bb}[rad]", "Events", false, 1.7, SaveAll)
TH1D_ENTRY_EX(DeltaR_hh, 40, 0, 6, "#DeltaR_{#tau#taubb}[rad]", "Events", false, 1.5, SaveAll)
TH1D_ENTRY_EX(mt_2, 20, 0, 200, "M_{T}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(pt_H_tt_MET, 20, 0, 300, "P_{T}[GeV]", "Evnets", false, 1.1, SaveAll)
TH1D_ENTRY_EX(convergence, 10, -3.5, 6.5, "Fit_convergence", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(chi2, 20, 0, 100, "#chi^{2}", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(fit_probability, 20, 0, 1, "Fit_probability", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(pull_balance, 20, -10, 10, "pull_balance", "Events", false, 2, SaveAll)
TH1D_ENTRY_EX(pull_balance_1, 100, -10, 10, "pull_balance_1", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(pull_balance_2, 100, -10, 10, "pull_balance_1", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(MET, 20, 0, 100, "E_{T}^{miss} [GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(nJets_Pt30, 20, -0.5, 19.5, "nJets", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_vis, M_tt_Bins(), "M_{vis}[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_bb_slice, M_tt_bbSlice_Bins(), "2DM_{sv}[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_ttbb, M_ttbb_Bins(), "M_{#tau#tau+jj} [GeV]", "dN/dm_{#tau#tau+jj} [1/GeV]", false, 1.3, true, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_ttbb_kinfit, M_ttbb_Bins(), "M_{H}^{kinfit} [GeV]", "dN/dm_{H}^{kinfit} [1/GeV]", false, 1.3, true, true)


TH1D_ENTRY_EX(pt_b1, 20, 0, 200, "Leading selected jet p_{T} [GeV]", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(eta_b1, 25, -2.5, 2.5, "Leading selected jet #eta", "Events", false, 1.8, false, SaveAll)
TH1D_ENTRY_EX(csv_b1, 25, 0, 1, "Leading selected jet CSV", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(pt_b2, 20, 0, 200, "Subleading selected jet p_{T} [GeV]", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(eta_b2, 25, -2.5, 2.5, "Subleading selected jet #eta", "Events", false, 1.8, false, SaveAll)
TH1D_ENTRY_EX(csv_b2, 25, 0, 1, "Subleading selected jet CSV", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(pt_H_tt, 20, 0, 300, "P_{T}[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(pt_H_bb, 20, 0, 300, "P_{T}[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(pt_H_hh, 20, 0, 300, "P_{T}[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(m_bb, 30, 0, 600, "M_{jj} [GeV]", "dN/dm_{jj} [1/GeV]", false, 1.25, true, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_tt, 22, 0., 3.3, "#Delta#Phi_{#tau#tau}[rad]", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_bb, 22, 0., 3.3, "#Delta#Phi_{bb}[rad]", "Events", false, 1.8, false, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_bb_MET, 22, 0., 3.3, "#Delta#Phi_{bb,MET}[rad]", "Events", false, 1.5, false, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_tt_MET, 22, 0., 3.3, "#Delta#Phi_{#tau#tau,MET}[rad]", "Events", false, 1.5, false, SaveAll)
TH1D_ENTRY_EX(DeltaPhi_hh, 22, 0., 3.3, "#Delta#Phi_{#tau#taubb}[rad]", "Events", false, 1.5, false, SaveAll)
TH1D_ENTRY_EX(DeltaR_tt, 40, 0, 6, "#DeltaR_{#tau#tau}", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(DeltaR_bb, 40, 0, 6, "#DeltaR_{bb}[rad]", "Events", false, 1.7, false, SaveAll)
TH1D_ENTRY_EX(DeltaR_hh, 40, 0, 6, "#DeltaR_{#tau#taubb}[rad]", "Events", false, 1.5, false, SaveAll)
TH1D_ENTRY_EX(mt_2, 20, 0, 200, "M_{T}[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(pt_H_tt_MET, 20, 0, 300, "P_{T}[GeV]", "Evnets", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(convergence, 10, -3.5, 6.5, "Fit_convergence", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(chi2, 20, 0, 100, "#chi^{2}", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(fit_probability, 20, 0, 1, "Fit_probability", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(pull_balance, 20, -10, 10, "pull_balance", "Events", false, 2, false, SaveAll)
TH1D_ENTRY_EX(pull_balance_1, 100, -10, 10, "pull_balance_1", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(pull_balance_2, 100, -10, 10, "pull_balance_1", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(MET, 20, 0, 100, "E_{T}^{miss} [GeV]", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(nJets_Pt30, 20, -0.5, 19.5, "nJets", "Events", false, 1.1, false, SaveAll)
TH2D_ENTRY_EX(csv_b1_vs_ptb1, 20, 0, 200, 25, 0, 1, "P_{T}[GeV](leading_jet)", "CSV(leading_jet)", false, 1, SaveAll)
TH2D_ENTRY_EX(chi2_vs_ptb1, 20, 0, 200, 20, 0, 100, "P_{T}[GeV](leading_jet)", "#chi^{2}", false, 1, SaveAll)
TH2D_ENTRY_EX(mH_vs_chi2, 20, 0, 100, 50, 200, 700, "#chi^{2}", "M_{#tau#taubb}[GeV]", false, 1, SaveAll)
Expand Down Expand Up @@ -108,8 +107,6 @@ class FlatAnalyzerData : public root_ext::AnalyzerData {
{
const ntuple::Flat& event = *eventInfo.event;

const double mass_tautau = event.m_sv_MC;
m_sv().Fill(mass_tautau, weight);
if (eventInfo.fitResults.has_valid_mass)
m_ttbb_kinfit().Fill(eventInfo.fitResults.mass, weight);
// FillSlice(m_bb_slice(), mass_tautau, eventInfo.Hbb.M(), weight);
Expand Down Expand Up @@ -163,6 +160,15 @@ class FlatAnalyzerData : public root_ext::AnalyzerData {
}
}

virtual void CreateAll()
{
m_vis(); m_bb_slice(); m_ttbb(); m_ttbb_kinfit(); pt_b1(); eta_b1(); csv_b1(); pt_b2(); eta_b2();
csv_b2(); pt_H_tt(); pt_H_bb(); pt_H_hh(); m_bb(); DeltaPhi_tt(); DeltaPhi_bb(); DeltaPhi_bb_MET();
DeltaPhi_tt_MET(); DeltaPhi_hh(); DeltaR_tt(); DeltaR_bb(); DeltaR_hh(); mt_2(); pt_H_tt_MET(); convergence();
chi2(); fit_probability(); pull_balance(); pull_balance_1(); pull_balance_2(); MET(); nJets_Pt30();
csv_b1_vs_ptb1(); chi2_vs_ptb1(); mH_vs_chi2();
}

protected:
static void FillSlice(TH1D& hist, double m_sv, double m_Hbb, double weight)
{
Expand Down Expand Up @@ -202,12 +208,13 @@ class FlatAnalyzerData : public root_ext::AnalyzerData {

class FlatAnalyzerData_semileptonic : public FlatAnalyzerData {
public:
TH1D_ENTRY_EX(pt_1, 20, 0, 200, "P_{T}(leading#tau_{h})[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(eta_1, 25, -2.5, 2.5, "#eta(leading#tau_{h})", "Events", false, 2, SaveAll)
TH1D_ENTRY_EX(pt_2, 20, 0, 200, "P_{T}(subleading#tau_{h})[GeV]", "Events", false, 1, SaveAll)
TH1D_ENTRY_EX(eta_2, 25, -2.5, 2.5, "#eta(subleading#tau_{h})", "Events", false, 2, SaveAll)
TH1D_ENTRY_CUSTOM_EX(m_sv, M_tt_Bins(), "M_{#tau#tau} [GeV]", "dN/dm_{#tau#tau} [1/GeV]", false, 1.5, true, true)
TH1D_ENTRY_EX(pt_1, 20, 0, 200, "P_{T}(leading#tau_{h})[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(eta_1, 25, -2.5, 2.5, "#eta(leading#tau_{h})", "Events", false, 2, false, SaveAll)
TH1D_ENTRY_EX(pt_2, 20, 0, 200, "P_{T}(subleading#tau_{h})[GeV]", "Events", false, 1, false, SaveAll)
TH1D_ENTRY_EX(eta_2, 25, -2.5, 2.5, "#eta(subleading#tau_{h})", "Events", false, 2, false, SaveAll)

TH1D_ENTRY_EX(mt_1, 50, 0, 50, "M_{T}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(mt_1, 50, 0, 50, "M_{T}[GeV]", "Events", false, 1.1, false, SaveAll)

explicit FlatAnalyzerData_semileptonic(bool _fill_all) : FlatAnalyzerData(_fill_all) {}

Expand All @@ -217,6 +224,7 @@ class FlatAnalyzerData_semileptonic : public FlatAnalyzerData {
virtual void Fill(const FlatEventInfo& eventInfo, double weight) override
{
FlatAnalyzerData::Fill(eventInfo, weight);
m_sv().Fill(eventInfo.event->m_sv_MC, weight);
if(!fill_all) return;
const ntuple::Flat& event = *eventInfo.event;
pt_1().Fill(event.pt_1, weight);
Expand All @@ -232,6 +240,12 @@ class FlatAnalyzerData_semileptonic : public FlatAnalyzerData {
600, 650, 700 };
return bins;
}

virtual void CreateAll() override
{
FlatAnalyzerData::CreateAll();
m_sv(); pt_1(); eta_1(); pt_2(); eta_2(); mt_1();
}
};

class FlatAnalyzerData_semileptonic_2tag : public FlatAnalyzerData_semileptonic {
Expand All @@ -251,14 +265,14 @@ class FlatAnalyzerData_semileptonic_2tag : public FlatAnalyzerData_semileptonic

class FlatAnalyzerData_tautau : public FlatAnalyzerData {
public:
TH1D_ENTRY_EX(pt_1, 20, 0, 200, "Leading tau p_{T} [GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(eta_1, 25, -2.5, 2.5, "Leading tau #eta", "Events", false, 2, SaveAll)
TH1D_ENTRY_EX(pt_2, 20, 0, 200, "Subleading tau p_{T} [GeV]", "Events", false, 1, SaveAll)
TH1D_ENTRY_EX(eta_2, 25, -2.5, 2.5, "Subleading tau #eta", "Events", false, 2, SaveAll)
TH1D_ENTRY_EX(pt_1, 20, 0, 200, "Leading tau p_{T} [GeV]", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(eta_1, 25, -2.5, 2.5, "Leading tau #eta", "Events", false, 1.8, false, SaveAll)
TH1D_ENTRY_EX(pt_2, 20, 0, 200, "Subleading tau p_{T} [GeV]", "Events", false, 1.3, false, SaveAll)
TH1D_ENTRY_EX(eta_2, 25, -2.5, 2.5, "Subleading tau #eta", "Events", false, 1.8, false, SaveAll)

TH1D_ENTRY_EX(mt_1, 20, 0, 200, "M_{T}[GeV]", "Events", false, 1.1, SaveAll)
TH1D_ENTRY_EX(iso_tau1, 100, 0, 10, "Iso#tau_{1}", "Events", false, 1, SaveAll)
TH1D_ENTRY_EX(iso_tau2, 100, 0, 10, "Iso#tau_{2}", "Events", false, 1, SaveAll)
TH1D_ENTRY_EX(mt_1, 20, 0, 200, "M_{T}[GeV]", "Events", false, 1.1, false, SaveAll)
TH1D_ENTRY_EX(iso_tau1, 100, 0, 10, "Iso#tau_{1}", "Events", false, 1, false, SaveAll)
TH1D_ENTRY_EX(iso_tau2, 100, 0, 10, "Iso#tau_{2}", "Events", false, 1, false, SaveAll)

explicit FlatAnalyzerData_tautau(bool _fill_all) : FlatAnalyzerData(_fill_all) {}

Expand All @@ -284,20 +298,63 @@ class FlatAnalyzerData_tautau : public FlatAnalyzerData {
static const std::vector<double> bins = { 200, 250, 280, 310, 340, 370, 400, 500, 600, 700 };
return bins;
}

virtual void CreateAll() override
{
FlatAnalyzerData::CreateAll();
pt_1(); eta_1(); pt_2(); eta_2(); mt_1(); iso_tau1(); iso_tau2();
}
};

class FlatAnalyzerData_tautau_other_tag : public FlatAnalyzerData_tautau {
public:
TH1D_ENTRY_CUSTOM_EX(m_sv, M_tt_Bins(), "M_{#tau#tau} [GeV]", "dN/dm_{#tau#tau} [1/GeV]", false, 1.3, true, true)

explicit FlatAnalyzerData_tautau_other_tag(bool _fill_all) : FlatAnalyzerData_tautau(_fill_all) {}

FlatAnalyzerData_tautau_other_tag(std::shared_ptr<TFile> outputFile, const std::string& directoryName, bool fill_all)
: FlatAnalyzerData_tautau(outputFile, directoryName, fill_all) {}

virtual void Fill(const FlatEventInfo& eventInfo, double weight) override
{
FlatAnalyzerData_tautau::Fill(eventInfo, weight);
m_sv().Fill(eventInfo.event->m_sv_MC, weight);
}

virtual void CreateAll() override
{
FlatAnalyzerData_tautau::CreateAll();
m_sv();
}
};


class FlatAnalyzerData_tautau_2tag : public FlatAnalyzerData_tautau {
public:
TH1D_ENTRY_CUSTOM_EX(m_sv, M_tt_Bins(), "M_{#tau#tau} [GeV]", "dN/dm_{#tau#tau} [1/GeV]", false, 1.7, true, true)

explicit FlatAnalyzerData_tautau_2tag(bool _fill_all) : FlatAnalyzerData_tautau(_fill_all) {}

FlatAnalyzerData_tautau_2tag(std::shared_ptr<TFile> outputFile, const std::string& directoryName, bool fill_all)
: FlatAnalyzerData_tautau(outputFile, directoryName, fill_all) {}

virtual void Fill(const FlatEventInfo& eventInfo, double weight) override
{
FlatAnalyzerData_tautau::Fill(eventInfo, weight);
m_sv().Fill(eventInfo.event->m_sv_MC, weight);
}

virtual const std::vector<double>& M_tt_Bins() const override
{
static const std::vector<double> bins = { 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 250, 300, 350 };
return bins;
}

virtual void CreateAll() override
{
FlatAnalyzerData_tautau::CreateAll();
m_sv();
}
};

} // namespace analysis
Loading

0 comments on commit 7a59027

Please sign in to comment.