ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TauID
TauDQA
src
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
"
7
#include "
AthenaKernel/Units.h
"
8
9
namespace
Tau
{
10
11
GeneralTauPlots::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
18
void
GeneralTauPlots::initializePlots
(){
19
20
m_tauCharge
=
Book1D
(
"Charge"
,
m_sTauJetContainerName
+
" Tau charge; charge; # Taus"
,7,-3.,4.);
21
m_tauNChargedTracks
=
Book1D
(
"NChargedTracks"
,
m_sTauJetContainerName
+
" Tau n charged tracks; nCharged; # Taus"
,10,0.,10.);
22
m_tauNIsolatedTracks
=
Book1D
(
"NIsolatedTracks"
,
m_sTauJetContainerName
+
" Tau n isolated tracks; nIsolated; # Taus"
,10,0.,10.);
23
m_tauNCoreTracks
=
Book1D
(
"NCoreTracks"
,
m_sTauJetContainerName
+
" Tau n core tracks; nCore; # Taus"
,15,0.,15.);
24
m_tauNWideTracks
=
Book1D
(
"NWideTracks"
,
m_sTauJetContainerName
+
" Tau n wide tracks; nWide; # Taus"
,20,0.,20.);
25
m_ptHighPt
=
Book1D
(
"ptHighPt"
,
m_sTauJetContainerName
+
" HighPt"
+
"; pt; # Taus"
,20, 0.0, 1500.0);
26
m_RNNEleScore
=
Book1D
(
"RNNEleScore"
,
m_sTauJetContainerName
+
" RNNEleScore;RNNEleScore;# Tau"
, 50,0.,1.);
27
m_RNNEleScoreSigTrans
=
Book1D
(
"RNNEleScoreSigTrans"
,
m_sTauJetContainerName
+
" RNNEleScoreSigTrans;RNNEleScoreSigTrans;"
+
"# Tau"
, 50,0.,1.);
28
m_GNTauScore
=
Book1D
(
"GNTauScore"
,
m_sTauJetContainerName
+
" GNTauScore;GNTauScore;# Tau"
, 50,0.,1.);
29
m_GNTauScoreSigTrans
=
Book1D
(
"GNTauScoreSigTrans"
,
m_sTauJetContainerName
+
" GNTauScoreSigTrans;GNTauScoreSigTrans;"
+
"# Tau"
, 50,0.,1.);
30
m_ptGNTauLoose
=
Book1D
(
"ptGNTauSigLoose"
,
m_sTauJetContainerName
+
" GNTauSigLoose; pt; # Taus"
, 20, 0.0, 150.0);
31
m_ptGNTauLooseHighPt
=
Book1D
(
"ptGNTauSigLooseHighPt"
,
m_sTauJetContainerName
+
" GNTauSigLooseHighPt; pt"
+
"; # Taus"
,20, 0.0, 1500.0);
32
m_ptGNTauMedium
=
Book1D
(
"ptGNTauSigMedium"
,
m_sTauJetContainerName
+
" GNTauSigMedium; pt; # Taus"
, 20, 0.0, 150.0);
33
m_ptGNTauMediumHighPt
=
Book1D
(
"ptGNTauSigMediumHighPt"
,
m_sTauJetContainerName
+
" GNTauSigMediumHighPt; pt"
+
"; # Taus"
,20, 0.0, 1500.0);
34
m_ptGNTauTight
=
Book1D
(
"ptGNTauSigTight"
,
m_sTauJetContainerName
+
" GNTauSigTight; pt; # Taus"
, 20, 0.0, 150.0);
35
m_ptGNTauTightHighPt
=
Book1D
(
"ptGNTauSigTightHighPt"
,
m_sTauJetContainerName
+
" GNTauSigTightHighPt; pt"
+
"; # Taus"
,20, 0.0, 1500.0);
36
37
m_tauTrackSummary
=
Book1D
(
"tauTrackSummary"
,
m_sTauJetContainerName
+
" Track Type Summary"
, 7,0,7);
38
m_tauTrackSummary
->GetXaxis()->SetLabelSize(0.05);
39
for
(
int
i=1; i<= 7;i++){
40
m_tauTrackSummary
->GetXaxis()->SetBinLabel(i,
m_lable
[i-1]);
41
}
42
43
}
44
45
void
GeneralTauPlots::fill
(
const
xAOD::TauJet
& tau,
float
weight) {
46
m_oTauKinematicPlots
.fill(tau, weight);
47
m_tauCharge
->Fill(tau.
charge
(), weight);
48
m_tauNChargedTracks
->Fill(tau.
nTracks
(), weight);
49
m_tauNIsolatedTracks
->Fill(tau.
nTracks
(
xAOD::TauJetParameters::classifiedIsolation
), weight);
50
m_tauNCoreTracks
->Fill(tau.
nTracks
(
xAOD::TauJetParameters::coreTrack
), weight);
51
m_tauNWideTracks
->Fill(tau.
nTracks
(
xAOD::TauJetParameters::wideTrack
), weight);
52
m_ptHighPt
->Fill(tau.
pt
()/Athena::Units::GeV, weight);
53
54
55
static
const
SG::ConstAccessor<float>
acc_RNNEleScore(
"RNNEleScore"
);
56
if
( acc_RNNEleScore.
isAvailable
(tau) ) {
57
float
rnnScore = tau.
discriminant
(
xAOD::TauJetParameters::RNNEleScore
);
58
if
( rnnScore > -2.0 )
m_RNNEleScore
->Fill(rnnScore, weight);
59
}
60
static
const
SG::ConstAccessor<float>
acc_RNNEleScoreSigTrans(
"RNNEleScoreSigTrans_v1"
);
61
if
( acc_RNNEleScoreSigTrans.
isAvailable
(tau) ) {
62
float
rnnScore = acc_RNNEleScoreSigTrans(tau);
63
m_RNNEleScoreSigTrans
->Fill(rnnScore, weight);
64
}
65
static
const
SG::ConstAccessor<float>
acc_GNTauScore(
"GNTauScore_v0prune"
);
66
if
( acc_GNTauScore.
isAvailable
(tau) ) {
67
float
gntauScore = acc_GNTauScore(tau);
68
if
( gntauScore > -2.0 )
m_GNTauScore
->Fill(gntauScore, weight);
69
}
70
static
const
SG::ConstAccessor<float>
acc_GNTauScoreSigTrans(
"GNTauScoreSigTrans_v0prune"
);
71
if
( acc_GNTauScoreSigTrans.
isAvailable
(tau) ) {
72
float
gntauScoreSigTrans = acc_GNTauScoreSigTrans(tau);
73
if
( gntauScoreSigTrans > -2.0 )
m_GNTauScoreSigTrans
->Fill(gntauScoreSigTrans, weight);
74
}
75
76
static
const
SG::ConstAccessor<char>
acc_GNTauL(
"GNTauL_v0prune"
);
77
if
( acc_GNTauL.
isAvailable
(tau) && acc_GNTauL(tau)) {
78
m_ptGNTauLoose
->Fill(tau.
pt
()/Athena::Units::GeV, weight);
79
m_ptGNTauLooseHighPt
->Fill(tau.
pt
()/Athena::Units::GeV, weight);
80
}
81
static
const
SG::ConstAccessor<char>
acc_GNTauM(
"GNTauM_v0prune"
);
82
if
( acc_GNTauM.
isAvailable
(tau) && acc_GNTauM(tau)) {
83
m_ptGNTauMedium
->Fill(tau.
pt
()/Athena::Units::GeV, weight);
84
m_ptGNTauMediumHighPt
->Fill(tau.
pt
()/Athena::Units::GeV, weight);
85
}
86
static
const
SG::ConstAccessor<char>
acc_GNTauT(
"GNTauT_v0prune"
);
87
if
( acc_GNTauT.
isAvailable
(tau) && acc_GNTauT(tau)) {
88
m_ptGNTauTight
->Fill(tau.
pt
()/Athena::Units::GeV, weight);
89
m_ptGNTauTightHighPt
->Fill(tau.
pt
()/Athena::Units::GeV, weight);
90
}
91
92
// fill histogram with track summary type
93
for
(
int
j=0; j < 7; j++){
94
int
tracktype;
95
if
( j==0) { tracktype = tau.
nTracks
(
xAOD::TauJetParameters::coreTrack
);}
96
else
if
( j==1) { tracktype = tau.
nTracks
(
xAOD::TauJetParameters::wideTrack
);}
97
else
if
( j==2) {
continue
;}
98
else
if
( j==3) { tracktype = tau.
nTracks
();}
99
else
if
( j==4) { tracktype = tau.
nTracks
(
xAOD::TauJetParameters::classifiedIsolation
);}
100
else
if
( j==5) { tracktype = tau.
nTracks
(
xAOD::TauJetParameters::classifiedConversion
);}
101
else
{ tracktype = tau.
nTracks
(
xAOD::TauJetParameters::classifiedFake
);}
102
103
for
(
int
i=0; i < tracktype; i++){
104
m_tauTrackSummary
->Fill(j+0.5, weight);
105
}
106
}
107
}
108
109
110
}
GeneralTauPlots.h
Units.h
Wrapper to avoid constant divisions when using units.
PlotBase::Book1D
TH1D * Book1D(std::string_view name, std::string_view labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition
PlotBase.cxx:94
PlotBase::PlotBase
PlotBase(PlotBase *parent, std::string_view sDir)
Definition
PlotBase.cxx:29
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition
ConstAccessor.h:55
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Tau::GeneralTauPlots::m_oTauKinematicPlots
Tau::TauKinematicPlots m_oTauKinematicPlots
Definition
GeneralTauPlots.h:33
Tau::GeneralTauPlots::m_ptGNTauMediumHighPt
TH1 * m_ptGNTauMediumHighPt
Definition
GeneralTauPlots.h:51
Tau::GeneralTauPlots::m_sTauJetContainerName
std::string m_sTauJetContainerName
Definition
GeneralTauPlots.h:56
Tau::GeneralTauPlots::m_RNNEleScoreSigTrans
TH1 * m_RNNEleScoreSigTrans
Definition
GeneralTauPlots.h:44
Tau::GeneralTauPlots::m_ptGNTauMedium
TH1 * m_ptGNTauMedium
Definition
GeneralTauPlots.h:48
Tau::GeneralTauPlots::m_tauNWideTracks
TH1 * m_tauNWideTracks
Definition
GeneralTauPlots.h:38
Tau::GeneralTauPlots::m_RNNEleScore
TH1 * m_RNNEleScore
Definition
GeneralTauPlots.h:43
Tau::GeneralTauPlots::m_ptGNTauTight
TH1 * m_ptGNTauTight
Definition
GeneralTauPlots.h:49
Tau::GeneralTauPlots::fill
void fill(const xAOD::TauJet &tau, float weight)
Definition
GeneralTauPlots.cxx:45
Tau::GeneralTauPlots::m_ptHighPt
TH1 * m_ptHighPt
Definition
GeneralTauPlots.h:39
Tau::GeneralTauPlots::m_tauCharge
TH1 * m_tauCharge
Definition
GeneralTauPlots.h:34
Tau::GeneralTauPlots::m_ptGNTauTightHighPt
TH1 * m_ptGNTauTightHighPt
Definition
GeneralTauPlots.h:52
Tau::GeneralTauPlots::initializePlots
void initializePlots()
Definition
GeneralTauPlots.cxx:18
Tau::GeneralTauPlots::m_ptGNTauLooseHighPt
TH1 * m_ptGNTauLooseHighPt
Definition
GeneralTauPlots.h:50
Tau::GeneralTauPlots::m_ptGNTauLoose
TH1 * m_ptGNTauLoose
Definition
GeneralTauPlots.h:47
Tau::GeneralTauPlots::m_tauNIsolatedTracks
TH1 * m_tauNIsolatedTracks
Definition
GeneralTauPlots.h:36
Tau::GeneralTauPlots::m_tauTrackSummary
TH1 * m_tauTrackSummary
Definition
GeneralTauPlots.h:40
Tau::GeneralTauPlots::m_tauNChargedTracks
TH1 * m_tauNChargedTracks
Definition
GeneralTauPlots.h:35
Tau::GeneralTauPlots::m_tauNCoreTracks
TH1 * m_tauNCoreTracks
Definition
GeneralTauPlots.h:37
Tau::GeneralTauPlots::m_lable
const char * m_lable[7]
Definition
GeneralTauPlots.h:23
Tau::GeneralTauPlots::GeneralTauPlots
GeneralTauPlots(PlotBase *pParent, const std::string &sDir, const std::string &sTauJetContainerName)
Definition
GeneralTauPlots.cxx:11
Tau::GeneralTauPlots::m_GNTauScore
TH1 * m_GNTauScore
Definition
GeneralTauPlots.h:45
Tau::GeneralTauPlots::m_GNTauScoreSigTrans
TH1 * m_GNTauScoreSigTrans
Definition
GeneralTauPlots.h:46
xAOD::TauJet_v3::charge
float charge() const
xAOD::TauJet_v3::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::TauJet_v3::discriminant
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
Definition
TauJet_v3.cxx:225
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition
TauJet_v3.cxx:488
Tau
Definition
TauDQA/src/CorePlots.cxx:8
xAOD::TauJetParameters::classifiedConversion
@ classifiedConversion
Definition
TauDefs.h:408
xAOD::TauJetParameters::wideTrack
@ wideTrack
Definition
TauDefs.h:404
xAOD::TauJetParameters::classifiedFake
@ classifiedFake
Definition
TauDefs.h:409
xAOD::TauJetParameters::coreTrack
@ coreTrack
Definition
TauDefs.h:403
xAOD::TauJetParameters::classifiedIsolation
@ classifiedIsolation
Definition
TauDefs.h:407
xAOD::TauJetParameters::RNNEleScore
@ RNNEleScore
RNN score for Ele rejection (not transformed).
Definition
TauDefs.h:94
xAOD::TauJet
TauJet_v3 TauJet
Definition of the current "tau version".
Definition
TauJet.h:17
Generated on
for ATLAS Offline Software by
1.17.0