ATLAS Offline Software
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 #include "AthenaKernel/Units.h"
9 
10 namespace Tau{
11 
12 GeneralTauPlots::GeneralTauPlots(PlotBase* pParent, const std::string& sDir, const std::string& sTauJetContainerName):
13  PlotBase(pParent, sDir),
14  m_oTauKinematicPlots(this, "", sTauJetContainerName),
15  m_sTauJetContainerName(sTauJetContainerName)
16 {
17 }
18 
20 {
21 }
22 
24 
25  m_tauCharge = Book1D("Charge",m_sTauJetContainerName + " Tau charge; charge; # Taus",7,-3.,4.);
26  m_tauNChargedTracks = Book1D("NChargedTracks", m_sTauJetContainerName + " Tau n charged tracks; nCharged; # Taus",10,0.,10.);
27  m_tauNIsolatedTracks = Book1D("NIsolatedTracks", m_sTauJetContainerName + " Tau n isolated tracks; nIsolated; # Taus",10,0.,10.);
28  m_tauNCoreTracks = Book1D("NCoreTracks",m_sTauJetContainerName + " Tau n core tracks; nCore; # Taus",15,0.,15.);
29  m_tauNWideTracks = Book1D("NWideTracks",m_sTauJetContainerName + " Tau n wide tracks; nWide; # Taus",20,0.,20.);
30  m_ptHighPt = Book1D("ptHighPt", m_sTauJetContainerName+" HighPt"+"; pt; # Taus",20, 0.0, 1500.0);
31  m_RNNEleScore = Book1D("RNNEleScore", m_sTauJetContainerName+" RNNEleScore;RNNEleScore;# Tau", 50,0.,1.);
32  m_RNNEleScoreSigTrans = Book1D("RNNEleScoreSigTrans", m_sTauJetContainerName+" RNNEleScoreSigTrans;RNNEleScoreSigTrans;"+"# Tau", 50,0.,1.);
33  m_RNNJetScore = Book1D("RNNJetScore", m_sTauJetContainerName+" RNNJetScore;RNNJetScore;# Tau", 50,0.,1.);
34  m_RNNJetScoreSigTrans = Book1D("RNNJetScoreSigTrans", m_sTauJetContainerName+" RNNJetScoreSigTrans;RNNJetScoreSigTrans;"+"# Tau", 50,0.,1.);
35  m_GNTauScore = Book1D("GNTauScore", m_sTauJetContainerName+" GNTauScore;GNTauScore;# Tau", 50,0.,1.);
36  m_GNTauScoreSigTrans = Book1D("GNTauScoreSigTrans", m_sTauJetContainerName+" GNTauScoreSigTrans;GNTauScoreSigTrans;"+"# Tau", 50,0.,1.);
37  m_ptRNNLoose = Book1D("ptRNNSigLoose",m_sTauJetContainerName+" RNNSigLoose; pt; # Taus", 20, 0.0, 150.0);
38  m_ptRNNLooseHighPt = Book1D("ptRNNSigLooseHighPt", m_sTauJetContainerName+" RNNSigLooseHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
39  m_ptRNNMedium = Book1D("ptRNNSigMedium",m_sTauJetContainerName+" RNNSigMedium; pt; # Taus", 20, 0.0, 150.0);
40  m_ptRNNMediumHighPt = Book1D("ptRNNSigMediumHighPt", m_sTauJetContainerName+" RNNSigMediumHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
41  m_ptRNNTight = Book1D("ptRNNSigTight",m_sTauJetContainerName+" RNNSigTight; pt; # Taus", 20, 0.0, 150.0);
42  m_ptRNNTightHighPt = Book1D("ptRNNSigTightHighPt", m_sTauJetContainerName+" RNNSigTightHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
43  m_ptGNTauLoose = Book1D("ptGNTauSigLoose",m_sTauJetContainerName+" GNTauSigLoose; pt; # Taus", 20, 0.0, 150.0);
44  m_ptGNTauLooseHighPt = Book1D("ptGNTauSigLooseHighPt", m_sTauJetContainerName+" GNTauSigLooseHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
45  m_ptGNTauMedium = Book1D("ptGNTauSigMedium",m_sTauJetContainerName+" GNTauSigMedium; pt; # Taus", 20, 0.0, 150.0);
46  m_ptGNTauMediumHighPt = Book1D("ptGNTauSigMediumHighPt", m_sTauJetContainerName+" GNTauSigMediumHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
47  m_ptGNTauTight = Book1D("ptGNTauSigTight",m_sTauJetContainerName+" GNTauSigTight; pt; # Taus", 20, 0.0, 150.0);
48  m_ptGNTauTightHighPt = Book1D("ptGNTauSigTightHighPt", m_sTauJetContainerName+" GNTauSigTightHighPt; pt"+"; # Taus",20, 0.0, 1500.0);
49 
50 
51 
52 }
53 
54 void GeneralTauPlots::fill(const xAOD::TauJet& tau, float weight) {
56  m_tauCharge->Fill(tau.charge(), weight);
57  m_tauNChargedTracks->Fill(tau.nTracks(), weight);
61  m_ptHighPt->Fill(tau.pt()/Athena::Units::GeV, weight);
62 
63  static const SG::ConstAccessor<float> acc_RNNEleScore("RNNEleScore");
64  if ( acc_RNNEleScore.isAvailable(tau) ) {
66  if ( rnnScore > -2.0 ) m_RNNEleScore->Fill(rnnScore, weight);
67  }
68  static const SG::ConstAccessor<float> acc_RNNEleScoreSigTrans("RNNEleScoreSigTrans_v1");
69  if ( acc_RNNEleScoreSigTrans.isAvailable(tau) ) {
70  float rnnScore = acc_RNNEleScoreSigTrans(tau);
71  m_RNNEleScoreSigTrans->Fill(rnnScore, weight);
72  }
73  static const SG::ConstAccessor<float> acc_RNNJetScore("RNNJetScore");
74  if ( acc_RNNJetScore.isAvailable(tau) ) {
76  if ( rnnScore > -2.0 ) m_RNNJetScore->Fill(rnnScore, weight);
77  }
78  static const SG::ConstAccessor<float> acc_RNNJetScoreSigTrans("RNNJetScoreSigTrans");
79  if ( acc_RNNJetScoreSigTrans.isAvailable(tau) ) {
81  m_RNNJetScoreSigTrans->Fill(rnnScore, weight);
82  }
83  static const SG::ConstAccessor<float> acc_GNTauScore("GNTauScore_v0prune");
84  if ( acc_GNTauScore.isAvailable(tau) ) {
85  float gntauScore = acc_GNTauScore(tau);
86  if ( gntauScore > -2.0 ) m_GNTauScore->Fill(gntauScore, weight);
87  }
88  static const SG::ConstAccessor<float> acc_GNTauScoreSigTrans("GNTauScoreSigTrans_v0prune");
89  if ( acc_GNTauScoreSigTrans.isAvailable(tau) ) {
90  float gntauScoreSigTrans = acc_GNTauScoreSigTrans(tau);
91  if ( gntauScoreSigTrans > -2.0 ) m_GNTauScoreSigTrans->Fill(gntauScoreSigTrans, weight);
92  }
93 
97  }
101  }
103  m_ptRNNTight ->Fill(tau.pt()/Athena::Units::GeV, weight);
105  }
106 
107  static const SG::ConstAccessor<char> acc_GNTauL("GNTauL_v0prune");
108  if( acc_GNTauL.isAvailable(tau) && acc_GNTauL(tau)) {
111  }
112  static const SG::ConstAccessor<char> acc_GNTauM("GNTauM_v0prune");
113  if( acc_GNTauM.isAvailable(tau) && acc_GNTauM(tau)) {
116  }
117  static const SG::ConstAccessor<char> acc_GNTauT("GNTauT_v0prune");
118  if( acc_GNTauT.isAvailable(tau) && acc_GNTauT(tau)) {
121  }
122 }
123 
124 
125 }
Tau::GeneralTauPlots::m_ptGNTauMedium
TH1 * m_ptGNTauMedium
Definition: GeneralTauPlots.h:43
Tau::GeneralTauPlots::m_RNNEleScore
TH1 * m_RNNEleScore
Definition: GeneralTauPlots.h:30
xAOD::TauJetParameters::RNNJetScoreSigTrans
@ RNNJetScoreSigTrans
RNN score which is signal transformed/flattened.
Definition: TauDefs.h:92
Tau::GeneralTauPlots::m_ptRNNMediumHighPt
TH1 * m_ptRNNMediumHighPt
Definition: GeneralTauPlots.h:40
Tau::GeneralTauPlots::m_oTauKinematicPlots
Tau::TauKinematicPlots m_oTauKinematicPlots
Definition: GeneralTauPlots.h:21
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:18
PlotBase
Definition: PlotBase.h:34
xAOD::TauJet_v3::discriminant
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
Definition: TauJet_v3.cxx:225
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:57
Tau::GeneralTauPlots::m_ptGNTauLoose
TH1 * m_ptGNTauLoose
Definition: GeneralTauPlots.h:42
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition: TauJet_v3.cxx:488
Tau::GeneralTauPlots::m_ptGNTauTight
TH1 * m_ptGNTauTight
Definition: GeneralTauPlots.h:44
Tau::GeneralTauPlots::m_tauCharge
TH1 * m_tauCharge
Definition: GeneralTauPlots.h:22
Tau
Definition: TauDQA/src/CorePlots.cxx:13
SG::ConstAccessor< float >
Tau::GeneralTauPlots::m_ptGNTauTightHighPt
TH1 * m_ptGNTauTightHighPt
Definition: GeneralTauPlots.h:47
Tau::GeneralTauPlots::m_ptGNTauLooseHighPt
TH1 * m_ptGNTauLooseHighPt
Definition: GeneralTauPlots.h:45
Tau::GeneralTauPlots::m_RNNEleScoreSigTrans
TH1 * m_RNNEleScoreSigTrans
Definition: GeneralTauPlots.h:31
Tau::GeneralTauPlots::m_ptRNNMedium
TH1 * m_ptRNNMedium
Definition: GeneralTauPlots.h:37
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
Tau::GeneralTauPlots::m_RNNJetScore
TH1 * m_RNNJetScore
Definition: GeneralTauPlots.h:32
xAOD::TauJet_v3::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
Tau::GeneralTauPlots::m_GNTauScoreSigTrans
TH1 * m_GNTauScoreSigTrans
Definition: GeneralTauPlots.h:35
Tau::GeneralTauPlots::m_tauNWideTracks
TH1 * m_tauNWideTracks
Definition: GeneralTauPlots.h:26
Tau::GeneralTauPlots::m_ptGNTauMediumHighPt
TH1 * m_ptGNTauMediumHighPt
Definition: GeneralTauPlots.h:46
Tau::GeneralTauPlots::~GeneralTauPlots
virtual ~GeneralTauPlots()
Definition: GeneralTauPlots.cxx:19
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
Tau::GeneralTauPlots::m_tauNCoreTracks
TH1 * m_tauNCoreTracks
Definition: GeneralTauPlots.h:25
Tau::GeneralTauPlots::initializePlots
void initializePlots()
Definition: GeneralTauPlots.cxx:23
xAOD::TauJetParameters::coreTrack
@ coreTrack
Definition: TauDefs.h:403
Tau::GeneralTauPlots::m_ptRNNLoose
TH1 * m_ptRNNLoose
Definition: GeneralTauPlots.h:36
Tau::GeneralTauPlots::GeneralTauPlots
GeneralTauPlots(PlotBase *pParent, const std::string &sDir, const std::string &sTauJetContainerName)
Definition: GeneralTauPlots.cxx:12
Tau::GeneralTauPlots::m_ptRNNTightHighPt
TH1 * m_ptRNNTightHighPt
Definition: GeneralTauPlots.h:41
xAOD::TauJetParameters::classifiedIsolation
@ classifiedIsolation
Definition: TauDefs.h:407
Tau::GeneralTauPlots::m_ptRNNLooseHighPt
TH1 * m_ptRNNLooseHighPt
Definition: GeneralTauPlots.h:39
xAOD::TauJetParameters::JetRNNSigTight
@ JetRNNSigTight
Definition: TauDefs.h:148
Tau::GeneralTauPlots::m_ptRNNTight
TH1 * m_ptRNNTight
Definition: GeneralTauPlots.h:38
Tau::GeneralTauPlots::m_ptHighPt
TH1 * m_ptHighPt
Definition: GeneralTauPlots.h:27
Units.h
Wrapper to avoid constant divisions when using units.
xAOD::TauJetParameters::RNNJetScore
@ RNNJetScore
RNN score for Jet rejection (not transformed)
Definition: TauDefs.h:90
xAOD::TauJetParameters::JetRNNSigMedium
@ JetRNNSigMedium
Definition: TauDefs.h:147
xAOD::TauJet_v3::isTau
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
Definition: TauJet_v3.cxx:245
Tau::GeneralTauPlots::m_tauNChargedTracks
TH1 * m_tauNChargedTracks
Definition: GeneralTauPlots.h:23
Tau::GeneralTauPlots::m_GNTauScore
TH1 * m_GNTauScore
Definition: GeneralTauPlots.h:34
xAOD::TauJet_v3::charge
float charge() const
Tau::GeneralTauPlots::m_sTauJetContainerName
std::string m_sTauJetContainerName
Definition: GeneralTauPlots.h:51
xAOD::TauJetParameters::RNNEleScore
@ RNNEleScore
RNN score for Ele rejection (not transformed)
Definition: TauDefs.h:94
xAOD::TauJetParameters::wideTrack
@ wideTrack
Definition: TauDefs.h:404
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
GeneralTauPlots.h
Tau::GeneralTauPlots::fill
void fill(const xAOD::TauJet &tau, float weight)
Definition: GeneralTauPlots.cxx:54
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
Tau::TauKinematicPlots::fill
void fill(const xAOD::IParticle &prt, float weight)
Definition: TauKinematicPlots.cxx:32
Tau::GeneralTauPlots::m_tauNIsolatedTracks
TH1 * m_tauNIsolatedTracks
Definition: GeneralTauPlots.h:24
Tau::GeneralTauPlots::m_RNNJetScoreSigTrans
TH1 * m_RNNJetScoreSigTrans
Definition: GeneralTauPlots.h:33
xAOD::TauJetParameters::JetRNNSigLoose
@ JetRNNSigLoose
Definition: TauDefs.h:146