ATLAS Offline Software
Loading...
Searching...
No Matches
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
9namespace 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 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);
17 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);
18 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);
19
20 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);
21 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);
22 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);
23
24 }
25
26 void ResolutionPlots::fill(const xAOD::DiTauJet& ditau, float weight) {
27
28 static const SG::ConstAccessor<float> acc_lead_subjet_ptvis("TruthVisLeadPt");
29 static const SG::ConstAccessor<float> acc_lead_subjet_etavis("TruthVisLeadEta");
30 static const SG::ConstAccessor<float> acc_lead_subjet_phivis("TruthVisLeadPhi");
31
32 static const SG::ConstAccessor<float> acc_sublead_subjet_ptvis("TruthVisSubleadPt");
33 static const SG::ConstAccessor<float> acc_sublead_subjet_etavis("TruthVisSubleadEta");
34 static const SG::ConstAccessor<float> acc_sublead_subjet_phivis("TruthVisSubleadPhi");
35
36 // fill histograms for the leading subjet
37 float ptratio = -999;
38 float pt = acc_lead_subjet_ptvis(ditau);
39 if(pt>0.) ptratio = ditau.subjetPt(0)/pt;
40 float dphi = xAOD::P4Helpers::deltaPhi(ditau.subjetPhi(0),acc_lead_subjet_phivis(ditau));
41
42 m_lead_subjet_ptResolution->Fill(ptratio, weight);
43 m_lead_subjet_etaResolution->Fill(ditau.subjetEta(0) - acc_lead_subjet_etavis(ditau), weight);
44 m_lead_subjet_phiResolution->Fill(dphi, weight);
45
46 // fill histograms for the subleading subjet
47 pt = acc_sublead_subjet_ptvis(ditau);
48 if(pt>0.) ptratio = ditau.subjetPt(1)/pt;
49 dphi = xAOD::P4Helpers::deltaPhi(ditau.subjetPhi(1),acc_sublead_subjet_etavis(ditau));
50
51 m_sublead_subjet_ptResolution->Fill(ptratio, weight);
52 m_sublead_subjet_etaResolution->Fill(ditau.subjetEta(1) - acc_sublead_subjet_etavis(ditau), weight);
53 m_sublead_subjet_phiResolution->Fill(dphi, weight);
54
55 }
56
57}
Helper class to provide constant type-safe access to aux data.
void fill(const xAOD::DiTauJet &ditau, float weight)
ResolutionPlots(PlotBase *pParent, const std::string &sDir, const std::string &sDiTauJetContainerName)
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
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
Helper class to provide constant type-safe access to aux data.
float subjetEta(unsigned int numSubjet) const
float subjetPt(unsigned int numSubjet) const
float subjetPhi(unsigned int numSubjet) const
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
DiTauJet_v1 DiTauJet
Definition of the current version.
Definition DiTauJet.h:17