ATLAS Offline Software
TruthParticle_v1.cxx
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2020 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, barcode,
50  setBarcode )
51  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TruthParticle_v1, int, status,
52  setStatus )
53 
54 
55  int TruthParticle_v1::id() const {
56  return barcode();
57  }
58 
59  //
61 
63  //
64  // Implementation of the links to the vertices
65  //
66 
69  acc_prodVtxLink( "prodVtxLink" );
72  acc_decayVtxLink( "decayVtxLink" );
73 
75 
76  return ( acc_prodVtxLink.isAvailable( *this ) &&
77  acc_prodVtxLink( *this ).isValid() );
78  }
79 
81 
82  return hasProdVtx() ? *prodVtxLink() : nullptr;
83  }
84 
87  prodVtxLink, setProdVtxLink )
88 
89  bool TruthParticle_v1::hasDecayVtx() const {
90 
91  return ( acc_decayVtxLink.isAvailable( *this ) &&
92  acc_decayVtxLink( *this ).isValid() );
93  }
94 
96 
97  return hasDecayVtx() ? *decayVtxLink() : nullptr;
98  }
99 
100  AUXSTORE_OBJECT_SETTER_AND_GETTER( TruthParticle_v1,
102  decayVtxLink, setDecayVtxLink )
103 
104  //
106 
108  //
109  // Direct access to parents and children
110  //
111 
112  // Accessor for links to parents
114  acc_parentLinks( "parentLinks" );
115  // Accessor for links to children
117  acc_childLinks( "childLinks" );
118  // Note that in some conditions the vertex might be saved in a different collection from
119  // the daughters, causing the vertex to not know how many children or parents the particle has.
120  // An extra test lets us ensure that we avoid this case.
121 
122  size_t TruthParticle_v1::nParents() const {
123  if (hasProdVtx() && prodVtx()->nIncomingParticles()>0){
124  return prodVtx()->nIncomingParticles();
125  } else if ( acc_parentLinks.isAvailable( *this ) ) {
126  return acc_parentLinks( *this ).size();
127  }
128  return 0;
129  }
130 
131  const TruthParticle_v1* TruthParticle_v1::parent( size_t i ) const {
132  if (hasProdVtx() && prodVtx()->nIncomingParticles()>0){
133  return prodVtx()->incomingParticle( i );
134  } else if ( acc_parentLinks.isAvailable( *this ) && i<acc_parentLinks( *this ).size() ) {
135  return acc_parentLinks( *this )[i].isValid() ? *(acc_parentLinks( *this )[i]) : nullptr;
136  }
137  return nullptr;
138  }
139 
141  if (hasDecayVtx() && decayVtx()->nOutgoingParticles()>0){
142  return decayVtx()->nOutgoingParticles();
143  } else if ( acc_childLinks.isAvailable( *this ) ) {
144  return acc_childLinks( *this ).size();
145  }
146  return 0;
147  }
148 
149  const TruthParticle_v1* TruthParticle_v1::child( size_t i ) const {
150  if (hasDecayVtx() && decayVtx()->nOutgoingParticles()>0){
151  return decayVtx()->outgoingParticle( i );
152  } else if ( acc_childLinks.isAvailable( *this ) && i<acc_childLinks( *this ).size() ) {
153  return acc_childLinks( *this )[i].isValid() ? *(acc_childLinks( *this )[i]) : nullptr;
154  }
155  return nullptr;
156  }
157 
158  //
160 
162  //
163  // Implementation of the IParticle interface
164  //
165 
166  double TruthParticle_v1::pt() const {
167 
168  // Do the calculation by hand:
169  const double localPx = static_cast< double >( px() );
170  const double localPy = static_cast< double >( py() );
171  return std::sqrt( localPx * localPx + localPy * localPy );
172  }
173 
174  double TruthParticle_v1::eta() const {
175 
176  // Calculate the pseudo-rapidity using TLorentzVector.
177  // Could do something more lightweight later on.
178  return genvecP4().Eta();
179  }
180 
181  double TruthParticle_v1::phi() const {
182 
183  // Calculate the azimuth angle using TLorentzVector.
184  // Could do something more lightweight later on.
185  return genvecP4().Phi();
186  }
187 
190 
191  double TruthParticle_v1::rapidity() const {
192 
193  return genvecP4().Rapidity();
194  }
195 
197  return FourMom_t(px(), py(), pz(), e() );
198  }
199 
200  // not very different in this case; just adding for uniformity
202  return GenVecFourMom_t(px(), py(), pz(), e() );
203  }
204 
206 
207  return Type::TruthParticle;
208  }
209 
210  //
212 
214  //
215  // Implementation of the truth particle specific 4-momentum functions
216  //
217 
218  double TruthParticle_v1::abseta() const {
219 
220  return std::abs( eta() );
221  }
222 
224 
225  return std::abs( rapidity() );
226  }
227 
229 
231 
233 
234 
235  void TruthParticle_v1::setE( float value ) {
236  static const Accessor< float > acc( "e" );
237  acc( *this ) = value;
238  return;
239  }
240 
242  static const Accessor< float > acc( "m" );
243  acc( *this ) = value;
244  return;
245  }
246 
247  //
249 
251  //
252  // Implementation of the particle species decoder functions
253  //
254 
256 #define MC_PID_HELPER( TYPE, FNAME ) \
257  TYPE TruthParticle_v1::FNAME() const { \
258  return MC::FNAME( pdgId() ); \
259  }
260 
261 
262  MC_PID_HELPER( double, charge )
263  MC_PID_HELPER( int, threeCharge )
264 
265  MC_PID_HELPER( bool, isCharged )
266  MC_PID_HELPER( bool, isNeutral )
267 
268  MC_PID_HELPER( bool, isPhoton )
269  MC_PID_HELPER( bool, isLepton )
270  MC_PID_HELPER( bool, isChLepton )
271  MC_PID_HELPER( bool, isElectron )
272  MC_PID_HELPER( bool, isMuon )
273  MC_PID_HELPER( bool, isTau )
274  MC_PID_HELPER( bool, isNeutrino )
275 
276  MC_PID_HELPER( bool, isHadron )
277  MC_PID_HELPER( bool, isMeson )
278  MC_PID_HELPER( bool, isBaryon )
279 
280  MC_PID_HELPER( bool, hasStrange )
281  MC_PID_HELPER( bool, hasCharm )
282  MC_PID_HELPER( bool, hasBottom )
283 
284  MC_PID_HELPER( bool, isLightMeson )
287 
288  MC_PID_HELPER( bool, isHeavyMeson )
291 
295 
296  MC_PID_HELPER( bool, isCharmMeson )
299 
303 
304  MC_PID_HELPER( bool, isQuark )
305  MC_PID_HELPER( bool, isParton )
306  MC_PID_HELPER( bool, isTop )
307  MC_PID_HELPER( bool, isW )
308  MC_PID_HELPER( bool, isZ )
309  MC_PID_HELPER( bool, isHiggs )
310  MC_PID_HELPER( bool, isResonance )
312  MC_PID_HELPER( bool, isBSM )
313 
314 // Forget about this macro:
315 #undef MC_PID_HELPER
316  bool TruthParticle_v1::isGenStable() const { return MC::isGenStable(this);};
317 
318 
319 
320  //
322 
324  //
325  // Implementation of the optional polarization accessors
326  //
327 
329  PolParam param ) const {
330 
331  // Get the accessor object:
332  const Accessor< float >* acc = polarizationAccessorV1( param );
333  if( ! acc ) {
334  // The user asked for a non-existent parameter type. o.O
335  std::cerr << "xAOD::TruthParticle_v1::polarizationParameter ERROR "
336  << "Request for an unknown (" << param << ") polarization "
337  << "parameter type" << std::endl;
338  return false;
339  }
340  // Check if the variable is available:
341  if( ! acc->isAvailable( *this ) ) {
342  // No, it is not.
343  return false;
344  }
345 
346  // Read the value:
347  value = ( *acc )( *this );
348  return true;
349  }
350 
352  PolParam param ) {
353 
354  // Get the accessor object:
355  const Accessor< float >* acc = polarizationAccessorV1( param );
356  if( ! acc ) {
357  // The user asked for a non-existent parameter type. o.O
358  std::cerr << "xAOD::TruthParticle_v1::setPolarizationParameter ERROR "
359  << "Request for an unknown (" << param << ") polarization "
360  << "parameter type" << std::endl;
361  return false;
362  }
363 
364  // Set the value:
365  ( *acc )( *this ) = value;
366  return true;
367  }
368 
370 
371  // Get the accessor object:
372  const Accessor< float >* acc = polarizationAccessorV1( param );
373  if( ! acc ) {
374  // Throw an exception:
375  throw std::runtime_error( "Unrecognized polarization parameter "
376  "requested" );
377  }
378 
379  // Read the value:
380  return ( *acc )( *this );
381  }
382 
384 
385  // Construct the object:
386  Polarization rtn;
389 
390  return rtn;
391  }
392 
393  //
395 
397 
398  if( acc_prodVtxLink.isAvailableWritable( *this ) ) {
399  acc_prodVtxLink( *this ).toPersistent();
400  }
401  if( acc_decayVtxLink.isAvailableWritable( *this ) ) {
402  acc_decayVtxLink( *this ).toPersistent();
403  }
404  return;
405  }
406 
407 } // namespace xAOD
xAOD::TruthVertex_v1::nOutgoingParticles
size_t nOutgoingParticles() const
Get the number of outgoing particles.
xAOD::TruthParticle_v1::parent
const TruthParticle_v1 * parent(size_t i=0) const
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
Definition: TruthParticle_v1.cxx:131
isStrangeMeson
bool isStrangeMeson(const T &p)
Definition: AtlasPID.h:514
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:516
xAOD::TruthParticle_v1::absPdgId
int absPdgId() const
Absolute PDG ID code (often useful)
test_pyathena.px
px
Definition: test_pyathena.py:18
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
isHeavyHadron
bool isHeavyHadron(const T &p)
Definition: AtlasPID.h:506
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:396
isBottomBaryon
bool isBottomBaryon(const T &p)
Definition: AtlasPID.h:532
xAOD::TruthParticle_v1::type
virtual Type::ObjectType type() const override final
The type of the object as a simple enumeration.
Definition: TruthParticle_v1.cxx:205
xAOD::TruthParticle_v1::pz
float pz() const
The z component of the particle's momentum.
hasCharm
bool hasCharm(const T &p)
Definition: AtlasPID.h:501
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)
Definition: AtlasPID.h:224
isGenSpecific
bool isGenSpecific(const T &p)
Definition: AtlasPID.h:228
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:256
isMeson
bool isMeson(const T &p)
Definition: AtlasPID.h:219
TruthVertexContainer.h
xAOD::TruthParticle_v1::setPolarizationParameter
bool setPolarizationParameter(float value, PolParam parameter)
Set method for polarization parameter values.
Definition: TruthParticle_v1.cxx:351
threeCharge
double threeCharge(const T &p)
Definition: AtlasPID.h:544
isCharmMeson
bool isCharmMeson(const T &p)
Definition: AtlasPID.h:515
hasBottom
bool hasBottom(const T &p)
Definition: AtlasPID.h:502
xAOD::TruthParticle_v1::isGenStable
bool isGenStable() const
Check if this is generator stable particle.
Definition: TruthParticle_v1.cxx:316
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:383
isNeutrino
bool isNeutrino(const T &p)
APID: the fourth generation neutrinos are neutrinos.
Definition: AtlasPID.h:161
xAOD::TruthParticle_v1::px
float px() const
The x component of the particle's momentum.
isResonance
bool isResonance(const T &p)
Definition: AtlasPID.h:202
athena.value
value
Definition: athena.py:124
isParton
bool isParton(const T &p)
Definition: AtlasPID.h:611
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:191
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:529
isLightBaryon
bool isLightBaryon(const T &p)
Definition: AtlasPID.h:528
xAOD::TruthParticle_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > GenVecFourMom_t
Base 4 Momentum type for TruthParticle.
Definition: TruthParticle_v1.h:157
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:509
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:512
isHiggs
bool isHiggs(const T &p)
APID: HIGGS boson is only one particle.
Definition: AtlasPID.h:199
isQuark
bool isQuark(const T &p)
PDG rule 2: Quarks and leptons are numbered consecutively starting from 1 and 11 respectively; to dot...
Definition: AtlasPID.h:122
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:122
xAOD::TruthParticle_v1::setM
void setM(float value)
Also store the mass.
Definition: TruthParticle_v1.cxx:241
isLightHadron
bool isLightHadron(const T &p)
Definition: AtlasPID.h:505
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.
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
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
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:173
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:531
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:74
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
isNeutral
bool isNeutral(const T &p)
Definition: AtlasPID.h:546
xAOD::TruthParticle_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector form.
Definition: TruthParticle_v1.cxx:201
TruthParticle_v1.h
xAOD::TruthParticle_v1::absrapidity
double absrapidity() const
The true absolute rapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:223
hasStrange
bool hasStrange(const T &p)
Definition: AtlasPID.h:500
xAOD::TruthVertex_v1::incomingParticle
const TruthParticle_v1 * incomingParticle(size_t index) const
Get one of the incoming particles.
Definition: TruthVertex_v1.cxx:69
xAOD::TruthVertex
TruthVertex_v1 TruthVertex
Typedef to implementation.
Definition: TruthVertex.h:15
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
xAOD::TruthParticle_v1::barcode
int barcode() const
Barcode.
isChLepton
bool isChLepton(const T &p)
APID: the fourth generation leptons are leptons.
Definition: AtlasPID.h:148
xAOD::TruthParticle_v1::decayVtxLink
const ElementLink< TruthVertexContainer > & decayVtxLink() const
The decay vertex link of this particle.
TruthAccessors_v1.h
isTau
bool isTau(const T &p)
Definition: AtlasPID.h:157
xAOD::TruthParticle_v1::Polarization::phi
float phi
Polarization in ( )
Definition: TruthParticle_v1.h:379
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:80
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:140
isStrangeHadron
bool isStrangeHadron(const T &p)
Definition: AtlasPID.h:507
MagicNumbers.h
isHadron
bool isHadron(const T &p)
Definition: AtlasPID.h:218
isBaryon
bool isBaryon(const T &p)
Definition: AtlasPID.h:220
xAOD::TruthParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:174
xAOD::TruthParticle_v1::polarizationParameter
bool polarizationParameter(float &value, PolParam parameter) const
Accessor for polarization parameters.
Definition: TruthParticle_v1.cxx:328
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:317
xAOD::TruthParticle_v1::id
int id() const
Unique ID.
isW
bool isW(const T &p)
Definition: AtlasPID.h:176
isCharged
bool isCharged(const T &p)
Definition: AtlasPID.h:545
isTop
bool isTop(const T &p)
Definition: AtlasPID.h:135
xAOD::TruthParticle_v1::polarizationTheta
@ polarizationTheta
Polarization in ( )
Definition: TruthParticle_v1.h:319
xAOD::TruthParticle_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
Definition: TruthParticle_v1.cxx:181
xAOD::TruthVertex_v1::nIncomingParticles
size_t nIncomingParticles() const
Get the number of incoming particles.
Definition: TruthVertex_v1.cxx:47
xAOD::TruthParticle_v1::polarizationPhi
@ polarizationPhi
Polarization in ( )
Definition: TruthParticle_v1.h:318
xAOD::EgammaHelpers::isPhoton
bool isPhoton(const xAOD::Egamma *eg)
is the object a photon
Definition: EgammaxAODHelpers.cxx:21
xAOD::TruthParticle_v1::child
const TruthParticle_v1 * child(size_t i=0) const
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
Definition: TruthParticle_v1.cxx:149
isLepton
bool isLepton(const T &p)
APID: the fourth generation leptons are leptons.
Definition: AtlasPID.h:139
isCharmHadron
bool isCharmHadron(const T &p)
Definition: AtlasPID.h:508
xAOD::TruthParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TruthParticle_v1.cxx:166
isHeavyMeson
bool isHeavyMeson(const T &p)
Definition: AtlasPID.h:513
isStrangeBaryon
bool isStrangeBaryon(const T &p)
Definition: AtlasPID.h:530
merge.status
status
Definition: merge.py:17
xAOD::TruthParticle_v1::p4
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Definition: TruthParticle_v1.cxx:196
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:367
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:119
HepMCHelpers.h
xAOD::TruthParticle_v1::Polarization::theta
float theta
Polarization in ( )
Definition: TruthParticle_v1.h:380
AuxElement.h
Base class for elements of a container that can have aux data.
xAOD::TruthParticle_v1::abseta
double abseta() const
The absolute pseudorapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:218
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:154
xAOD::TruthParticle_v1::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: TruthParticle_v1.h:147