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
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);
56 m_sublead_subjet_phiResolution->Fill(dphi, weight);
57
58 }
59
60}
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