ATLAS Offline Software
TruthParticle_v1.cxx
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // $Id: TruthParticle_v1.cxx 690336 2015-08-20 10:54:57Z abuckley $
8 
9 // System include(s):
10 #include <cmath>
11 #include <iostream>
12 #include <stdexcept>
13 
14 // Utility include(s):
17 
18 // xAOD include(s):
20 
21 // Accessor include:
23 
24 // Local include(s):
27 #include "TruthAccessors_v1.h"
28 
29 namespace xAOD {
30 
32  : IParticle() {
33 
34  }
35 
37  //
38  // Implementation for functions identifying the particle in the MC record
39  //
40 
42  setPdgId )
43 
44  int TruthParticle_v1::absPdgId() const {
45 
46  return std::abs( pdgId() );
47  }
48 
49  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TruthParticle_v1, int, uid,
50  setUid )
51  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TruthParticle_v1, int, status,
52  setStatus )
53 
54  //
56 
58  //
59  // Implementation of the links to the vertices
60  //
61 
62 
64  acc_prodVtxLink( "prodVtxLink" );
67  acc_decayVtxLink( "decayVtxLink" );
68 
70 
71  return ( acc_prodVtxLink.isAvailable( *this ) &&
72  acc_prodVtxLink( *this ).isValid() );
73  }
74 
76 
77  return hasProdVtx() ? *prodVtxLink() : nullptr;
78  }
79 
82  prodVtxLink, setProdVtxLink )
83 
84  bool TruthParticle_v1::hasDecayVtx() const {
85 
86  return ( acc_decayVtxLink.isAvailable( *this ) &&
87  acc_decayVtxLink( *this ).isValid() );
88  }
89 
91 
92  return hasDecayVtx() ? *decayVtxLink() : nullptr;
93  }
94 
95  AUXSTORE_OBJECT_SETTER_AND_GETTER( TruthParticle_v1,
97  decayVtxLink, setDecayVtxLink )
98 
99  //
101 
103  //
104  // Direct access to parents and children
105  //
106 
107  // Accessor for links to parents
109  acc_parentLinks( "parentLinks" );
110  // Accessor for links to children
112  acc_childLinks( "childLinks" );
113  // Note that in some conditions the vertex might be saved in a different collection from
114  // the daughters, causing the vertex to not know how many children or parents the particle has.
115  // An extra test lets us ensure that we avoid this case.
116 
117  size_t TruthParticle_v1::nParents() const {
118  if (hasProdVtx() && prodVtx()->nIncomingParticles()>0){
119  return prodVtx()->nIncomingParticles();
120  } else if ( acc_parentLinks.isAvailable( *this ) ) {
121  return acc_parentLinks( *this ).size();
122  }
123  return 0;
124  }
125 
126  const TruthParticle_v1* TruthParticle_v1::parent( size_t i ) const {
127  if (hasProdVtx() && prodVtx()->nIncomingParticles()>0){
128  return prodVtx()->incomingParticle( i );
129  } else if ( acc_parentLinks.isAvailable( *this ) && i<acc_parentLinks( *this ).size() ) {
130  return acc_parentLinks( *this )[i].isValid() ? *(acc_parentLinks( *this )[i]) : nullptr;
131  }
132  return nullptr;
133  }
134 
136  if (hasDecayVtx() && decayVtx()->nOutgoingParticles()>0){
137  return decayVtx()->nOutgoingParticles();
138  } else if ( acc_childLinks.isAvailable( *this ) ) {
139  return acc_childLinks( *this ).size();
140  }
141  return 0;
142  }
143 
144  const TruthParticle_v1* TruthParticle_v1::child( size_t i ) const {
145  if (hasDecayVtx() && decayVtx()->nOutgoingParticles()>0){
146  return decayVtx()->outgoingParticle( i );
147  } else if ( acc_childLinks.isAvailable( *this ) && i<acc_childLinks( *this ).size() ) {
148  return acc_childLinks( *this )[i].isValid() ? *(acc_childLinks( *this )[i]) : nullptr;
149  }
150  return nullptr;
151  }
152 
153  //
155 
157  //
158  // Implementation of the IParticle interface
159  //
160 
161  double TruthParticle_v1::pt() const {
162 
163  // Do the calculation by hand:
164  const double localPx = static_cast< double >( px() );
165  const double localPy = static_cast< double >( py() );
166  return std::sqrt( localPx * localPx + localPy * localPy );
167  }
168 
169  double TruthParticle_v1::eta() const {
170 
171  // Calculate the pseudo-rapidity using TLorentzVector.
172  // Could do something more lightweight later on.
173  return genvecP4().Eta();
174  }
175 
176  double TruthParticle_v1::phi() const {
177 
178  // Calculate the azimuth angle using TLorentzVector.
179  // Could do something more lightweight later on.
180  return genvecP4().Phi();
181  }
182 
185 
186  double TruthParticle_v1::rapidity() const {
187 
188  return genvecP4().Rapidity();
189  }
190 
192  return FourMom_t(px(), py(), pz(), e() );
193  }
194 
195  // not very different in this case; just adding for uniformity
197  return GenVecFourMom_t(px(), py(), pz(), e() );
198  }
199 
201 
202  return Type::TruthParticle;
203  }
204 
205  //
207 
209  //
210  // Implementation of the truth particle specific 4-momentum functions
211  //
212 
213  double TruthParticle_v1::abseta() const {
214 
215  return std::abs( eta() );
216  }
217 
219 
220  return std::abs( rapidity() );
221  }
222 
224 
226 
228 
229 
230  void TruthParticle_v1::setE( float value ) {
231  static const Accessor< float > acc( "e" );
232  acc( *this ) = value;
233  return;
234  }
235 
237  static const Accessor< float > acc( "m" );
238  acc( *this ) = value;
239  return;
240  }
241 
242  //
244 
246  //
247  // Implementation of the particle species decoder functions
248  //
249 
251 #define MC_PID_HELPER( TYPE, FNAME ) \
252  TYPE TruthParticle_v1::FNAME() const { \
253  return MC::FNAME( pdgId() ); \
254  }
255 
256 
257  MC_PID_HELPER( double, charge )
258  MC_PID_HELPER( int, threeCharge )
259 
260  MC_PID_HELPER( bool, isCharged )
261  MC_PID_HELPER( bool, isNeutral )
262 
263  MC_PID_HELPER( bool, isPhoton )
264  MC_PID_HELPER( bool, isLepton )
265  MC_PID_HELPER( bool, isChLepton )
266  MC_PID_HELPER( bool, isElectron )
267  MC_PID_HELPER( bool, isMuon )
268  MC_PID_HELPER( bool, isTau )
269  MC_PID_HELPER( bool, isNeutrino )
270 
271  MC_PID_HELPER( bool, isHadron )
272  MC_PID_HELPER( bool, isMeson )
273  MC_PID_HELPER( bool, isBaryon )
274 
275  MC_PID_HELPER( bool, hasStrange )
276  MC_PID_HELPER( bool, hasCharm )
277  MC_PID_HELPER( bool, hasBottom )
278 
279  MC_PID_HELPER( bool, isLightMeson )
282 
283  MC_PID_HELPER( bool, isHeavyMeson )
286 
290 
291  MC_PID_HELPER( bool, isCharmMeson )
294 
298 
299  MC_PID_HELPER( bool, isQuark )
300  MC_PID_HELPER( bool, isParton )
301  MC_PID_HELPER( bool, isTop )
302  MC_PID_HELPER( bool, isW )
303  MC_PID_HELPER( bool, isZ )
304  MC_PID_HELPER( bool, isHiggs )
305  MC_PID_HELPER( bool, isResonance )
307  MC_PID_HELPER( bool, isBSM )
308 
309 // Forget about this macro:
310 #undef MC_PID_HELPER
311  bool TruthParticle_v1::isGenStable() const { return MC::isGenStable(this); };
312  bool TruthParticle_v1::isStable() const { return MC::isStable(this); };
314 
315 
316 
317  //
319 
321  //
322  // Implementation of the optional polarization accessors
323  //
324 
326  PolParam param ) const {
327 
328  // Get the accessor object:
329  const Accessor< float >* acc = polarizationAccessorV1( param );
330  if( ! acc ) {
331  // The user asked for a non-existent parameter type. o.O
332  std::cerr << "xAOD::TruthParticle_v1::polarizationParameter ERROR "
333  << "Request for an unknown (" << param << ") polarization "
334  << "parameter type" << std::endl;
335  return false;
336  }
337  // Check if the variable is available:
338  if( ! acc->isAvailable( *this ) ) {
339  // No, it is not.
340  return false;
341  }
342 
343  // Read the value:
344  value = ( *acc )( *this );
345  return true;
346  }
347 
349  PolParam param ) {
350 
351  // Get the accessor object:
352  const Accessor< float >* acc = polarizationAccessorV1( param );
353  if( ! acc ) {
354  // The user asked for a non-existent parameter type. o.O
355  std::cerr << "xAOD::TruthParticle_v1::setPolarizationParameter ERROR "
356  << "Request for an unknown (" << param << ") polarization "
357  << "parameter type" << std::endl;
358  return false;
359  }
360 
361  // Set the value:
362  ( *acc )( *this ) = value;
363  return true;
364  }
365 
367 
368  // Get the accessor object:
369  const Accessor< float >* acc = polarizationAccessorV1( param );
370  if( ! acc ) {
371  // Throw an exception:
372  throw std::runtime_error( "Unrecognized polarization parameter "
373  "requested" );
374  }
375 
376  // Read the value:
377  return ( *acc )( *this );
378  }
379 
381 
382  // Construct the object:
383  Polarization rtn;
386 
387  return rtn;
388  }
389 
390  //
392 
394 
395  if( acc_prodVtxLink.isAvailableWritable( *this ) ) {
396  acc_prodVtxLink( *this ).toPersistent();
397  }
398  if( acc_decayVtxLink.isAvailableWritable( *this ) ) {
399  acc_decayVtxLink( *this ).toPersistent();
400  }
401  return;
402  }
403 
404 } // namespace xAOD
xAOD::TruthVertex_v1::nOutgoingParticles
size_t nOutgoingParticles() const
Get the number of outgoing particles.
isStrangeMeson
bool isStrangeMeson(const T &p)
Definition: AtlasPID.h:906
xAOD::AUXSTORE_PRIMITIVE_SETTER_AND_GETTER
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
isBottomMeson
bool isBottomMeson(const T &p)
Definition: AtlasPID.h:908
xAOD::TruthParticle_v1::absPdgId
int absPdgId() const
Absolute PDG ID code (often useful)
test_pyathena.px
px
Definition: test_pyathena.py:18
isHeavyHadron
bool isHeavyHadron(const T &p)
Definition: AtlasPID.h:898
xAOD::IParticle::isAvailable
XAOD_AUXDATA_DEPRECATED bool isAvailable(const std::string &name, const std::string &clsname="") const
Check if a user property is available for reading or not.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:135
xAOD::TruthParticle_v1::toPersistent
void toPersistent()
Function making sure that the object is ready for persistification.
Definition: TruthParticle_v1.cxx:393
isBottomBaryon
bool isBottomBaryon(const T &p)
Definition: AtlasPID.h:924
xAOD::TruthParticle_v1::type
virtual Type::ObjectType type() const override final
The type of the object as a simple enumeration.
Definition: TruthParticle_v1.cxx:200
xAOD::TruthParticle_v1::pz
float pz() const
The z component of the particle's momentum.
hasCharm
bool hasCharm(const T &p)
Definition: AtlasPID.h:727
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
AuxStoreAccessorMacros.h
isBSM
bool isBSM(const T &p)
APID: graviton and all Higgs extensions are BSM.
Definition: AtlasPID.h:836
isGenSpecific
bool isGenSpecific(const T &p)
Main Table for MC internal use 81–100,901–930,998-999,1901–1930,2901–2930, and 3901–3930.
Definition: AtlasPID.h:422
MC_PID_HELPER
#define MC_PID_HELPER(TYPE, FNAME)
Helper macro to implement the functions that rely in functions from MC:: namespace.
Definition: TruthParticle_v1.cxx:251
isMeson
bool isMeson(const T &p)
Table 43.1 PDG rule 5a: The numbers specifying the meson’s quark content conform to the convention nq...
Definition: AtlasPID.h:241
TruthVertexContainer.h
xAOD::TruthParticle_v1::setPolarizationParameter
bool setPolarizationParameter(float value, PolParam parameter)
Set method for polarization parameter values.
Definition: TruthParticle_v1.cxx:348
threeCharge
double threeCharge(const T &p)
Definition: AtlasPID.h:992
isCharmMeson
bool isCharmMeson(const T &p)
Definition: AtlasPID.h:907
hasBottom
bool hasBottom(const T &p)
Definition: AtlasPID.h:728
xAOD::TruthParticle_v1::isGenStable
bool isGenStable() const
Check if this is generator stable particle.
Definition: TruthParticle_v1.cxx:311
xAOD::TruthParticle_v1::TruthParticle_v1
TruthParticle_v1()
Default constructor.
Definition: TruthParticle_v1.cxx:31
xAOD::TruthParticle_v1::polarization
Polarization polarization() const
Retrieve a full Polarization with a single call.
Definition: TruthParticle_v1.cxx:380
isNeutrino
bool isNeutrino(const T &p)
APID: the fourth generation neutrinos are neutrinos.
Definition: AtlasPID.h:209
xAOD::TruthParticle_v1::px
float px() const
The x component of the particle's momentum.
isResonance
bool isResonance(const T &p)
Definition: AtlasPID.h:397
athena.value
value
Definition: athena.py:124
isParton
bool isParton(const T &p)
Definition: AtlasPID.h:1072
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::TruthParticle_v1::rapidity
virtual double rapidity() const override final
The true rapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:186
xAOD::TruthParticle_v1::py
float py() const
The y component of the particle's momentum.
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
isHeavyBaryon
bool isHeavyBaryon(const T &p)
Definition: AtlasPID.h:921
isLightBaryon
bool isLightBaryon(const T &p)
Definition: AtlasPID.h:920
xAOD::TruthParticle_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > GenVecFourMom_t
Base 4 Momentum type for TruthParticle.
Definition: TruthParticle_v1.h:152
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
xAOD::py
py
Definition: CompositeParticle_v1.cxx:160
isBottomHadron
bool isBottomHadron(const T &p)
Definition: AtlasPID.h:901
MC::isGenStable
bool isGenStable(const T &p)
Determine if the particle is stable at the generator (not det-sim) level,.
Definition: HepMCHelpers.h:54
isLightMeson
bool isLightMeson(const T &p)
Definition: AtlasPID.h:904
isHiggs
bool isHiggs(const T &p)
APID: HIGGS boson is only one particle.
Definition: AtlasPID.h:387
xAOD::uid
uid
Definition: TruthVertex_v1.cxx:29
isQuark
bool isQuark(const T &p)
PDG rule 2: Quarks and leptons are numbered consecutively starting from 1 and 11 respectively; to do ...
Definition: AtlasPID.h:164
xAOD::TruthParticle_v1::hasDecayVtx
bool hasDecayVtx() const
Check for a decay vertex on this particle.
xAOD::TruthParticle_v1::nParents
size_t nParents() const
Number of parents of this particle.
Definition: TruthParticle_v1.cxx:117
xAOD::TruthParticle_v1::setM
void setM(float value)
Also store the mass.
Definition: TruthParticle_v1.cxx:236
isLightHadron
bool isLightHadron(const T &p)
Definition: AtlasPID.h:897
xAOD::TruthParticle_v1::e
virtual double e() const override final
The total energy of the particle.
xAOD::TruthParticle_v1::prodVtxLink
const ElementLink< TruthVertexContainer > & prodVtxLink() const
The production vertex link of this particle.
HepMC::is_simulation_particle
bool is_simulation_particle(const T &p)
Method to establish if a particle (or barcode) was created during the simulation (TODO update to be s...
Definition: MagicNumbers.h:354
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::e
setPy e
Definition: CompositeParticle_v1.cxx:166
xAOD::EgammaHelpers::isElectron
bool isElectron(const xAOD::Egamma *eg)
is the object an electron (not Fwd)
Definition: EgammaxAODHelpers.cxx:12
xAOD::AUXSTORE_PRIMITIVE_GETTER_WITH_CAST
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
isZ
bool isZ(const T &p)
Definition: AtlasPID.h:376
xAOD::charge
charge
Definition: TrigElectron_v1.cxx:85
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
isCharmBaryon
bool isCharmBaryon(const T &p)
Definition: AtlasPID.h:923
xAOD::TruthParticle
TruthParticle_v1 TruthParticle
Typedef to implementation.
Definition: Event/xAOD/xAODTruth/xAODTruth/TruthParticle.h:15
xAOD::TruthParticle_v1::hasProdVtx
bool hasProdVtx() const
Check for a production vertex on this particle.
Definition: TruthParticle_v1.cxx:69
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
isNeutral
bool isNeutral(const T &p)
Definition: AtlasPID.h:1054
xAOD::TruthParticle_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector form.
Definition: TruthParticle_v1.cxx:196
TruthParticle_v1.h
xAOD::TruthParticle_v1::absrapidity
double absrapidity() const
The true absolute rapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:218
hasStrange
bool hasStrange(const T &p)
Definition: AtlasPID.h:726
xAOD::TruthVertex_v1::incomingParticle
const TruthParticle_v1 * incomingParticle(size_t index) const
Get one of the incoming particles.
Definition: TruthVertex_v1.cxx:70
xAOD::TruthVertex
TruthVertex_v1 TruthVertex
Typedef to implementation.
Definition: TruthVertex.h:15
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
isChLepton
bool isChLepton(const T &p)
APID: the fourth generation leptons are leptons.
Definition: AtlasPID.h:196
xAOD::TruthParticle_v1::decayVtxLink
const ElementLink< TruthVertexContainer > & decayVtxLink() const
The decay vertex link of this particle.
TruthAccessors_v1.h
xAOD::TruthParticle_v1::isSimulationParticle
bool isSimulationParticle() const
Check if this particle was produced during the simulation.
Definition: TruthParticle_v1.cxx:313
isTau
bool isTau(const T &p)
Definition: AtlasPID.h:205
xAOD::TruthParticle_v1::Polarization::phi
float phi
Polarization in ( )
Definition: TruthParticle_v1.h:378
xAOD::IParticle::isAvailableWritable
XAOD_AUXDATA_DEPRECATED bool isAvailableWritable(const std::string &name, const std::string &clsname="") const
Check if a user property is available for writing or not.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:152
xAOD::TruthParticle_v1::decayVtx
const TruthVertex_v1 * decayVtx() const
The decay vertex of this particle.
xAOD::TruthParticle_v1::prodVtx
const TruthVertex_v1 * prodVtx() const
The production vertex of this particle.
Definition: TruthParticle_v1.cxx:75
xAOD::TruthVertex_v1
Class describing a truth vertex in the MC record.
Definition: TruthVertex_v1.h:37
xAOD::TruthParticle_v1::nChildren
size_t nChildren() const
Number of children of this particle.
Definition: TruthParticle_v1.cxx:135
xAOD::TruthParticle_v1::isStable
bool isStable() const
Check if this is a stable particle (generator or simulation produced)
Definition: TruthParticle_v1.cxx:312
isStrangeHadron
bool isStrangeHadron(const T &p)
Definition: AtlasPID.h:899
MagicNumbers.h
isHadron
bool isHadron(const T &p)
Definition: AtlasPID.h:348
runIDPVM.pdgId
pdgId
Definition: runIDPVM.py:91
xAOD::TruthParticle_v1::child
const TruthParticle_v1 * child(size_t i) const
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
Definition: TruthParticle_v1.cxx:144
isBaryon
bool isBaryon(const T &p)
Table 43.2 APID: states with fourth generation quarks are not baryons.
Definition: AtlasPID.h:279
xAOD::TruthParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:169
xAOD::TruthParticle_v1::polarizationParameter
bool polarizationParameter(float &value, PolParam parameter) const
Accessor for polarization parameters.
Definition: TruthParticle_v1.cxx:325
xAOD::polarizationAccessorV1
const SG::AuxElement::Accessor< float > * polarizationAccessorV1(TruthParticle_v1::PolParam type)
This function holds on to Accessor objects that can be used by each TruthParticle_v1 object at runtim...
Definition: TruthAccessors_v1.cxx:25
xAOD::TruthParticle_v1::PolParam
PolParam
Polarization parameter types.
Definition: TruthParticle_v1.h:316
isW
bool isW(const T &p)
Definition: AtlasPID.h:379
MC::isStable
bool isStable(const T &p)
Identify if the particle is stable, i.e. has not decayed.
Definition: HepMCHelpers.h:45
isCharged
bool isCharged(const T &p)
Definition: AtlasPID.h:993
isTop
bool isTop(const T &p)
Definition: AtlasPID.h:182
xAOD::TruthParticle_v1::polarizationTheta
@ polarizationTheta
Polarization in ( )
Definition: TruthParticle_v1.h:318
xAOD::TruthParticle_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
Definition: TruthParticle_v1.cxx:176
xAOD::TruthVertex_v1::nIncomingParticles
size_t nIncomingParticles() const
Get the number of incoming particles.
xAOD::TruthParticle_v1::polarizationPhi
@ polarizationPhi
Polarization in ( )
Definition: TruthParticle_v1.h:317
xAOD::EgammaHelpers::isPhoton
bool isPhoton(const xAOD::Egamma *eg)
is the object a photon
Definition: EgammaxAODHelpers.cxx:21
isLepton
bool isLepton(const T &p)
APID: the fourth generation leptons are leptons.
Definition: AtlasPID.h:186
xAOD::TruthParticle_v1::parent
const TruthParticle_v1 * parent(size_t i) const
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
Definition: TruthParticle_v1.cxx:126
isCharmHadron
bool isCharmHadron(const T &p)
Definition: AtlasPID.h:900
xAOD::TruthParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TruthParticle_v1.cxx:161
isHeavyMeson
bool isHeavyMeson(const T &p)
Definition: AtlasPID.h:905
isStrangeBaryon
bool isStrangeBaryon(const T &p)
Definition: AtlasPID.h:922
merge.status
status
Definition: merge.py:16
xAOD::TruthParticle_v1::p4
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Definition: TruthParticle_v1.cxx:191
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
xAOD::TruthParticle_v1::Polarization
Single container for full polarization information.
Definition: TruthParticle_v1.h:366
xAOD::TruthParticle_v1::pdgId
int pdgId() const
PDG ID code.
xAOD::TruthVertex_v1::outgoingParticle
const TruthParticle_v1 * outgoingParticle(size_t index) const
Get one of the outgoing particles.
Definition: TruthVertex_v1.cxx:120
HepMCHelpers.h
xAOD::TruthParticle_v1::Polarization::theta
float theta
Polarization in ( )
Definition: TruthParticle_v1.h:379
AuxElement.h
Base class for elements of a container that can have aux data.
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106
xAOD::TruthParticle_v1::abseta
double abseta() const
The absolute pseudorapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:213
xAOD::AUXSTORE_OBJECT_SETTER_AND_GETTER
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
Definition: CaloRings_v1.cxx:27
isMuon
bool isMuon(const T &p)
Definition: AtlasPID.h:202
xAOD::TruthParticle_v1::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: TruthParticle_v1.h:142