ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
tauRecTools
Root
TauCommonCalcVars.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//-----------------------------------------------------------------------------
6
// file: TauCommonCalcVars.cxx
7
// package: Reconstruction/tauRec
8
// authors: Stan Lai
9
// date: 2008-05-18
10
//
11
// This class calculates tau variables after core seed reconstruction
12
//-----------------------------------------------------------------------------
13
#include "
tauRecTools/TauCommonCalcVars.h
"
14
#include <vector>
15
16
//-----------------------------------------------------------------------------
17
// Constructor
18
//-----------------------------------------------------------------------------
19
20
TauCommonCalcVars::TauCommonCalcVars
(
const
std::string &name) :
21
TauRecToolBase
(name) {
22
}
23
24
//-----------------------------------------------------------------------------
25
// Destructor
26
//-----------------------------------------------------------------------------
27
28
TauCommonCalcVars::~TauCommonCalcVars
() {
29
}
30
31
//-----------------------------------------------------------------------------
32
// Execution
33
//-----------------------------------------------------------------------------
34
StatusCode
TauCommonCalcVars::execute
(
xAOD::TauJet
& pTau)
const
{
35
37
// Calculate variables that are always valid
39
40
//init some vars
41
pTau.
setDetail
(
xAOD::TauJetParameters::SumPtTrkFrac
, 0.f );
42
43
// Leading track pT and et/pt(lead track)
44
if
(pTau.
nTracks
() > 0) {
45
pTau.
setDetail
(
xAOD::TauJetParameters::leadTrkPt
,
static_cast<
float
>
( pTau.
track
(0)->
pt
() ) );
46
47
float
emscale_ptEM = 0.;
48
float
emscale_ptHad = 0.;
49
50
if
( !pTau.
detail
(
xAOD::TauJetParameters::etEMAtEMScale
, emscale_ptEM ) ||
51
!pTau.
detail
(
xAOD::TauJetParameters::etHadAtEMScale
, emscale_ptHad ) )
52
{
53
ATH_MSG_DEBUG
(
"retrieval of tau detail failed. Will set etOverPtLeadTrk to 0"
);
54
pTau.
setDetail
(
xAOD::TauJetParameters::etOverPtLeadTrk
, 0.f );
55
}
56
else
{
57
pTau.
setDetail
(
xAOD::TauJetParameters::etOverPtLeadTrk
,
static_cast<
float
>
( (emscale_ptEM + emscale_ptHad) / pTau.
track
(0)->
pt
() ) );
58
}
59
}
60
61
std::vector<const xAOD::TauTrack*> tauTracks = pTau.
tracks
(
xAOD::TauJetParameters::TauTrackFlag::classifiedCharged
);
62
for
(
const
xAOD::TauTrack
* trk : pTau.
tracks
((
xAOD::TauJetParameters::TauTrackFlag
)
m_isolationTrackType
.value()) ) tauTracks.push_back(trk);
63
if
(!tauTracks.empty()) {
64
65
TLorentzVector sumOfTrackVector;
66
double
ptSum = 0;
67
double
innerPtSum = 0;
68
double
sumWeightedDR_tautrack = 0;
69
double
innerSumWeightedDR = 0;
70
71
for
(
const
xAOD::TauTrack
* tauTrk : tauTracks){
72
sumOfTrackVector += tauTrk->p4();
73
74
double
deltaR_tautrack = 0;
75
if
(
inTrigger
() ||
m_doRun4
){
76
deltaR_tautrack = pTau.
p4
().DeltaR(tauTrk->p4());
77
}
else
{
78
deltaR_tautrack = pTau.
p4
(
xAOD::TauJetParameters::IntermediateAxis
).DeltaR(tauTrk->p4());
79
}
80
81
ptSum += tauTrk->pt();
82
sumWeightedDR_tautrack += deltaR_tautrack * tauTrk->pt();
83
84
//add calculation of innerTrkAvgDist
85
if
(tauTrk->flag(
xAOD::TauJetParameters::TauTrackFlag::classifiedCharged
)){
86
innerPtSum += tauTrk->pt();
87
innerSumWeightedDR += deltaR_tautrack * tauTrk->pt();
88
}
89
}
90
// invariant mass of track system
91
pTau.
setDetail
(
xAOD::TauJetParameters::massTrkSys
,
static_cast<
float
>
( sumOfTrackVector.M() ) );
92
93
if
(ptSum > 0.) {
94
// seedCalo_trkAvgDist
95
pTau.
setDetail
(
xAOD::TauJetParameters::trkAvgDist
,
static_cast<
float
>
( sumWeightedDR_tautrack / ptSum ) );
96
97
// SumPtTrkFrac
98
pTau.
setDetail
(
xAOD::TauJetParameters::SumPtTrkFrac
,
static_cast<
float
>
( 1. - innerPtSum/ptSum ) );
99
}
100
else
{
101
pTau.
setDetail
(
xAOD::TauJetParameters::trkAvgDist
, 0.f );
102
pTau.
setDetail
(
xAOD::TauJetParameters::SumPtTrkFrac
, 0.f );
103
}
104
105
if
(innerPtSum > 0.) {
106
// InnerTrkAvgDist
107
pTau.
setDetail
(
xAOD::TauJetParameters::innerTrkAvgDist
,
static_cast<
float
>
( innerSumWeightedDR / innerPtSum ) );
108
}
109
else
{
110
pTau.
setDetail
(
xAOD::TauJetParameters::innerTrkAvgDist
, 0.f );
111
}
112
}
113
114
return
StatusCode::SUCCESS;
115
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
TauCommonCalcVars.h
TauCommonCalcVars::m_isolationTrackType
Gaudi::Property< int > m_isolationTrackType
Definition
TauCommonCalcVars.h:33
TauCommonCalcVars::m_doRun4
Gaudi::Property< bool > m_doRun4
Definition
TauCommonCalcVars.h:34
TauCommonCalcVars::~TauCommonCalcVars
~TauCommonCalcVars()
Definition
TauCommonCalcVars.cxx:28
TauCommonCalcVars::TauCommonCalcVars
TauCommonCalcVars(const std::string &name="TauCommonCalcVars")
Definition
TauCommonCalcVars.cxx:20
TauCommonCalcVars::execute
virtual StatusCode execute(xAOD::TauJet &pTau) const override
Execute - called for each tau candidate.
Definition
TauCommonCalcVars.cxx:34
TauRecToolBase::TauRecToolBase
TauRecToolBase(const std::string &name)
Definition
TauRecToolBase.cxx:125
TauRecToolBase::inTrigger
bool inTrigger() const
Definition
TauRecToolBase.h:87
xAOD::TauJet_v3::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition
TauJet_v3.cxx:96
xAOD::TauJet_v3::detail
bool detail(TauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
Definition
TauJet_v3.cxx:264
xAOD::TauJet_v3::track
const TauTrack * track(size_t i, TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged, int *container_index=0) const
Get the pointer to a given tauTrack associated with this tau /*container index needed by trackNonCons...
Definition
TauJet_v3.cxx:422
xAOD::TauJet_v3::setDetail
void setDetail(TauJetParameters::Detail detail, int value)
Definition
TauJet_v3.cxx:309
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition
TauJet_v3.cxx:488
xAOD::TauJet_v3::tracks
std::vector< const TauTrack * > tracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Get the v<const pointer> to a given tauTrack collection associated with this tau.
Definition
TauJet_v3.cxx:461
xAOD::TauTrack_v1::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::TauJetParameters::TauTrackFlag
TauTrackFlag
Enum for tau track flags.
Definition
TauDefs.h:400
xAOD::TauJetParameters::classifiedCharged
@ classifiedCharged
Definition
TauDefs.h:406
xAOD::TauJetParameters::IntermediateAxis
@ IntermediateAxis
Definition
TauDefs.h:338
xAOD::TauJetParameters::SumPtTrkFrac
@ SumPtTrkFrac
Definition
TauDefs.h:289
xAOD::TauJetParameters::etHadAtEMScale
@ etHadAtEMScale
Get Hadronic energy at EM scale.
Definition
TauDefs.h:196
xAOD::TauJetParameters::innerTrkAvgDist
@ innerTrkAvgDist
Definition
TauDefs.h:287
xAOD::TauJetParameters::trkAvgDist
@ trkAvgDist
Get calibrated EM transverse energy (DEPRECATED since r19).
Definition
TauDefs.h:214
xAOD::TauJetParameters::etOverPtLeadTrk
@ etOverPtLeadTrk
Definition
TauDefs.h:158
xAOD::TauJetParameters::massTrkSys
@ massTrkSys
Definition
TauDefs.h:161
xAOD::TauJetParameters::etEMAtEMScale
@ etEMAtEMScale
Get EM energy at EM scale.
Definition
TauDefs.h:194
xAOD::TauJetParameters::leadTrkPt
@ leadTrkPt
Definition
TauDefs.h:159
xAOD::TauTrack
TauTrack_v1 TauTrack
Definition of the current version.
Definition
TauTrack.h:16
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