ATLAS Offline Software
PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "ResolutionPlots.h"
8 
9 namespace DiTau{
10 
11  ResolutionPlots::ResolutionPlots(PlotBase *pParent, const std::string& sDir, const std::string& sDiTauJetContainerName):
12  PlotBase(pParent, sDir),
13  m_sDiTauJetContainerName{sDiTauJetContainerName} {}
14 
16 
17 
19  m_lead_subjet_ptResolution = Book1D("lead_subjet_ptResolution",m_sDiTauJetContainerName + " lead subjet ptResolution; lead subjet pt(TauReco)/pt(visTauTruth); # Part",100,0.5,1.5);
20  m_lead_subjet_etaResolution = Book1D("lead_subjet_etaResolution",m_sDiTauJetContainerName + " lead subjet etaResolution; lead subjet eta(TauReco) - eta(visTauTruth); # Part",100,-0.1,0.1);
21  m_lead_subjet_phiResolution = Book1D("lead_subjet_phiResolution",m_sDiTauJetContainerName + " lead subjet phiResolution; lead subjet phi(TauReco) - phi(visTauTruth); # Part",100,-0.1,0.1);
22 
23  m_sublead_subjet_ptResolution = Book1D("sublead_subjet_ptResolution",m_sDiTauJetContainerName + " sublead subjet ptResolution; sublead subjet pt(TauReco)/pt(visTauTruth); # Part",100,0.5,1.5);
24  m_sublead_subjet_etaResolution = Book1D("sublead_subjet_etaResolution",m_sDiTauJetContainerName + " sublead subjet etaResolution; sublead subjet eta(TauReco) - eta(visTauTruth); # Part",100,-0.1,0.1);
25  m_sublead_subjet_phiResolution = Book1D("sublead_subjet_phiResolution",m_sDiTauJetContainerName + " sublead subjet phiResolution; sublead subjet phi(TauReco) - phi(visTauTruth); # Part",100,-0.1,0.1);
26 
27  }
28 
29  void ResolutionPlots::fill(const xAOD::DiTauJet& ditau, float weight) {
30 
31  static const SG::ConstAccessor<float> acc_lead_subjet_ptvis("TruthVisLeadPt");
32  static const SG::ConstAccessor<float> acc_lead_subjet_etavis("TruthVisLeadEta");
33  static const SG::ConstAccessor<float> acc_lead_subjet_phivis("TruthVisLeadPhi");
34 
35  static const SG::ConstAccessor<float> acc_sublead_subjet_ptvis("TruthVisSubleadPt");
36  static const SG::ConstAccessor<float> acc_sublead_subjet_etavis("TruthVisSubleadEta");
37  static const SG::ConstAccessor<float> acc_sublead_subjet_phivis("TruthVisSubleadPhi");
38 
39  // fill histograms for the leading subjet
40  float ptratio = -999;
41  float pt = acc_lead_subjet_ptvis(ditau);
42  if(pt>0.) ptratio = ditau.subjetPt(0)/pt;
43  float dphi = xAOD::P4Helpers::deltaPhi(ditau.subjetPhi(0),acc_lead_subjet_phivis(ditau));
44 
45  m_lead_subjet_ptResolution->Fill(ptratio, weight);
46  m_lead_subjet_etaResolution->Fill(ditau.subjetEta(0) - acc_lead_subjet_etavis(ditau), weight);
47  m_lead_subjet_phiResolution->Fill(dphi, weight);
48 
49  // fill histograms for the subleading subjet
50  pt = acc_sublead_subjet_ptvis(ditau);
51  if(pt>0.) ptratio = ditau.subjetPt(1)/pt;
52  dphi = xAOD::P4Helpers::deltaPhi(ditau.subjetPhi(1),acc_sublead_subjet_etavis(ditau));
53 
54  m_sublead_subjet_ptResolution->Fill(ptratio, weight);
55  m_sublead_subjet_etaResolution->Fill(ditau.subjetEta(1) - acc_sublead_subjet_etavis(ditau), weight);
57 
58  }
59 
60 }
PlotBase
Definition: PlotBase.h:34
ResolutionPlots.h
DiTau::ResolutionPlots::m_sDiTauJetContainerName
std::string m_sDiTauJetContainerName
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.h:31
xAODP4Helpers.h
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:57
DiTau::ResolutionPlots::m_sublead_subjet_etaResolution
TH1 * m_sublead_subjet_etaResolution
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.h:25
xAOD::DiTauJet_v1::subjetPhi
float subjetPhi(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:111
test_pyathena.pt
pt
Definition: test_pyathena.py:11
xAOD::P4Helpers::deltaPhi
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
Definition: xAODP4Helpers.h:69
SG::ConstAccessor< float >
DiTau::ResolutionPlots::m_lead_subjet_ptResolution
TH1 * m_lead_subjet_ptResolution
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.h:20
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:190
PlotBase::Book1D
TH1D * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:94
DiTau::ResolutionPlots::~ResolutionPlots
virtual ~ResolutionPlots()
DiTau::ResolutionPlots::m_sublead_subjet_ptResolution
TH1 * m_sublead_subjet_ptResolution
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.h:24
DiTau::ResolutionPlots::initializePlots
void initializePlots()
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.cxx:18
DiTau::ResolutionPlots::m_lead_subjet_phiResolution
TH1 * m_lead_subjet_phiResolution
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.h:22
DiTau::ResolutionPlots::m_sublead_subjet_phiResolution
TH1 * m_sublead_subjet_phiResolution
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.h:26
DiTau
Definition: DiTauDQA/src/CorePlots.cxx:8
DiTau::ResolutionPlots::fill
void fill(const xAOD::DiTauJet &ditau, float weight)
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.cxx:29
xAOD::DiTauJet_v1::subjetEta
float subjetEta(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:101
xAOD::DiTauJet_v1
Definition: DiTauJet_v1.h:31
DiTau::ResolutionPlots::ResolutionPlots
ResolutionPlots(PlotBase *pParent, const std::string &sDir, const std::string &sDiTauJetContainerName)
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.cxx:11
xAOD::DiTauJet_v1::subjetPt
float subjetPt(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:91
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
DiTau::ResolutionPlots::m_lead_subjet_etaResolution
TH1 * m_lead_subjet_etaResolution
Definition: PhysicsAnalysis/TauID/DiTauDQA/src/ResolutionPlots.h:21