ATLAS Offline Software
PanTauSeed.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 // default constructor
10  :
11  IParticle(),
12  m_p4(),
13  m_IsValidSeed(false),
14  m_TechnicalQuality(),
15  m_TauJet(nullptr),
16  m_Constituents(),
17  m_TypeHLVs(),
18  m_ConstituentsList_Core(),
19  m_ConstituentsList_AllSelected(),
20  m_ConstituentsList_All(),
21  m_DecayMode_BySubAlg(0),
22  m_DecayMode_ByPanTau(0),
23  m_decayModeHack_CellBasedShots(false),
24  m_Features(nullptr)
25 {
26 }
27 
28 
29 // destructor
31 {
32  if(m_Features != nullptr) delete m_Features;
33 
34  //delete the constituents
35  for(unsigned int iConst=0; iConst<m_ConstituentsList_All.size(); iConst++) {
36  PanTau::TauConstituent* curConst = m_ConstituentsList_All[iConst];
37  if(curConst != nullptr) delete curConst;
38  }
39  m_ConstituentsList_All.clear();
40  m_ConstituentsList_AllSelected.clear();
41  m_ConstituentsList_Core.clear();
42 
43  // also clear the constituent matrix
44  // dont delete the entries as they point to the (at this point already deleted) constituents in m_ConstituentsList
45  for(unsigned int iType=0; iType<m_Constituents.size(); iType++) {
46  std::vector<PanTau::TauConstituent*> curConsts = m_Constituents[iType];
47  curConsts.clear();
48  }
49  m_Constituents.clear();
50 }
51 
52 
53 //copy constructor
55  :
56  IParticle(rhs),
57  m_p4(rhs.m_p4),
58  m_IsValidSeed(rhs.m_IsValidSeed),
59  m_TechnicalQuality(rhs.m_TechnicalQuality),
60  m_TauJet(rhs.m_TauJet),
61  m_Constituents(rhs.m_Constituents),
62  m_TypeHLVs(rhs.m_TypeHLVs),
63  m_ConstituentsList_Core(rhs.m_ConstituentsList_Core),
64  m_ConstituentsList_AllSelected(rhs.m_ConstituentsList_AllSelected),
65  m_ConstituentsList_All(rhs.m_ConstituentsList_All),
66  m_DecayMode_BySubAlg(rhs.m_DecayMode_BySubAlg),
67  m_DecayMode_ByPanTau(rhs.m_DecayMode_ByPanTau),
68  m_decayModeHack_CellBasedShots(rhs.m_decayModeHack_CellBasedShots),
69 
70  m_Features( (rhs.m_Features ? new PanTau::TauFeature(*rhs.m_Features) : nullptr) )
71 {
72 }
73 
74 
76 {
77  if (this != &seed){
78 
79  if (!this->container() && !this->hasStore() ) {
80  makePrivateStore();
81  }
82  this->IParticle::operator=( seed );
83  this->m_p4 = seed.m_p4;
84  m_IsValidSeed = seed.m_IsValidSeed;
85  m_TechnicalQuality = seed.m_TechnicalQuality;
86  m_TauJet = seed.m_TauJet;
87  m_Constituents = seed.m_Constituents;
88  m_TypeHLVs = seed.m_TypeHLVs;
89  m_ConstituentsList_Core = seed.m_ConstituentsList_Core;
90  m_ConstituentsList_AllSelected = seed.m_ConstituentsList_AllSelected;
91  m_ConstituentsList_All = seed.m_ConstituentsList_All;
92  m_decayModeHack_CellBasedShots = seed.m_decayModeHack_CellBasedShots;
93 
94  if(m_Features) delete m_Features;
95  m_Features = (seed.m_Features ? new PanTau::TauFeature(*seed.m_Features) : nullptr);
96  }
97  return *this;
98 }
99 
100 
101 double PanTau::PanTauSeed::pt() const {
102  // static Accessor< float > acc( "pt" );
103  // return acc( *this );
104  return p4().Pt();
105 }
106 
107 double PanTau::PanTauSeed::eta() const {
108  // static Accessor<float > acc( "eta" );
109  // return acc( *this );
110  return p4().Eta();
111 }
112 
113 double PanTau::PanTauSeed::phi() const {
114  // static Accessor< float > acc( "phi" );
115  // return acc( *this );
116  return p4().Phi();
117 }
118 
119 double PanTau::PanTauSeed::m() const {
120  // static Accessor< float> acc( "m" );
121  // return acc( *this );
122  return p4().M();
123 }
124 
125 double PanTau::PanTauSeed::e() const{
126  return p4().E();
127 }
128 
130  return p4().Rapidity();
131 }
132 
134  return m_p4;
135 }
136 
137 void PanTau::PanTauSeed::setP4(float pt, float eta, float phi, float m){
138  static const Accessor< float > acc1( "pt" );
139  acc1( *this ) = pt;
140  static const Accessor< float > acc2( "eta" );
141  acc2( *this ) = eta;
142  static const Accessor< float > acc3( "phi" );
143  acc3( *this ) = phi;
144  static const Accessor< float > acc4( "m" );
145  acc4( *this ) = m;
146  //Need to recalculate m_p4
147  m_p4.SetPtEtaPhiM( pt, eta, phi, m);
148 }
149 
151  static const Accessor< float > acc( "pt" );
152  acc( *this ) = pt;
153  //Need to recalculate m_p4
154  m_p4.SetPtEtaPhiM( pt, eta(), phi(), m());
155 }
156 
158  static const Accessor< float > acc( "eta" );
159  acc( *this ) = eta;
160  //Need to recalculate m_p4
161  m_p4.SetPtEtaPhiM( pt(), eta, phi(), m());
162 }
163 
165  static const Accessor< float > acc( "phi" );
166  acc( *this ) = phi;
167  //Need to recalculate m_p4
168  m_p4.SetPtEtaPhiM( pt(), eta(), phi, m());
169 }
170 
172  static const Accessor< float > acc( "m" );
173  acc( *this ) = m;
174  //Need to recalculate m_p4
175  m_p4.SetPtEtaPhiM( pt(), eta(), phi(), m);
176 }
177 
178 
180  return xAOD::Type::Tau;
181 }
182 
183 
184 
187  const std::vector<PanTau::TauConstituent*>& tauConstituents,
188  const std::vector<PanTau::TauConstituent*>& tauConstituentsAll,
189  const std::vector<int>& pantauSeed_TechnicalQuality
190  )
191  :
192  IParticle()
193 {
194 
195  // *This may be a bug!!! change to Set*Pt*EtaPhiM?? ***
196  // PanTau::SetP4EEtaPhiM( m_p4, tauJet->ptIntermediateAxis() * cosh( tauJet->etaIntermediateAxis() ), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() );
197  m_p4.SetPtEtaPhiM(tauJet->ptIntermediateAxis(), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() );
198  m_IsValidSeed = true;
199  m_TechnicalQuality = pantauSeed_TechnicalQuality;
200  m_TauJet = tauJet;
203 
204  //save a copy of the flat constituents list and also split into core/wide constituents
205  m_ConstituentsList_All = tauConstituentsAll;
206  m_ConstituentsList_AllSelected = tauConstituents; //all types are in here, this is the complete list
207  for(unsigned int iConst=0; iConst<tauConstituents.size(); iConst++) {
208  bool isCoreChrg = tauConstituents[iConst]->isOfType(PanTau::TauConstituent::t_Charged);
209  bool isCoreNeut = tauConstituents[iConst]->isOfType(PanTau::TauConstituent::t_Neutral);
210  bool isCorePi0 = tauConstituents[iConst]->isOfType(PanTau::TauConstituent::t_Pi0Neut);
211 
212  if(isCoreChrg || isCoreNeut || isCorePi0) m_ConstituentsList_Core.push_back(tauConstituents[iConst]); // Core only contains the currently used objects
213 
214  }
215 
216  //create the constituents lists
217  for(int iType=0; iType<PanTau::TauConstituent::t_nTypes; iType++) {
218  m_Constituents.emplace_back(0 );
219  m_TypeHLVs.emplace_back(0,0,0,0 );
220  }
221 
222  //assign tauConstituents
223  TLorentzVector hlv_SumConstituents_Core = TLorentzVector(0,0,0,0);
224 
225  int nCharged = 0;
226  int nPi0Neut = 0;
227 
228  for(unsigned int iConst=0; iConst<tauConstituents.size(); iConst++) {
229  PanTau::TauConstituent* curConst = tauConstituents.at(iConst);
230  std::vector<int> curTypes = curConst->getTypeFlags();
231 
232  for(unsigned int curType=0; curType<curTypes.size(); curType++) {
233  if(curTypes.at(curType) == 0) continue;
234 
235  if(curType == static_cast<int>(PanTau::TauConstituent::t_Charged)) nCharged++;
236  if(curType == static_cast<int>(PanTau::TauConstituent::t_Pi0Neut)) nPi0Neut++;
237 
238  if((unsigned int)curType >= m_Constituents.size()) {
239  continue;
240  }
241 
242  //fill into sorted lists
243  m_Constituents.at(curType).push_back(curConst);
244  m_TypeHLVs.at(curType) += curConst->p4();
245 
246  }//end loop over types
247 
248  //add all charged and neutral constituents (i.e. from core region) to core proto momentum
249  if(curConst->isOfType(PanTau::TauConstituent::t_Charged)) {hlv_SumConstituents_Core += curConst->p4(); continue;}
250  if(curConst->isOfType(PanTau::TauConstituent::t_Pi0Neut)) {hlv_SumConstituents_Core += curConst->p4(); continue;}
251 
252  }//end loop over constituents
253  m_ProtoMomentum_Core = hlv_SumConstituents_Core;
254 
255  //set mode as obtained from subalg
258 
261  }
262 
263 }
264 
265 
268  const std::vector<int>& pantauSeed_TechnicalQuality)
269  :
270  IParticle(),
271  m_Constituents(),
272  m_TypeHLVs(),
273  m_ConstituentsList_AllSelected(),
274  m_ConstituentsList_All(),
275  m_DecayMode_BySubAlg(0),
276  m_DecayMode_ByPanTau(0),
277  m_decayModeHack_CellBasedShots(false)
278 {
279  // *This may be a bug!!! change to Set*Pt*EtaPhiM?? ***
280  // PanTau::SetP4EEtaPhiM( m_p4, tauJet->ptIntermediateAxis() * cosh( tauJet->etaIntermediateAxis() ), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() );
281  m_p4.SetPtEtaPhiM(tauJet->ptIntermediateAxis(), tauJet->etaIntermediateAxis(), tauJet->phiIntermediateAxis(), tauJet->mIntermediateAxis() );
282  m_IsValidSeed = false;
283  m_TechnicalQuality = pantauSeed_TechnicalQuality;
284  m_TauJet = tauJet;
286 }
287 
288 
290 
291  int decayMode;
292 
293  // 1 Prong modes
294  if(nCharged == 1 && nNeutral == 0) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_1p0n);
295  else if(nCharged == 1 && nNeutral == 1) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_1p1n);
296  else if(nCharged == 1 && nNeutral > 1) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_1pXn);
297  // 3 prong modes
298  else if(nCharged == 3 && nNeutral == 0) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_3p0n);
299  else if(nCharged == 3 && nNeutral > 0) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_3pXn);
300  // other mode
301  else if(nCharged == 2) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_Other);
302  else if(nCharged == 4) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_Other);
303  else if(nCharged == 5) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_Other);
304  else if(nCharged == 0) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_NotSet);
305  else if(nCharged >= 6) decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_NotSet);
306  else decayMode = static_cast<int>(xAOD::TauJetParameters::Mode_Error);
307 
308  return decayMode;
309 }
310 
311 
312 std::string PanTau::PanTauSeed::getDecayModeName(int decayMode) {
313 
315 
316  if(mode == xAOD::TauJetParameters::Mode_1p0n) return "1p0n";
317  if(mode == xAOD::TauJetParameters::Mode_1p1n) return "1p1n";
318  if(mode == xAOD::TauJetParameters::Mode_1pXn) return "1pXn";
319  if(mode == xAOD::TauJetParameters::Mode_3p0n) return "3p0n";
320  if(mode == xAOD::TauJetParameters::Mode_3pXn) return "3pXn";
321  if(mode == xAOD::TauJetParameters::Mode_Other) return "Other";
322  if(mode == xAOD::TauJetParameters::Mode_Error) return "Error";
323  if(mode == xAOD::TauJetParameters::Mode_NotSet) return "NotSet";
324  return "InvalidMode!!!";
325 }
326 
327 
328 bool PanTau::PanTauSeed::isOfTechnicalQuality(int pantauSeed_TechnicalQuality) const {
329  if(pantauSeed_TechnicalQuality > PanTau::PanTauSeed::t_nTechnicalQualities) {
330  return false;
331  }
332  if(m_TechnicalQuality[pantauSeed_TechnicalQuality] == 1) return true;
333  return false;
334 }
335 
336 
337 std::vector<PanTau::TauConstituent*> PanTau::PanTauSeed::getConstituentsOfType(int tauConstituent_Type, bool& foundit) {
338  if(tauConstituent_Type > PanTau::TauConstituent::t_nTypes) {
339  foundit = false;
340  return std::vector<TauConstituent*>(0);
341  }
342  foundit = true;
343  if(tauConstituent_Type == static_cast<int>(PanTau::TauConstituent::t_NoType)) return m_ConstituentsList_AllSelected;
344  return m_Constituents.at(tauConstituent_Type);
345 }
346 
347 
349  bool isOK = false;
350  std::vector<PanTau::TauConstituent*> consts = this->getConstituentsOfType(tauConstituent_Type, isOK);
351  if(isOK) {
352  return static_cast<int>(consts.size());
353  }
354  return -1;
355 }
356 
357 
358 TLorentzVector PanTau::PanTauSeed::getSubsystemHLV(int tauConstituent_Type, bool& foundit) {
359  if(tauConstituent_Type > PanTau::TauConstituent::t_nTypes) {
360  foundit = false;
361  return {0,0,0,0};
362  }
363  foundit = true;
364  return m_TypeHLVs.at(tauConstituent_Type);
365 }
python.CaloBCIDAvgAlgConfig.acc3
def acc3
Definition: CaloBCIDAvgAlgConfig.py:69
xAOD::TauJetParameters::Mode_1p0n
@ Mode_1p0n
Definition: TauDefs.h:386
PanTauSeed.h
PanTau::PanTauSeed::type
virtual xAOD::Type::ObjectType type() const
The type of the object as a simple enumeration, remains pure virtual in e/gamma.
Definition: PanTauSeed.cxx:179
PanTau::TauConstituent::getTypeFlags
const std::vector< int > & getTypeFlags() const
Definition: TauConstituent.cxx:208
PanTau::PanTauSeed::m_decayModeHack_CellBasedShots
bool m_decayModeHack_CellBasedShots
Definition: PanTauSeed.h:198
PanTau::PanTauSeed::m_Constituents
std::vector< std::vector< PanTau::TauConstituent * > > m_Constituents
Definition: PanTauSeed.h:175
PanTau::TauConstituent::t_Neutral
@ t_Neutral
Definition: TauConstituent.h:45
xAOD::TauJetParameters::Mode_1p1n
@ Mode_1p1n
Definition: TauDefs.h:387
PanTau::PanTauSeed::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: PanTauSeed.h:90
PanTau::PanTauSeed::setPt
void setPt(float pt)
set the Pt
Definition: PanTauSeed.cxx:150
PanTau::PanTauSeed::m_ConstituentsList_AllSelected
std::vector< PanTau::TauConstituent * > m_ConstituentsList_AllSelected
Definition: PanTauSeed.h:188
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
PanTau::PanTauSeed::getSubsystemHLV
TLorentzVector getSubsystemHLV(int tauConstituent_Type, bool &foundit)
Definition: PanTauSeed.cxx:358
xAOD::TauJet_v3::phiIntermediateAxis
double phiIntermediateAxis() const
PanTau::TauConstituent::t_Charged
@ t_Charged
Definition: TauConstituent.h:44
ObjectType
ObjectType
Definition: BaseObject.h:11
SG::Accessor< float >
xAOD::TauJet_v3::etaIntermediateAxis
double etaIntermediateAxis() const
xAOD::TauJetParameters::nCharged
@ nCharged
Definition: TauDefs.h:266
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
PanTau::PanTauSeed::getConstituentsOfType
std::vector< PanTau::TauConstituent * > getConstituentsOfType(int tauConstituent_Type, bool &foundit)
Definition: PanTauSeed.cxx:337
PanTau::PanTauSeed::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
Definition: PanTauSeed.cxx:113
PanTau::PanTauSeed::t_NoValidInputTau
@ t_NoValidInputTau
Definition: PanTauSeed.h:34
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
test_pyathena.pt
pt
Definition: test_pyathena.py:11
PanTau::PanTauSeed::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition: PanTauSeed.cxx:107
PanTau::TauConstituent::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle as a TLorentzVector.
Definition: TauConstituent.cxx:100
PanTau::PanTauSeed::m_DecayMode_BySubAlg
int m_DecayMode_BySubAlg
Definition: PanTauSeed.h:195
PanTau::TauFeature
Definition: TauFeature.h:19
columnar::operator=
AccessorTemplate & operator=(AccessorTemplate &&that)
Definition: VectorColumn.h:88
PanTau::PanTauSeed::setEta
void setEta(float eta)
set the eta
Definition: PanTauSeed.cxx:157
TauConstituent.h
PanTau::PanTauSeed::m_IsValidSeed
bool m_IsValidSeed
Definition: PanTauSeed.h:166
PanTau::PanTauSeed::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle as a TLoretzVector.
Definition: PanTauSeed.cxx:133
PanTau::PanTauSeed::m_Features
PanTau::TauFeature * m_Features
flag to indicate whether the decay mode by cellbased was
Definition: PanTauSeed.h:203
xAOD::TauJetParameters::Mode_1pXn
@ Mode_1pXn
Definition: TauDefs.h:388
PanTau::PanTauSeed::m_p4
FourMom_t m_p4
4-momentum object
Definition: PanTauSeed.h:161
xAOD::TauJetParameters::DecayMode
DecayMode
Definition: TauDefs.h:385
PanTau::PanTauSeed::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: PanTauSeed.cxx:129
PanTau::PanTauSeed::t_nTechnicalQualities
@ t_nTechnicalQualities
Definition: PanTauSeed.h:39
python.CaloBCIDAvgAlgConfig.acc1
def acc1
Definition: CaloBCIDAvgAlgConfig.py:49
PanTau::PanTauSeed::m_TypeHLVs
std::vector< TLorentzVector > m_TypeHLVs
Definition: PanTauSeed.h:184
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
python.CaloBCIDAvgAlgConfig.acc2
def acc2
Definition: CaloBCIDAvgAlgConfig.py:59
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
Preparation.mode
mode
Definition: Preparation.py:107
PanTau::PanTauSeed::operator=
PanTauSeed & operator=(const PanTauSeed &seed)
Definition: PanTauSeed.cxx:75
PanTau::PanTauSeed::~PanTauSeed
~PanTauSeed()
Definition: PanTauSeed.cxx:30
python.LArRecUtilsConfig.acc4
def acc4
Definition: LArRecUtilsConfig.py:196
PanTau::PanTauSeed::m_ConstituentsList_All
std::vector< PanTau::TauConstituent * > m_ConstituentsList_All
Definition: PanTauSeed.h:192
xAOD::TauJetParameters::Mode_3p0n
@ Mode_3p0n
Definition: TauDefs.h:389
PanTau::PanTauSeed::PanTauSeed
PanTauSeed()
Definition: PanTauSeed.cxx:9
PanTau::PanTauSeed::m_TauJet
xAOD::TauJet * m_TauJet
Definition: PanTauSeed.h:171
PanTau::TauConstituent::isOfType
bool isOfType(TauConstituent::Type aType) const
Definition: TauConstituent.cxx:213
PanTau::PanTauSeed::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
Definition: PanTauSeed.cxx:101
PanTau::PanTauSeed::m_DecayMode_ByPanTau
int m_DecayMode_ByPanTau
Definition: PanTauSeed.h:196
PanTau::TauConstituent::t_Pi0Neut
@ t_Pi0Neut
Definition: TauConstituent.h:46
PanTau::PanTauSeed::m_TechnicalQuality
std::vector< int > m_TechnicalQuality
Definition: PanTauSeed.h:168
PanTau::PanTauSeed::getDecayMode
static int getDecayMode(int nCharged, int nNeutral)
Definition: PanTauSeed.cxx:289
PanTau::PanTauSeed::getNumberOfConstituentsOfType
int getNumberOfConstituentsOfType(int tauConstituent_Type)
Definition: PanTauSeed.cxx:348
PanTau
xAOD EDM
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:18
xAOD::TauJet_v3::mIntermediateAxis
double mIntermediateAxis() const
PanTau::PanTauSeed::setM
void setM(float m)
set the Mass
Definition: PanTauSeed.cxx:171
PanTau::PanTauSeed::isOfTechnicalQuality
bool isOfTechnicalQuality(int pantauSeed_TechnicalQuality) const
Definition: PanTauSeed.cxx:328
PanTau::TauConstituent::t_NoType
@ t_NoType
Definition: TauConstituent.h:43
PanTau::PanTauSeed::m_ProtoMomentum_Core
TLorentzVector m_ProtoMomentum_Core
Definition: PanTauSeed.h:178
PanTau::PanTauSeed::setPhi
void setPhi(float phi)
set the phi
Definition: PanTauSeed.cxx:164
PanTau::PanTauSeed::m_ConstituentsList_Core
std::vector< PanTau::TauConstituent * > m_ConstituentsList_Core
Definition: PanTauSeed.h:187
xAOD::TauJetParameters::Mode_3pXn
@ Mode_3pXn
Definition: TauDefs.h:390
xAODType::Tau
@ Tau
The object is a tau (jet)
Definition: ObjectType.h:49
PanTau::TauConstituent::t_nTypes
@ t_nTypes
Definition: TauConstituent.h:51
PanTau::PanTauSeed::m
virtual double m() const
The invariant mass of the particle.
Definition: PanTauSeed.cxx:119
xAOD::TauJetParameters::Mode_Error
@ Mode_Error
Definition: TauDefs.h:393
PanTau::TauConstituent
Definition: TauConstituent.h:25
xAOD::TauJet_v3::ptIntermediateAxis
double ptIntermediateAxis() const
xAOD::TauJetParameters::Mode_NotSet
@ Mode_NotSet
Definition: TauDefs.h:392
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43
PanTau::PanTauSeed::setP4
void setP4(float pt, float eta, float phi, float m)
set the 4-vec
Definition: PanTauSeed.cxx:137
PanTau::PanTauSeed::getDecayModeName
static std::string getDecayModeName(int decayMode)
Definition: PanTauSeed.cxx:312
xAOD::TauJetParameters::Mode_Other
@ Mode_Other
Definition: TauDefs.h:391
PanTau::PanTauSeed
Definition: PanTauSeed.h:24
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106
PanTau::PanTauSeed::e
virtual double e() const
The total energy of the particle.
Definition: PanTauSeed.cxx:125