ATLAS Offline Software
Loading...
Searching...
No Matches
TauJet_v2.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5*/
6
7// $Id: TauJet_v2.h 747258 2016-05-15 02:57:19Z griffith $
8#ifndef XAODTAU_VERSIONS_TAUJET_V2_H
9#define XAODTAU_VERSIONS_TAUJET_V2_H
10
11
12// Core include(s):
13#include "AthLinks/ElementLink.h"
14
15
16// xAOD include(s):
17#include "xAODBase/IParticle.h"
19#include "xAODTau/TauDefs.h"
24
25// ROOT include(s):
26#include "Math/Vector4D.h"
27
28namespace xAOD {
29
30
31
38 class TauJet_v2 : public IParticle {
39
40 public:
42 TauJet_v2();
43
46
48 virtual double pt() const;
50 virtual double eta() const;
52 virtual double phi() const;
54 virtual double e() const;
55
57 virtual double m() const;
59 virtual double rapidity() const;
60
62 virtual FourMom_t p4() const;
63 virtual FourMom_t p4(const TauJetParameters::TauCalibType calib) const;
64
66 typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> > GenVecFourMom_t;
67
71
73 void setP4(double pt, double eta, double phi, double m);
74 bool setP4(const TauJetParameters::TauCalibType calib, double pt, double eta, double phi, double m);
75
76 //setters and getters for the individual 4-vector components at different calibration levels
77 double ptJetSeed() const;
78 double etaJetSeed() const;
79 double phiJetSeed() const;
80 double mJetSeed() const;
81
82 double ptDetectorAxis() const;
83 double etaDetectorAxis() const;
84 double phiDetectorAxis() const;
85 double mDetectorAxis() const;
86
87 double ptIntermediateAxis() const;
88 double etaIntermediateAxis() const;
89 double phiIntermediateAxis() const;
90 double mIntermediateAxis() const;
91
92 double ptTauEnergyScale() const;
93 double etaTauEnergyScale() const;
94 double phiTauEnergyScale() const;
95 double mTauEnergyScale() const;
96
97 double ptTauEtaCalib() const;
98 double etaTauEtaCalib() const;
99 double phiTauEtaCalib() const;
100 double mTauEtaCalib() const;
101
105 double mPanTauCellBasedProto() const;
106
107 double ptPanTauCellBased() const;
108 double etaPanTauCellBased() const;
109 double phiPanTauCellBased() const;
110 double mPanTauCellBased() const;
111
112 double ptTrigCaloOnly() const;
113 double etaTrigCaloOnly() const;
114 double phiTrigCaloOnly() const;
115 double mTrigCaloOnly() const;
116
118 virtual Type::ObjectType type() const;
119
121
122 // the summed up charge of all tau tracks
123 float charge() const;
124
125 // set the charge
126 void setCharge(float);
127
129 unsigned int ROIWord() const;
130
131 // set the ROIWord, needed by TauTrigger
132 void setROIWord(unsigned int);
133
136 bool hasDiscriminant( TauJetParameters::TauID discID ) const;
137
140 double discriminant( TauJetParameters::TauID discID ) const;
141
145 void setDiscriminant( TauJetParameters::TauID discID, double disc );
146
150
154 void setIsTau( TauJetParameters::IsTauFlag flag, bool value );
155
159 void setFlag( TauJetParameters::VetoFlags flag, bool value );
160
164
165
167 bool detail( TauJetParameters::Detail detail, int& value ) const;
168 bool detail( TauJetParameters::Detail detail, float& value ) const;
169 void setDetail( TauJetParameters::Detail detail, int value );
170 void setDetail( TauJetParameters::Detail detail, float value );
171
172 // getter for specialized types. Compilation error if used with other types.
173 template <class T>
175 {
176 T temp;
177 if (this->detail(detail,temp)) return temp;
178 else return 0;
179 }
180
186
187 // getter for specialized types. Compilation error if used with other types.
188 template <class T>
190 {
191 T temp;
192 if (this->panTauDetail(panTauDetail,temp)) return temp;
193 else return 0;
194 }
195
196 //seed jet
198
199 const JetLink_t& jetLink() const;
200
201 void setJetLink( const JetLink_t& jetLink );
202
203 void setJet( const xAOD::JetContainer *cont, const xAOD::Jet *jet );
204
205 const Jet* jet() const;
206
207
208 //vertex that the tau comes from
210
211 const VertexLink_t& vertexLink() const;
212
214
215 void setVertex( const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex );
216
217 const Vertex* vertex() const;
218
219
220 //secondary vertex that the tau decays in
221
223
225
226 void setSecondaryVertex( const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex );
227
228 const Vertex* secondaryVertex() const;
229
230
231 //tracks
232 typedef std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t;
233
235
236 void setTrackLinks( const TrackParticleLinks_t& trackParticles );
238 const TrackParticle* track( size_t i ) const;
239 // /// Get the number of track particles associated with this tau
240 size_t nTracks() const;
244 void clearTrackLinks();
245
246 // Get and set track flags
249
250 //name accessors for trackFilterProngs
251 int trackFilterProngs() const;
252 //name accessors for trackFilterProngs
254
255 //name accessors for trackFilterQuality
257 //name accessors for trackFilterQuality
259
260 //name accessors for pi0ConeDR
261 float pi0ConeDR() const;
262 //name accessors for pi0ConeDR
263 void setPi0ConeDR(float);
264
265
266 //name accessors for trackEtaStrip
267 float trackEtaStrip(unsigned int numTrack) const;
268 //name accessors for trackEtaStrip
269 void setTrackEtaStrip(unsigned int numTrack, float eta);
270
271
272 //name accessors for trackPhiStrip
273 float trackPhiStrip(unsigned int numTrack) const;
274 //name accessors for trackPhiStrip
275 void setTrackPhiStrip(unsigned int numTrack, float phi);
276
277
278 //wide tracks
280
281 void setWideTrackLinks( const TrackParticleLinks_t& trackParticles );
283 const TrackParticle* wideTrack( size_t i ) const;
285 size_t nWideTracks() const;
289 void clearWideTrackLinks();
290
291
292 //other tracks
294
295 void setOtherTrackLinks( const TrackParticleLinks_t& trackParticles );
297 const TrackParticle* otherTrack( size_t i ) const;
299 size_t nOtherTracks() const;
304
305
306
307 typedef std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t;
308
309
310 //photon shot PFOs
312
313 void setHadronicPFOLinks( const PFOLinks_t& hadronicPFOs );
315 const PFO* hadronicPFO( size_t i ) const;
317 size_t nHadronicPFOs() const;
322
323
324 //photon shot PFOs
325 const PFOLinks_t& shotPFOLinks() const;
326
327 void setShotPFOLinks( const PFOLinks_t& shotPFOs );
329 const PFO* shotPFO( size_t i ) const;
331 size_t nShotPFOs() const;
335 void clearShotPFOLinks();
336
337
339 //
340 //charged PFOs
342
343 void setChargedPFOLinks( const PFOLinks_t& chargedPFOs );
345 const PFO* chargedPFO( size_t i ) const;
347 size_t nChargedPFOs() const;
352
353
354 //neutral PFOs
356
357 void setNeutralPFOLinks( const PFOLinks_t& neutralPFOs );
359 const PFO* neutralPFO( size_t i ) const;
361 size_t nNeutralPFOs() const;
366
367
368 //pi0 PFOs
369 const PFOLinks_t& pi0PFOLinks() const;
370
371 void setPi0PFOLinks( const PFOLinks_t& pi0PFOs );
373 const PFO* pi0PFO( size_t i ) const;
375 size_t nPi0PFOs() const;
379 void clearPi0PFOLinks();
380
381
382
383
385 //
386 //cellbased_charged PFOs
388
389 void setProtoChargedPFOLinks( const PFOLinks_t& protoChargedPFOs );
391 const PFO* protoChargedPFO( size_t i ) const;
393 size_t nProtoChargedPFOs() const;
398
399
400 //cellbased_neutral PFOs
402
403 void setProtoNeutralPFOLinks( const PFOLinks_t& protoNeutralPFOs );
405 const PFO* protoNeutralPFO( size_t i ) const;
407 size_t nProtoNeutralPFOs() const;
412
413
414 //pi0 PFOs
416
417 void setProtoPi0PFOLinks( const PFOLinks_t& protoPi0PFOs );
419 const PFO* protoPi0PFO( size_t i ) const;
421 size_t nProtoPi0PFOs() const;
426
427
428
430
431
432 void dump() const;
433
434
435 }; // class TauJet
436
437} // namespace xAOD
438
439
440// Declare IParticle as a base class of TauJet_v2:
443
444#endif // XAODTAU_VERSIONS_TAUJET_V2_H
445
446// LocalWords: newROIWord
An STL vector of pointers that by default owns its pointed-to elements.
#define DATAVECTOR_BASE(T, BASE)
Declare base class info to DataVector.
Definition DataVector.h:649
Class providing the definition of the 4-vector interface.
IParticle()=default
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Class describing a tau jet.
Definition TauJet_v2.h:38
xAODTAU_return_type< T >::type panTauDetail(TauJetParameters::PanTauDetails panTauDetail) const
Definition TauJet_v2.h:189
void addOtherTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
void clearHadronicPFOLinks()
Remove all hadronic PFOs from the tau.
double ptDetectorAxis() const
const PFOLinks_t & hadronicPFOLinks() const
std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t
Definition TauJet_v2.h:307
void setProtoNeutralPFOLinks(const PFOLinks_t &protoNeutralPFOs)
const Vertex * secondaryVertex() const
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
void setChargedPFOLinks(const PFOLinks_t &chargedPFOs)
void addProtoPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_pi0 PFO to the tau
void addHadronicPFOLink(const ElementLink< PFOContainer > &pfo)
add a hadronic PFO to the tau
void setROIWord(unsigned int)
int trackFilterProngs() const
void setTrackFilterQuality(int)
void setFlag(TauJetParameters::VetoFlags flag, bool value)
Set veto flag.
void addProtoNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_neutral PFO to the tau
void addShotPFOLink(const ElementLink< PFOContainer > &pfo)
add a shot PFO to the tau
float charge() const
void setNeutralPFOLinks(const PFOLinks_t &neutralPFOs)
void clearProtoNeutralPFOLinks()
Remove all cellbased_neutral PFOs from the tau.
const PFO * neutralPFO(size_t i) const
Get the pointer to a given neutral PFO associated with this tau.
TauJet_v2()
Default constructor.
Definition TauJet_v2.cxx:24
const PFO * hadronicPFO(size_t i) const
Get the pointer to a given hadronic PFO associated with this tau.
size_t nProtoPi0PFOs() const
Get the number of cellbased_pi0 PFO particles associated with this tau.
double ptPanTauCellBasedProto() const
const JetLink_t & jetLink() const
double ptJetSeed() const
const PFOLinks_t & neutralPFOLinks() const
void setSecondaryVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
const PFO * protoPi0PFO(size_t i) const
Get the pointer to a given cellbased_pi0 PFO associated with this tau.
double etaTrigCaloOnly() const
void setProtoChargedPFOLinks(const PFOLinks_t &protoChargedPFOs)
const TrackParticle * wideTrack(size_t i) const
Get the pointer to a given track associated with this tau.
void setProtoPi0PFOLinks(const PFOLinks_t &protoPi0PFOs)
void setPanTauDetail(TauJetParameters::PanTauDetails panTauDetail, int value)
double ptTauEtaCalib() const
void addChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a charged PFO to the tau
const VertexLink_t & vertexLink() const
const PFOLinks_t & pi0PFOLinks() const
virtual double e() const
The total energy of the particle.
Definition TauJet_v2.cxx:84
double etaPanTauCellBasedProto() const
const PFOLinks_t & protoPi0PFOLinks() const
ElementLink< xAOD::JetContainer > JetLink_t
Definition TauJet_v2.h:197
void clearPi0PFOLinks()
Remove all pi0 PFOs from the tau.
double etaJetSeed() const
void clearProtoChargedPFOLinks()
Remove all cellbased_charged PFOs from the tau.
void setOtherTrackLinks(const TrackParticleLinks_t &trackParticles)
void setTrackFilterProngs(int)
virtual double eta() const
The pseudorapidity ( ) of the particle.
double etaTauEtaCalib() const
double phiPanTauCellBasedProto() const
float pi0ConeDR() const
const PFO * pi0PFO(size_t i) const
Get the pointer to a given pi0 PFO associated with this tau.
const PFOLinks_t & protoChargedPFOLinks() const
cellbased pfos
void setWideTrackLinks(const TrackParticleLinks_t &trackParticles)
virtual double m() const
The invariant mass of the particle.
const PFO * protoChargedPFO(size_t i) const
Get the pointer to a given cellbased_charged PFO associated with this tau.
const TrackParticle * otherTrack(size_t i) const
Get the pointer to a given track associated with this tau.
double etaDetectorAxis() const
void clearChargedPFOLinks()
Remove all charged PFOs from the tau.
void setDetail(TauJetParameters::Detail detail, int value)
double phiTauEtaCalib() const
const PFOLinks_t & shotPFOLinks() const
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition TauJet_v2.cxx:93
bool flag(TauJetParameters::VetoFlags flag) const
Get veto flag.
double phiTrigCaloOnly() const
size_t nOtherTracks() const
Get the number of track particles associated with this tau.
const TrackParticle * track(size_t i) const
Get the pointer to a given track associated with this tau.
void setDiscriminant(TauJetParameters::TauID discID, double disc)
Set value of discriminant.
double ptTrigCaloOnly() const
double ptIntermediateAxis() const
size_t nPi0PFOs() const
Get the number of pi0 PFO particles associated with this tau.
void setTrackLinks(const TrackParticleLinks_t &trackParticles)
void setSecondaryVertexLink(const VertexLink_t &vertexLink)
void setPi0ConeDR(float)
double etaIntermediateAxis() const
double phiTauEnergyScale() const
double phiPanTauCellBased() const
const PFO * chargedPFO(size_t i) const
Get the pointer to a given charged PFO associated with this tau.
double etaPanTauCellBased() const
float trackEtaStrip(unsigned int numTrack) const
const PFO * protoNeutralPFO(size_t i) const
Get the pointer to a given cellbased_neutral PFO associated with this tau.
void setHadronicPFOLinks(const PFOLinks_t &hadronicPFOs)
double mJetSeed() const
void clearTrackLinks()
Remove all tracks from the tau.
const VertexLink_t & secondaryVertexLink() const
bool trackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag) const
double mTrigCaloOnly() const
xAODTAU_return_type< T >::type detail(TauJetParameters::Detail detail) const
Definition TauJet_v2.h:174
void clearNeutralPFOLinks()
Remove all neutral PFOs from the tau.
void setCharge(float)
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
const PFOLinks_t & protoNeutralPFOLinks() const
double mPanTauCellBased() const
size_t nProtoNeutralPFOs() const
Get the number of cellbased_neutral PFO particles associated with this tau.
void addProtoChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_charged PFO to the tau
void dump() const
void setTrackEtaStrip(unsigned int numTrack, float eta)
const Jet * jet() const
virtual double pt() const
The transverse momentum ( ) of the particle.
void setPi0PFOLinks(const PFOLinks_t &pi0PFOs)
double phiJetSeed() const
const TrackParticleLinks_t & otherTrackLinks() const
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
double ptPanTauCellBased() const
virtual double phi() const
The azimuthal angle ( ) of the particle.
size_t nHadronicPFOs() const
Get the number of hadronic PFO particles associated with this tau.
int trackFilterQuality() const
double etaTauEnergyScale() const
double ptTauEnergyScale() const
double mTauEtaCalib() const
size_t nNeutralPFOs() const
Get the number of neutral PFO particles associated with this tau.
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
bool hasDiscriminant(TauJetParameters::TauID discID) const
Check if class contains requested discriminant.
unsigned int ROIWord() const
the ROIWord, in case TauJet is used in EF trigger
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
Definition TauJet_v2.cxx:99
void setVertexLink(const VertexLink_t &vertexLink)
double mIntermediateAxis() const
const PFOLinks_t & chargedPFOLinks() const
default pfos
size_t nTracks() const
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
const Vertex * vertex() const
void setIsTau(TauJetParameters::IsTauFlag flag, bool value)
Set Flag for tau acceptance based on predefined arbitrary criteria.
double phiDetectorAxis() const
const TrackParticleLinks_t & trackLinks() const
void addWideTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
size_t nWideTracks() const
Get the number of track particles associated with this tau.
size_t nShotPFOs() const
Get the number of shot PFO particles associated with this tau.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
Definition TauJet_v2.h:66
double mTauEnergyScale() const
size_t nProtoChargedPFOs() const
Get the number of cellbased_charged PFO particles associated with this tau.
void addTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
const TrackParticleLinks_t & wideTrackLinks() const
double mDetectorAxis() const
void setJetLink(const JetLink_t &jetLink)
double mPanTauCellBasedProto() const
double phiIntermediateAxis() const
float trackPhiStrip(unsigned int numTrack) const
void setTrackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag, bool value)
void clearWideTrackLinks()
Remove all tracks from the tau.
ElementLink< xAOD::VertexContainer > VertexLink_t
Definition TauJet_v2.h:209
void addNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a neutral PFO to the tau
void addPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a pi0 PFO to the tau
size_t nChargedPFOs() const
Get the number of charged PFO particles associated with this tau.
void clearShotPFOLinks()
Remove all shot PFOs from the tau.
void setShotPFOLinks(const PFOLinks_t &shotPFOs)
void setTrackPhiStrip(unsigned int numTrack, float phi)
const PFO * shotPFO(size_t i) const
Get the pointer to a given shot PFO associated with this tau.
void clearOtherTrackLinks()
Remove all tracks from the tau.
void clearProtoPi0PFOLinks()
Remove all cellbased_pi0 PFOs from the tau.
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition TauJet_v2.cxx:89
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
Definition TauJet_v2.h:232
TauTrackFlag
Enum for tau track flags.
Definition TauDefs.h:400
TauCalibType
Enum for tau calib type.
Definition TauDefs.h:335
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
Definition TauDefs.h:156
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
Definition TauDefs.h:355
VetoFlags
Enum for Veto flags.
Definition TauDefs.h:103
TauID
Enum for discriminants.
Definition TauDefs.h:46
IsTauFlag
Enum for IsTau flags.
Definition TauDefs.h:116
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Jet_v1 Jet
Definition of the current "jet version".
setStrategy setMatchFlag ElementLink< TrackParticleContainer >
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
JetContainer_v1 JetContainer
Definition of the current "jet container version".