ATLAS Offline Software
Loading...
Searching...
No Matches
GeneralTauPlots.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
6#include "GeneralTauPlots.h"
8
9namespace Tau{
10
11GeneralTauPlots::GeneralTauPlots(PlotBase* pParent, const std::string& sDir, const std::string& sTauJetContainerName):
12 PlotBase(pParent, sDir),
13 m_oTauKinematicPlots(this, "", sTauJetContainerName),
14 m_sTauJetContainerName(sTauJetContainerName)
15{
16}
17
21
23
24 m_tauCharge = Book1D("Charge",m_sTauJetContainerName + " Tau charge; charge; # Taus",7,-3.,4.);
25 m_tauNChargedTracks = Book1D("NChargedTracks", m_sTauJetContainerName + " Tau n charged tracks; nCharged; # Taus",10,0.,10.);
26 m_tauNIsolatedTracks = Book1D("NIsolatedTracks", m_sTauJetContainerName + " Tau n isolated tracks; nIsolated; # Taus",10,0.,10.);
27 m_tauNCoreTracks = Book1D("NCoreTracks",m_sTauJetContainerName + " Tau n core tracks; nCore; # Taus",15,0.,15.);
28 m_tauNWideTracks = Book1D("NWideTracks",m_sTauJetContainerName + " Tau n wide tracks; nWide; # Taus",20,0.,20.);
29 m_ptHighPt = Book1D("ptHighPt", m_sTauJetContainerName+" HighPt"+"; pt; # Taus",20, 0.0, 1500.0);
30 m_RNNEleScore = Book1D("RNNEleScore", m_sTauJetContainerName+" RNNEleScore;RNNEleScore;# Tau", 50,0.,1.);
31 m_RNNEleScoreSigTrans = Book1D("RNNEleScoreSigTrans", m_sTauJetContainerName+" RNNEleScoreSigTrans;RNNEleScoreSigTrans;"+"# Tau", 50,0.,1.);
32 m_RNNJetScore = Book1D("RNNJetScore", m_sTauJetContainerName+" RNNJetScore;RNNJetScore;# Tau", 50,0.,1.);
33 m_RNNJetScoreSigTrans = Book1D("RNNJetScoreSigTrans", m_sTauJetContainerName+" RNNJetScoreSigTrans;RNNJetScoreSigTrans;"+"# Tau", 50,0.,1.);
34 m_GNTauScore = Book1D("GNTauScore", m_sTauJetContainerName+" GNTauScore;GNTauScore;# Tau", 50,0.,1.);
35 m_GNTauScoreSigTrans = Book1D("GNTauScoreSigTrans", m_sTauJetContainerName+" GNTauScoreSigTrans;GNTauScoreSigTrans;"+"# Tau", 50,0.,1.);
36 m_ptRNNLoose = Book1D("ptRNNSigLoose",m_sTauJetContainerName+" RNNSigLoose; pt; # Taus", 20, 0.0, 150.0);
37 m_ptRNNLooseHighPt = Book1D("ptRNNSigLooseHighPt", m_sTauJetContainerName+" RNNSigLooseHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
38 m_ptRNNMedium = Book1D("ptRNNSigMedium",m_sTauJetContainerName+" RNNSigMedium; pt; # Taus", 20, 0.0, 150.0);
39 m_ptRNNMediumHighPt = Book1D("ptRNNSigMediumHighPt", m_sTauJetContainerName+" RNNSigMediumHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
40 m_ptRNNTight = Book1D("ptRNNSigTight",m_sTauJetContainerName+" RNNSigTight; pt; # Taus", 20, 0.0, 150.0);
41 m_ptRNNTightHighPt = Book1D("ptRNNSigTightHighPt", m_sTauJetContainerName+" RNNSigTightHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
42 m_ptGNTauLoose = Book1D("ptGNTauSigLoose",m_sTauJetContainerName+" GNTauSigLoose; pt; # Taus", 20, 0.0, 150.0);
43 m_ptGNTauLooseHighPt = Book1D("ptGNTauSigLooseHighPt", m_sTauJetContainerName+" GNTauSigLooseHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
44 m_ptGNTauMedium = Book1D("ptGNTauSigMedium",m_sTauJetContainerName+" GNTauSigMedium; pt; # Taus", 20, 0.0, 150.0);
45 m_ptGNTauMediumHighPt = Book1D("ptGNTauSigMediumHighPt", m_sTauJetContainerName+" GNTauSigMediumHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
46 m_ptGNTauTight = Book1D("ptGNTauSigTight",m_sTauJetContainerName+" GNTauSigTight; pt; # Taus", 20, 0.0, 150.0);
47 m_ptGNTauTightHighPt = Book1D("ptGNTauSigTightHighPt", m_sTauJetContainerName+" GNTauSigTightHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
48
49
50
51}
52
53void GeneralTauPlots::fill(const xAOD::TauJet& tau, float weight) {
54 m_oTauKinematicPlots.fill(tau, weight);
55 m_tauCharge->Fill(tau.charge(), weight);
56 m_tauNChargedTracks->Fill(tau.nTracks(), weight);
60 m_ptHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
61
62 static const SG::ConstAccessor<float> acc_RNNEleScore("RNNEleScore");
63 if ( acc_RNNEleScore.isAvailable(tau) ) {
65 if ( rnnScore > -2.0 ) m_RNNEleScore->Fill(rnnScore, weight);
66 }
67 static const SG::ConstAccessor<float> acc_RNNEleScoreSigTrans("RNNEleScoreSigTrans_v1");
68 if ( acc_RNNEleScoreSigTrans.isAvailable(tau) ) {
69 float rnnScore = acc_RNNEleScoreSigTrans(tau);
70 m_RNNEleScoreSigTrans->Fill(rnnScore, weight);
71 }
72 static const SG::ConstAccessor<float> acc_RNNJetScore("RNNJetScore");
73 if ( acc_RNNJetScore.isAvailable(tau) ) {
75 if ( rnnScore > -2.0 ) m_RNNJetScore->Fill(rnnScore, weight);
76 }
77 static const SG::ConstAccessor<float> acc_RNNJetScoreSigTrans("RNNJetScoreSigTrans");
78 if ( acc_RNNJetScoreSigTrans.isAvailable(tau) ) {
80 m_RNNJetScoreSigTrans->Fill(rnnScore, weight);
81 }
82 static const SG::ConstAccessor<float> acc_GNTauScore("GNTauScore_v0prune");
83 if ( acc_GNTauScore.isAvailable(tau) ) {
84 float gntauScore = acc_GNTauScore(tau);
85 if ( gntauScore > -2.0 ) m_GNTauScore->Fill(gntauScore, weight);
86 }
87 static const SG::ConstAccessor<float> acc_GNTauScoreSigTrans("GNTauScoreSigTrans_v0prune");
88 if ( acc_GNTauScoreSigTrans.isAvailable(tau) ) {
89 float gntauScoreSigTrans = acc_GNTauScoreSigTrans(tau);
90 if ( gntauScoreSigTrans > -2.0 ) m_GNTauScoreSigTrans->Fill(gntauScoreSigTrans, weight);
91 }
92
94 m_ptRNNLoose ->Fill(tau.pt()/Athena::Units::GeV, weight);
95 m_ptRNNLooseHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
96 }
98 m_ptRNNMedium ->Fill(tau.pt()/Athena::Units::GeV, weight);
99 m_ptRNNMediumHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
100 }
102 m_ptRNNTight ->Fill(tau.pt()/Athena::Units::GeV, weight);
103 m_ptRNNTightHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
104 }
105
106 static const SG::ConstAccessor<char> acc_GNTauL("GNTauL_v0prune");
107 if( acc_GNTauL.isAvailable(tau) && acc_GNTauL(tau)) {
108 m_ptGNTauLoose ->Fill(tau.pt()/Athena::Units::GeV, weight);
109 m_ptGNTauLooseHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
110 }
111 static const SG::ConstAccessor<char> acc_GNTauM("GNTauM_v0prune");
112 if( acc_GNTauM.isAvailable(tau) && acc_GNTauM(tau)) {
113 m_ptGNTauMedium ->Fill(tau.pt()/Athena::Units::GeV, weight);
114 m_ptGNTauMediumHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
115 }
116 static const SG::ConstAccessor<char> acc_GNTauT("GNTauT_v0prune");
117 if( acc_GNTauT.isAvailable(tau) && acc_GNTauT(tau)) {
118 m_ptGNTauTight ->Fill(tau.pt()/Athena::Units::GeV, weight);
119 m_ptGNTauTightHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
120 }
121}
122
123
124}
Wrapper to avoid constant divisions when using units.
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.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Tau::TauKinematicPlots m_oTauKinematicPlots
std::string m_sTauJetContainerName
void fill(const xAOD::TauJet &tau, float weight)
GeneralTauPlots(PlotBase *pParent, const std::string &sDir, const std::string &sTauJetContainerName)
float charge() const
virtual double pt() const
The transverse momentum ( ) of the particle.
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
@ RNNEleScore
RNN score for Ele rejection (not transformed)
Definition TauDefs.h:94
@ RNNJetScore
RNN score for Jet rejection (not transformed)
Definition TauDefs.h:90
@ RNNJetScoreSigTrans
RNN score which is signal transformed/flattened.
Definition TauDefs.h:92
TauJet_v3 TauJet
Definition of the current "tau version".