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