ATLAS Offline Software
Loading...
Searching...
No Matches
PhysicsAnalysis/TauID/TauDQA/src/EfficiencyPlots.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 "EfficiencyPlots.h"
7
8namespace Tau{
9
10 EfficiencyPlots::EfficiencyPlots(PlotBase* pParent, const std::string& sDir, std::string sTauJetContainerName):
11 PlotBase(pParent, sDir),
12 m_sTauJetContainerName(std::move(sTauJetContainerName))
13 {
14 }
15
19
21 {
22 m_eff_pt_jetRNNloose = BookTProfile("Eff_Pt_jetRNNloose"," Matched Tau loose RNN eff in pt; pt; eff",20, 0., 150.0);
23 m_eff_pt_jetRNNmed = BookTProfile("Eff_Pt_jetRNNmed","Matched Tau med RNN eff in pt; pt; eff", 20, 0.0, 150.0);
24 m_eff_pt_jetRNNtight = BookTProfile("Eff_Pt_jetRNNtight","Matched Tau tight RNN eff in pt; pt; eff", 20, 0.0, 150.0);
25 m_eff_pt_jetRNNlooseHighPt = BookTProfile("Eff_Pt_jetRNNlooseHightPt"," Matched Tau loose RNN eff in pt; pt; eff", 20, 0.0, 1500.0);
26 m_eff_pt_jetRNNmedHighPt = BookTProfile("Eff_Pt_jetRNNmedHightPt","Matched Tau med RNN eff in pt; pt; eff", 20, 0.0, 1500.0);
27 m_eff_pt_jetRNNtightHighPt = BookTProfile("Eff_Pt_jetRNNtightHightPt","Matched Tau tight RNN eff in pt; pt; eff", 20, 0.0, 1500.0);
28 m_eff_jetRNNloose = BookTProfile("Eff_jetRNNloose"," Matched Tau loose RNN eff total; bin; eff",3,-1.5,1.5);
29 m_eff_jetRNNmed = BookTProfile("Eff_jetRNNmed","Matched Tau med RNN eff total; bin; eff",3,-1.5,1.5);
30 m_eff_jetRNNtight = BookTProfile("Eff_jetRNNtight","Matched Tau tight RNN eff total; bin; eff",3,-1.5,1.5);
31
32 m_eff_pt_jetGNTauloose = BookTProfile("Eff_Pt_jetGNTauloose"," Matched Tau loose GNTau eff in pt; pt; eff", 20, 0., 150.0);
33 m_eff_pt_jetGNTaumed = BookTProfile("Eff_Pt_jetGNTaumed","Matched Tau med GNTau eff in pt; pt; eff", 20, 0.0, 150.0);
34 m_eff_pt_jetGNTautight = BookTProfile("Eff_Pt_jetGNTautight","Matched Tau tight GNTau eff in pt; pt; eff", 20, 0.0, 150.0);
35 m_eff_pt_jetGNTaulooseHighPt = BookTProfile("Eff_Pt_jetGNTaulooseHightPt"," Matched Tau loose GNTau eff in pt; pt; eff", 20, 0.0, 1500.0);
36 m_eff_pt_jetGNTaumedHighPt = BookTProfile("Eff_Pt_jetGNTaumedHightPt","Matched Tau med GNTau eff in pt; pt; eff", 20, 0.0, 1500.0);
37 m_eff_pt_jetGNTautightHighPt = BookTProfile("Eff_Pt_jetGNTautightHightPt","Matched Tau tight GNTau eff in pt; pt; eff", 20, 0.0, 1500.0);
38 m_eff_jetGNTauloose = BookTProfile("Eff_jetGNTauloose"," Matched Tau loose GNTau eff total; bin; eff",3,-1.5,1.5);
39 m_eff_jetGNTaumed = BookTProfile("Eff_jetGNTaumed","Matched Tau med GNTau eff total; bin; eff",3,-1.5,1.5);
40 m_eff_jetGNTautight = BookTProfile("Eff_jetGNTautight","Matched Tau tight GNTau eff total; bin; eff",3,-1.5,1.5);
41
42 m_eff_pt_eVetoloose = BookTProfile("Eff_Pt_eVetoloose"," loose eVeto eff in pt; pt; eff", 7, 0.0, 140.0);
43 m_eff_pt_eVetomed = BookTProfile("Eff_Pt_eVetomed"," med eVeto eff in pt; pt; eff", 7, 0.0, 140.0);
44 m_eff_pt_eVetotight = BookTProfile("Eff_Pt_eVetotight","tight eVeto eff in pt; pt; eff", 7, 0.0, 140.0);
45 m_eff_pt_eVetolooseHighPt = BookTProfile("Eff_Pt_eVetolooseHightPt"," loose eVeto eff in pt; pt; eff", 20, 0.0, 1500.0);
46 m_eff_pt_eVetomedHighPt = BookTProfile("Eff_Pt_eVetomedHightPt","med eVeto eff in pt; pt; eff", 20, 0.0, 1500.0);
47 m_eff_pt_eVetotightHighPt = BookTProfile("Eff_Pt_eVetotightHightPt","tight eVeto eff in pt; pt; eff", 20, 0.0, 1500.0);
48 m_eff_eta_eVetoloose = BookTProfile("Eff_Eta_eVetoloose"," loose eVeto eff in eta; eta; eff", 15, -3.0,3.0);
49 m_eff_eta_eVetomed = BookTProfile("Eff_Eta_eVetomed"," med eVeto eff in eta; eta; eff", 15, -3.0,3.0);
50 m_eff_eta_eVetotight = BookTProfile("Eff_Eta_eVetotight","tight eVeto eff in eta; eta; eff", 15, -3.0,3.0);
51 m_eff_eVetoloose = BookTProfile("Eff_eVetoloose"," loose eVeto eff total; bin; eff",3,-1.5,1.5);
52 m_eff_eVetomed = BookTProfile("Eff_eVetomed","med eVeto eff total; bin; eff",3,-1.5,1.5);
53 m_eff_eVetotight = BookTProfile("Eff_eVetotight","tight eVeto eff total; bin; eff",3,-1.5,1.5);
54
55 }
56
57 void EfficiencyPlots::fill(const xAOD::TauJet& tau, float weight)
58 {
60 m_eff_pt_jetRNNloose ->Fill(tau.pt()/Athena::Units::GeV, 1., weight);
61 m_eff_pt_jetRNNlooseHighPt->Fill(tau.pt()/Athena::Units::GeV, 1., weight);
62 m_eff_jetRNNloose ->Fill(0., 1., weight);
63 }
64 else {
65 m_eff_pt_jetRNNloose ->Fill(tau.pt()/Athena::Units::GeV, 0., weight);
66 m_eff_pt_jetRNNlooseHighPt->Fill(tau.pt()/Athena::Units::GeV, 0., weight);
67 m_eff_jetRNNloose ->Fill(0., 0., weight);
68 }
69
71 m_eff_pt_jetRNNmed ->Fill(tau.pt()/Athena::Units::GeV, 1., weight);
72 m_eff_pt_jetRNNmedHighPt->Fill(tau.pt()/Athena::Units::GeV, 1., weight);
73 m_eff_jetRNNmed ->Fill(0., 1., weight);
74 }
75 else {
76 m_eff_pt_jetRNNmed ->Fill(tau.pt()/Athena::Units::GeV, 0., weight);
77 m_eff_pt_jetRNNmedHighPt->Fill(tau.pt()/Athena::Units::GeV, 0., weight);
78 m_eff_jetRNNmed ->Fill(0., 0., weight);
79 }
80
82 m_eff_pt_jetRNNtight ->Fill(tau.pt()/Athena::Units::GeV, 1., weight);
83 m_eff_pt_jetRNNtightHighPt->Fill(tau.pt()/Athena::Units::GeV, 1., weight);
84 m_eff_jetRNNtight ->Fill(0., 1., weight);
85 }
86 else {
87 m_eff_pt_jetRNNtight ->Fill(tau.pt()/Athena::Units::GeV, 0., weight);
88 m_eff_pt_jetRNNtightHighPt->Fill(tau.pt()/Athena::Units::GeV, 0., weight);
89 m_eff_jetRNNtight ->Fill(0., 0., weight);
90 }
91
92
93 static const SG::ConstAccessor<char> acc_GNTauL("GNTauL_v0prune");
94 double pass_loose = acc_GNTauL.withDefault(tau,false);
95 m_eff_pt_jetGNTauloose->Fill(tau.pt()/Athena::Units::GeV, pass_loose, weight);
96 m_eff_pt_jetGNTaulooseHighPt->Fill(tau.pt()/Athena::Units::GeV, pass_loose, weight);
97 m_eff_jetGNTauloose->Fill(0.,pass_loose , weight);
98
99
100 static const SG::ConstAccessor<char> acc_GNTauM("GNTauM_v0prune");
101 double pass_medium = acc_GNTauM.withDefault(tau,false);
102 m_eff_pt_jetGNTaumed->Fill(tau.pt()/Athena::Units::GeV, pass_medium, weight);
103 m_eff_pt_jetGNTaumedHighPt->Fill(tau.pt()/Athena::Units::GeV, pass_medium, weight);
104 m_eff_jetGNTaumed->Fill(0., pass_medium, weight);
105
106 static const SG::ConstAccessor<char> acc_GNTauT("GNTauT_v0prune");
107 double pass_tight = acc_GNTauT.withDefault(tau,false);
108 m_eff_pt_jetGNTautight->Fill(tau.pt()/Athena::Units::GeV, pass_tight, weight);
109 m_eff_pt_jetGNTautightHighPt->Fill(tau.pt()/Athena::Units::GeV, pass_tight, weight);
110 m_eff_jetGNTautight->Fill(0., pass_tight, weight);
111
112
113 static const SG::ConstAccessor<char> acc_RNNEleLoose("EleRNNLoose_v1");
114 double pass_eVeto_loose = acc_RNNEleLoose.withDefault(tau,false);
115 m_eff_pt_eVetoloose->Fill(tau.pt()/Athena::Units::GeV, pass_eVeto_loose, weight);
116 m_eff_pt_eVetolooseHighPt->Fill(tau.pt()/Athena::Units::GeV, pass_eVeto_loose, weight);
117 m_eff_eVetoloose->Fill(0., pass_eVeto_loose, weight);
118 m_eff_eta_eVetoloose->Fill(tau.eta(), pass_eVeto_loose, weight);
119
120
121 static const SG::ConstAccessor<char> acc_RNNEleMedium("EleRNNMedium_v1");
122 double pass_eVeto_medium = acc_RNNEleMedium.withDefault(tau,false);
123 m_eff_pt_eVetomed->Fill(tau.pt()/Athena::Units::GeV, pass_eVeto_medium, weight);
124 m_eff_pt_eVetomedHighPt->Fill(tau.pt()/Athena::Units::GeV, pass_eVeto_medium, weight);
125 m_eff_eVetomed->Fill(0., pass_eVeto_medium, weight);
126 m_eff_eta_eVetomed->Fill(tau.eta(), pass_eVeto_medium, weight);
127
128 static const SG::ConstAccessor<char> acc_RNNEleTight("EleRNNTight_v1");
129 double pass_eVeto_tight = acc_RNNEleTight.withDefault(tau,false);
130 m_eff_pt_eVetotight->Fill(tau.pt()/Athena::Units::GeV, pass_eVeto_tight, weight);
131 m_eff_pt_eVetotightHighPt->Fill(tau.pt()/Athena::Units::GeV, pass_eVeto_tight, weight);
132 m_eff_eVetotight->Fill(0., pass_eVeto_tight, weight);
133 m_eff_eta_eVetotight->Fill(tau.eta(), pass_eVeto_tight, weight);
134
135 }
136
137
138}
Wrapper to avoid constant divisions when using units.
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
TProfile * BookTProfile(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir=true, bool useRMS=false)
Book a TProfile histogram.
Definition PlotBase.cxx:186
Helper class to provide constant type-safe access to aux data.
const_reference_type withDefault(const ELT &e, const T &deflt) const
Fetch the variable for one element, as a const reference, with a default.
void fill(const xAOD::TauJet &tau, float weight)
EfficiencyPlots(PlotBase *pParent, const std::string &sDir, std::string sTauJetContainerName)
virtual double pt() const
The transverse momentum ( ) of the particle.
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
virtual double eta() const
The pseudorapidity ( ) of the particle.
STL namespace.
TauJet_v3 TauJet
Definition of the current "tau version".