-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- 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
Showing
179 changed files
with
1,296 additions
and
770 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]>, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]>, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]>, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]>, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]>, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]>, | ||
|
@@ -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) | ||
|
@@ -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); | ||
|
@@ -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) | ||
{ | ||
|
@@ -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) {} | ||
|
||
|
@@ -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); | ||
|
@@ -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 { | ||
|
@@ -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) {} | ||
|
||
|
@@ -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 |
Oops, something went wrong.