ATLAS Offline Software
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
xAOD::TruthParticle_v1 Class Reference

Class describing a truth particle in the MC record. More...

#include <TruthParticle_v1.h>

Inheritance diagram for xAOD::TruthParticle_v1:
Collaboration diagram for xAOD::TruthParticle_v1:

Classes

struct  Polarization
 Single container for full polarization information. More...
 

Public Types

using TypelessConstAccessor = ConstAuxElement::TypelessConstAccessor
 
template<class T , class ALLOC = AuxAllocator_t<T>>
using ConstAccessor = SG::ConstAccessor< T, ALLOC >
 
template<class T , class ALLOC = AuxAllocator_t<T>>
using Accessor = SG::Accessor< T, ALLOC >
 
template<class T , class ALLOC = AuxAllocator_t<T>>
using Decorator = SG::Decorator< T, ALLOC >
 

Public Member Functions

 TruthParticle_v1 ()
 Default constructor. More...
 
void toPersistent ()
 Function making sure that the object is ready for persistification. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor< T, ALLOC >::reference_type auxdata (const std::string &name)
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor< T, ALLOC >::const_reference_type auxdata (const std::string &name) const
 Fetch an aux data variable, as a const reference. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
bool isAvailableWritable (const std::string &name, const std::string &clsname="")
 Check if an aux variable is available for writing. More...
 
const SG::AuxVectorDatacontainer () const
 Return the container holding this element. More...
 
SG::AuxVectorDatacontainer ()
 Return the container holding this element. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor< T, ALLOC >::const_reference_type auxdataConst (const std::string &name) const
 Fetch an aux data variable, as a const reference. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor< T, ALLOC >::const_reference_type auxdataConst (const std::string &name, const std::string &clsname) const
 Fetch an aux data variable, as a const reference. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
bool isAvailableWritableAsDecoration (const std::string &name, const std::string &clsname="") const
 Check if an aux variable is available for writing as a decoration. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
Decorator< T, ALLOC >::reference_type auxdecor (const std::string &name) const
 Fetch an aux decoration, as a non-const reference. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>>
Decorator< T, ALLOC >::reference_type auxdecor (const std::string &name, const std::string &clsname) const
 Fetch an aux decoration, as a non-const reference. More...
 
void makePrivateStore ()
 Create a new (empty) private store for this object. More...
 
template<class U1 >
void makePrivateStore (const U1 &other)
 Create a new private store for this object and copy aux data. More...
 
template<class U1 >
void makePrivateStore (const U1 *other)
 Create a new private store for this object and copy aux data. More...
 
void releasePrivateStore ()
 Release and free any private store associated with this object. More...
 
void setStore (const SG::IConstAuxStore *store)
 Set the store associated with this object. More...
 
void setStore (SG::IAuxStore *store)
 Set the store associated with this object. More...
 
void setStore (const DataLink< SG::IConstAuxStore > &store)
 Set the store associated with this object. More...
 
void setConstStore (const SG::IConstAuxStore *store)
 Synonym for setStore with IConstAuxStore. More...
 
void setNonConstStore (SG::IAuxStore *store)
 Synonym for setStore with IAuxStore. More...
 
bool usingPrivateStore () const
 Test to see if this object is currently using a private store. More...
 
bool usingStandaloneStore () const
 Test to see if this object is currently using a standalone store. More...
 
const SG::IConstAuxStoregetConstStore () const
 Return the current store, as a const interface. More...
 
SG::IAuxStoregetStore () const
 Return the current store, as a non-const interface. More...
 
void clearCache ()
 Clear the cached aux data pointers. More...
 
const SG::auxid_set_tgetAuxIDs () const
 Return a set of identifiers for existing data items for this object. More...
 
bool hasStore () const
 Return true if this object has an associated store. More...
 
bool hasNonConstStore () const
 Return true if this object has an associated non-const store. More...
 
bool clearDecorations () const
 Clear all decorations. More...
 
bool trackIndices () const
 Return true if index tracking is enabled for this object. More...
 
size_t index () const
 Return the index of this element within its container. More...
 
size_t index () const
 Return the index of this element within its container. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 
Functions identifying the particle in the MC record
void setPdgId (int pid)
 Set PDG ID code. More...
 
int pdgId () const
 PDG ID code. More...
 
int pdg_id () const
 PDG ID code. More...
 
int absPdgId () const
 Absolute PDG ID code (often useful) More...
 
int barcode () const
 Barcode. More...
 
void setBarcode (int value)
 Set barcode. More...
 
int id () const
 Unique ID. More...
 
int status () const
 Status code. More...
 
void setStatus (int value)
 Set status code. More...
 
Links to the production and decay vertices
bool hasProdVtx () const
 Check for a production vertex on this particle. More...
 
const TruthVertex_v1prodVtx () const
 The production vertex of this particle. More...
 
const TruthVertex_v1production_vertex () const
 The production vertex of this particle. More...
 
const ElementLink< TruthVertexContainer > & prodVtxLink () const
 The production vertex link of this particle. More...
 
void setProdVtxLink (const ElementLink< TruthVertexContainer > &link)
 Set the production vertex of the particle. More...
 
bool hasDecayVtx () const
 Check for a decay vertex on this particle. More...
 
const TruthVertex_v1decayVtx () const
 The decay vertex of this particle. More...
 
const TruthVertex_v1end_vertex () const
 The decay vertex of this particle. More...
 
const ElementLink< TruthVertexContainer > & decayVtxLink () const
 The decay vertex link of this particle. More...
 
void setDecayVtxLink (const ElementLink< TruthVertexContainer > &link)
 Set the decay vertex of the particle. More...
 
Particle connection / origin / decay information
size_t nParents () const
 Number of parents of this particle. More...
 
const TruthParticle_v1parent (size_t i=0) const
 Retrieve the i-th mother (TruthParticle) of this TruthParticle. More...
 
size_t nChildren () const
 Number of children of this particle. More...
 
const TruthParticle_v1child (size_t i=0) const
 Retrieve the i-th mother (TruthParticle) of this TruthParticle. More...
 
4-momentum accessors specific to truth particles
double abseta () const
 The absolute pseudorapidity ( \(|\eta|\)) of the particle. More...
 
double absrapidity () const
 The true absolute rapidity ( \(|y|\)) of the particle. More...
 
float px () const
 The x component of the particle's momentum. More...
 
void setPx (float value)
 Set the x component of the particle's momentum. More...
 
float py () const
 The y component of the particle's momentum. More...
 
void setPy (float value)
 Set the y component of the particle's momentum. More...
 
float pz () const
 The z component of the particle's momentum. More...
 
void setPz (float value)
 Set the z component of the particle's momentum. More...
 
void setE (float value)
 Set the energy of the particle. More...
 
void setM (float value)
 Also store the mass. More...
 
Particle species information

Just convenience methods here, since they all just forward to the utility functions operating on the PDG particle ID code.

double charge () const
 Physical charge. More...
 
int threeCharge () const
 3 x the physical charge (so it can be an int for quarks) More...
 
bool isCharged () const
 Whether the particle is electrically charged. More...
 
bool isNeutral () const
 Whether the particle is electrically neutral. More...
 
bool isPhoton () const
 Whether the particle is a photon. More...
 
bool isLepton () const
 Whether the particle is a lepton. More...
 
bool isChLepton () const
 Whether the particle is a charged lepton. More...
 
bool isElectron () const
 Whether the particle is an electron (or positron) More...
 
bool isMuon () const
 Whether the particle is a muon (or antimuon) More...
 
bool isTau () const
 Whether the particle is a tau (or antitau) More...
 
bool isNeutrino () const
 Whether the particle is a neutrino (or antineutrino) More...
 
bool isHadron () const
 Whether the particle is a hadron. More...
 
bool isMeson () const
 Whether the particle is a meson. More...
 
bool isBaryon () const
 Whether the particle is a baryon. More...
 
bool hasStrange () const
 Whether the particle contains a strange quark (or antiquark) More...
 
bool hasCharm () const
 Whether the particle contains a charm quark (or antiquark) More...
 
bool hasBottom () const
 Whether the particle contains a bottom quark (or antiquark) More...
 
bool isLightMeson () const
 Determine if the PID is that of a light flavour (not b or c) meson. More...
 
bool isLightBaryon () const
 Determine if the PID is that of a light flavour (not b or c) baryon. More...
 
bool isLightHadron () const
 Determine if the PID is that of a light flavour (not b or c) hadron. More...
 
bool isHeavyMeson () const
 Determine if the PID is that of a heavy flavour (b or c) meson. More...
 
bool isHeavyBaryon () const
 Determine if the PID is that of a heavy flavour (b or c) baryon. More...
 
bool isHeavyHadron () const
 Determine if the PID is that of a heavy flavour (b or c) hadron. More...
 
bool isBottomMeson () const
 Determine if the PID is that of a b-meson. More...
 
bool isBottomBaryon () const
 Determine if the PID is that of a b-baryon. More...
 
bool isBottomHadron () const
 Determine if the PID is that of a b-hadron. More...
 
bool isCharmMeson () const
 Determine if the PID is that of a c-meson. More...
 
bool isCharmBaryon () const
 Determine if the PID is that of a c-baryon. More...
 
bool isCharmHadron () const
 Determine if the PID is that of a c-hadron. More...
 
bool isStrangeMeson () const
 Determine if the PID is that of a strange meson. More...
 
bool isStrangeBaryon () const
 Determine if the PID is that of a strange baryon. More...
 
bool isStrangeHadron () const
 Determine if the PID is that of a strange hadron. More...
 
bool isQuark () const
 Check if this particle is a quark. More...
 
bool isParton () const
 Check if this particle is a parton. More...
 
bool isTop () const
 Check if this particle is a top quark. More...
 
bool isW () const
 Check if this particle is a W boson. More...
 
bool isZ () const
 Check if this particle is a Z boson. More...
 
bool isHiggs () const
 Check if this particle is a Higgs boson. More...
 
bool isResonance () const
 Check if this particle is a resonant state. More...
 
bool isGenSpecific () const
 Check if this is a generator specific (non-physical) particle. More...
 
bool isBSM () const
 Check if this is a BSM particle. More...
 
bool isGenStable () const
 Check if this is generator stable particle. More...
 
Functions for getting and setting user properties
template<class T >
T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference. More...
 
template<class T >
const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference. More...
 
template<class T >
bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not. More...
 
template<class T >
bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not. More...
 

Static Public Attributes

static constexpr bool supportsThinning = true
 Mark that this type supports thinning operations. More...
 

Protected Member Functions

bool noPrivateData () const
 True if this element has no private data. More...
 
bool havePrivateData () const
 True if this element currently has private data. More...
 
bool hadPrivateData () const
 True if this element had private data before it was added to its current container. More...
 

Private Types

enum  PrivateStoreState : uint8_t { PrivateStoreState::NO_PRIVATE = 0, PrivateStoreState::HAVE_PRIVATE = 1, PrivateStoreState::HAD_PRIVATE = 2 }
 The current private data state. More...
 

Private Member Functions

void releasePrivateStoreForDtor ()
 Out-of-line portion of destructor. More...
 
void setIndex (size_t index, SG::AuxVectorData *container)
 Set the index/container for this element. More...
 
bool setIndexPrivate (size_t index, SG::AuxVectorData *container)
 Set the index/container for this element. More...
 
void makePrivateStore1 (const void *)
 Create a new private store for this object and copy aux data. More...
 
void makePrivateStore1 (const AuxElement *other)
 Create a new private store for this object and copy aux data. More...
 
AuxElementStandaloneData * setStore1 (const SG::IConstAuxStore *store)
 Set the store associated with this object. More...
 
void clearAux ()
 Clear all aux data associated with this element. More...
 
void copyAux (const ConstAuxElement &other)
 Copy aux data from another object. More...
 
void setNoPrivateData ()
 Record that this element does not have private data. More...
 
void setHavePrivateData ()
 Record that this element currently has private data. More...
 
void setHadPrivateData ()
 Record that this element used to have private data. More...
 

Private Attributes

const SG::AuxVectorDatam_container
 The container of which this object is an element. More...
 
size_t m_index
 The index of this element within its container. More...
 
PrivateStoreState m_privateStoreState
 

Functions implementing the xAOD::IParticle interface

Todo:
Add mappings of e.g.

isPrimary, isDecayed, isPrompt, isFromDecay, hasHadronicDecay, hasLeptonicDecay, isHadronic/LeptonicTau ...

Todo:
Add isFirstWith, isLastWith
typedef IParticle::FourMom_t FourMom_t
 Definition of the 4-momentum type. More...
 
typedef ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > GenVecFourMom_t
 Base 4 Momentum type for TruthParticle. More...
 
virtual double pt () const override final
 The transverse momentum ( \(p_T\)) of the particle. More...
 
virtual double eta () const override final
 The pseudorapidity ( \(\eta\)) of the particle. More...
 
virtual double phi () const override final
 The azimuthal angle ( \(\phi\)) of the particle. More...
 
virtual double m () const override final
 The mass of the particle. More...
 
virtual double e () const override final
 The total energy of the particle. More...
 
virtual double rapidity () const override final
 The true rapidity ( \(y\)) of the particle. More...
 
virtual FourMom_t p4 () const override final
 The full 4-momentum of the particle. More...
 
GenVecFourMom_t genvecP4 () const
 The full 4-momentum of the particle : GenVector form. More...
 
virtual Type::ObjectType type () const override final
 The type of the object as a simple enumeration. More...
 

Polarization properties (optional)

enum  PolParam { polarizationPhi = 0, polarizationTheta = 1 }
 Polarization parameter types. More...
 
bool polarizationParameter (float &value, PolParam parameter) const
 Accessor for polarization parameters. More...
 
bool setPolarizationParameter (float value, PolParam parameter)
 Set method for polarization parameter values. More...
 
float polarizationParameter (PolParam parameter) const
 Convenience accessor for a polariozation parameter. More...
 
Polarization polarization () const
 Retrieve a full Polarization with a single call. More...
 

Detailed Description

Class describing a truth particle in the MC record.

The xAOD truth record mimicks the structure of HepMC. Truth particles and truth vertices form a decay tree. Where each truth particle is connected to a single production and decay vertex. And each vertex is connected to one or more incoming, and one or more outgoing particles.

Author
Andy Buckley Andy..nosp@m.Buck.nosp@m.ley@c.nosp@m.ern..nosp@m.ch
Jovan Mitrevski Jovan.nosp@m..Mit.nosp@m.revsk.nosp@m.i@ce.nosp@m.rn.ch
Revision
624338
Date
2014-10-27 16:08:55 +0100 (Mon, 27 Oct 2014)

Definition at line 41 of file TruthParticle_v1.h.

Member Typedef Documentation

◆ Accessor

template<class T , class ALLOC = AuxAllocator_t<T>>
using SG::AuxElement::Accessor = SG::Accessor<T, ALLOC>
inherited

Definition at line 522 of file AuxElement.h.

◆ ConstAccessor

template<class T , class ALLOC = AuxAllocator_t<T>>
using SG::AuxElement::ConstAccessor = SG::ConstAccessor<T, ALLOC>
inherited

Definition at line 519 of file AuxElement.h.

◆ Decorator

template<class T , class ALLOC = AuxAllocator_t<T>>
using SG::AuxElement::Decorator = SG::Decorator<T, ALLOC>
inherited

Definition at line 525 of file AuxElement.h.

◆ FourMom_t

Definition of the 4-momentum type.

Definition at line 151 of file TruthParticle_v1.h.

◆ GenVecFourMom_t

typedef ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > xAOD::TruthParticle_v1::GenVecFourMom_t

Base 4 Momentum type for TruthParticle.

Definition at line 161 of file TruthParticle_v1.h.

◆ TypelessConstAccessor

using SG::AuxElement::TypelessConstAccessor = ConstAuxElement::TypelessConstAccessor
inherited

Definition at line 516 of file AuxElement.h.

Member Enumeration Documentation

◆ PolParam

Polarization parameter types.

Enumerator
polarizationPhi 

Polarization in ( \(\phi\))

polarizationTheta 

Polarization in ( \(\theta\))

Definition at line 321 of file TruthParticle_v1.h.

321  {
322  polarizationPhi = 0,
323  polarizationTheta = 1
324  };

◆ PrivateStoreState

enum SG::IAuxElement::PrivateStoreState : uint8_t
strongprivateinherited

The current private data state.

Enumerator
NO_PRIVATE 
HAVE_PRIVATE 
HAD_PRIVATE 

Definition at line 131 of file IAuxElement.h.

132  {
133  NO_PRIVATE = 0,
134  HAVE_PRIVATE = 1,
135  HAD_PRIVATE = 2,
136  };

Constructor & Destructor Documentation

◆ TruthParticle_v1()

xAOD::TruthParticle_v1::TruthParticle_v1 ( )

Default constructor.

Definition at line 31 of file TruthParticle_v1.cxx.

32  : IParticle() {
33 
34  }

Member Function Documentation

◆ abseta()

double xAOD::TruthParticle_v1::abseta ( ) const

The absolute pseudorapidity ( \(|\eta|\)) of the particle.

Todo:
Remove this when/if supported in xAOD::IParticle

Definition at line 218 of file TruthParticle_v1.cxx.

218  {
219 
220  return std::abs( eta() );
221  }

◆ absPdgId()

int xAOD::TruthParticle_v1::absPdgId ( ) const

Absolute PDG ID code (often useful)

◆ absrapidity()

double xAOD::TruthParticle_v1::absrapidity ( ) const

The true absolute rapidity ( \(|y|\)) of the particle.

Todo:
Remove this when/if supported in xAOD::IParticle

Definition at line 223 of file TruthParticle_v1.cxx.

223  {
224 
225  return std::abs( rapidity() );
226  }

◆ auxdata() [1/4]

template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor<T, ALLOC>::reference_type SG::AuxElement::auxdata ( const std::string &  name)
inherited

Fetch an aux data variable, as a non-const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

◆ auxdata() [2/4]

template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor<T, ALLOC>::const_reference_type SG::AuxElement::auxdata ( const std::string &  name) const
inherited

Fetch an aux data variable, as a const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor or ConstAccessor classes.

◆ auxdata() [3/4]

template<class T >
T& xAOD::IParticle::auxdata ( const std::string &  name,
const std::string &  clsname = "" 
)
inlineinherited

Fetch an aux data variable, as a non-const reference.

This function provides an easy way for users to decorate objects with auxiliary data.

Take note that this function is slow. Should not be used inside time-critical code.

Parameters
nameName of the aux variable
clsnameThe name of the associated class. May be blank
Returns
A modifyable reference to the decoration

Definition at line 96 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

97  {
98 
99  return SG::AuxElement::auxdata< T >( name, clsname );
100  }

◆ auxdata() [4/4]

template<class T >
const T& xAOD::IParticle::auxdata ( const std::string &  name,
const std::string &  clsname = "" 
) const
inlineinherited

Fetch an aux data variable, as a const reference.

This function provides an easy way for users to retrieve auxiliary decorations from an object.

Take note that this function is slow. Should not be used inside time-critical code.

Parameters
nameName of the aux variable
clsnameThe name of the associated class. May be blank
Returns
A constant reference to the decoration

Definition at line 115 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

116  {
117 
118  return SG::AuxElement::auxdata< T >( name, clsname );
119  }

◆ auxdataConst() [1/2]

template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor<T, ALLOC>::const_reference_type SG::AuxElement::auxdataConst ( const std::string &  name) const
inherited

Fetch an aux data variable, as a const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the ConstAccessor class.

◆ auxdataConst() [2/2]

template<class T , class ALLOC = AuxAllocator_t<T>>
Accessor<T, ALLOC>::const_reference_type SG::AuxElement::auxdataConst ( const std::string &  name,
const std::string &  clsname 
) const
inherited

Fetch an aux data variable, as a const reference.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the ConstAccessor class.

◆ auxdecor() [1/2]

template<class T , class ALLOC = AuxAllocator_t<T>>
Decorator<T, ALLOC>::reference_type SG::AuxElement::auxdecor ( const std::string &  name) const
inherited

Fetch an aux decoration, as a non-const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

If the container is locked, this will allow fetching only variables that do not yet exist (in which case they will be marked as decorations) or variables already marked as decorations.

◆ auxdecor() [2/2]

template<class T , class ALLOC = AuxAllocator_t<T>>
Decorator<T, ALLOC>::reference_type SG::AuxElement::auxdecor ( const std::string &  name,
const std::string &  clsname 
) const
inherited

Fetch an aux decoration, as a non-const reference.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

If the container is locked, this will allow fetching only variables that do not yet exist (in which case they will be marked as decorations) or variables already marked as decorations.

◆ barcode()

int xAOD::TruthParticle_v1::barcode ( ) const

Barcode.

Note
Meaning of barcode may change – be careful!

◆ charge()

double xAOD::TruthParticle_v1::charge ( ) const

Physical charge.

◆ child()

const TruthParticle_v1 * xAOD::TruthParticle_v1::child ( size_t  i = 0) const

Retrieve the i-th mother (TruthParticle) of this TruthParticle.

Definition at line 149 of file TruthParticle_v1.cxx.

149  {
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  }

◆ clearAux()

void SG::AuxElement::clearAux ( )
privateinherited

Clear all aux data associated with this element.

If this object has no associated store, this does nothing. If the associated aux data is const, this throws ExcConstAuxData.

Definition at line 535 of file AuxElement.cxx.

536 {
537  if (!m_container) return;
538  if (!m_container->hasStore()) return;
540  throw SG::ExcConstAuxData ("clearAux", SG::null_auxid);
541 
543  for (SG::auxid_t auxid : m_container->getWritableAuxIDs()) {
544  r.clear (auxid, *container(), index(), 1);
545  }
546 }

◆ clearCache()

void SG::AuxElement::clearCache ( )
inherited

Clear the cached aux data pointers.

You should call this any time something changes in the aux store that could invalidate the vector pointers.

Definition at line 319 of file AuxElement.cxx.

320 {
321  if (container())
322  container()->clearCache();
323 }

◆ clearDecorations()

bool SG::AuxElement::clearDecorations ( ) const
inherited

Clear all decorations.

Erase all decorations from an associated store, restoring the state to when lock was called.

Returns true if there were any decorations that were cleared, false if the store did not contain any decorations.

Definition at line 385 of file AuxElement.cxx.

386 {
387  if (havePrivateData())
388  return m_container->clearDecorations();
389  return false;
390 }

◆ container() [1/2]

SG::AuxVectorData* SG::AuxElement::container ( )
inherited

Return the container holding this element.

◆ container() [2/2]

const SG::AuxVectorData* SG::AuxElement::container ( ) const
inherited

Return the container holding this element.

◆ copyAux()

void SG::AuxElement::copyAux ( const ConstAuxElement other)
privateinherited

Copy aux data from another object.

Parameters
otherThe object from which to copy.

If this object has no associated store, this does nothing. If the associated aux data is const, this throws ExcConstAuxData.

All aux data items from other are copied to this object. Any aux data items associated with this object that are not present in other are cleared. (If other has no aux data, then all aux data items for this object are cleared.)

Definition at line 561 of file AuxElement.cxx.

562 {
563  if (!m_container) return;
564  if (!m_container->hasStore()) return;
566  throw SG::ExcConstAuxData ("copyAux");
567 
568  const SG::AuxVectorData* ocont = other.container();
569 
570  if (!ocont || !ocont->hasStore()) {
571  this->clearAux();
572  return;
573  }
574 
575  size_t oindex = other.index();
576  SG::auxid_set_t other_ids = ocont->getAuxIDs();
577 
579 
580  SG::AuxVectorData& cont = *container();
581  for (SG::auxid_t auxid : other_ids) {
582  r.copy (auxid, cont, index(), *ocont, oindex, 1);
583  }
584 
585  for (SG::auxid_t auxid : m_container->getWritableAuxIDs()) {
586  if (!other_ids.test (auxid)) {
587  r.clear (auxid, cont, index(), 1);
588  }
589  }
590 }

◆ decayVtx()

const TruthVertex_v1* xAOD::TruthParticle_v1::decayVtx ( ) const

The decay vertex of this particle.

◆ decayVtxLink()

const ElementLink< TruthVertexContainer >& xAOD::TruthParticle_v1::decayVtxLink ( ) const

The decay vertex link of this particle.

◆ e()

virtual double xAOD::TruthParticle_v1::e ( ) const
finaloverridevirtual

The total energy of the particle.

Implements xAOD::IParticle.

◆ end_vertex()

const TruthVertex_v1* xAOD::TruthParticle_v1::end_vertex ( ) const
inline

The decay vertex of this particle.

Definition at line 99 of file TruthParticle_v1.h.

99 { return decayVtx();}

◆ eta()

double xAOD::TruthParticle_v1::eta ( ) const
finaloverridevirtual

The pseudorapidity ( \(\eta\)) of the particle.

Implements xAOD::IParticle.

Definition at line 174 of file TruthParticle_v1.cxx.

174  {
175 
176  // Calculate the pseudo-rapidity using TLorentzVector.
177  // Could do something more lightweight later on.
178  return genvecP4().Eta();
179  }

◆ genvecP4()

TruthParticle_v1::GenVecFourMom_t xAOD::TruthParticle_v1::genvecP4 ( ) const

The full 4-momentum of the particle : GenVector form.

Definition at line 201 of file TruthParticle_v1.cxx.

201  {
202  return GenVecFourMom_t(px(), py(), pz(), e() );
203  }

◆ getAuxIDs()

const SG::auxid_set_t & SG::AuxElement::getAuxIDs ( ) const
inherited

Return a set of identifiers for existing data items for this object.

If this object has a private or standalone store, then information from that will be returned. Otherwise, if this element is part of a container, then information for the container will be returned. Otherwise, return an empty set.

Definition at line 335 of file AuxElement.cxx.

336 {
337 #ifdef ATHCONTAINERS_R21_COMPAT
338  if (havePrivateData())
339  return m_container->getConstStore()->getAuxIDs();
340  if (container())
341  return container()->getAuxIDs();
342  static const SG::auxid_set_t null_set;
343  return null_set;
344 #else
346 #endif
347 }

◆ getConstStore()

const SG::IConstAuxStore * SG::AuxElement::getConstStore ( ) const
inherited

Return the current store, as a const interface.

This will be non-zero if either a const or non-const store is associated with this object. This will fetch either a private or standalone store.

Definition at line 284 of file AuxElement.cxx.

285 {
286  if (havePrivateData()) {
287  return m_container->getConstStore();
288  }
289  return 0;
290 }

◆ getStore()

SG::IAuxStore * SG::AuxElement::getStore ( ) const
inherited

Return the current store, as a non-const interface.

This will be non-zero if a non-const store is associated with this object. This will fetch either a private or standalone store.

Definition at line 299 of file AuxElement.cxx.

300 {
301  if (havePrivateData()) {
302 #ifdef ATHCONTAINERS_R21_COMPAT
304 #else
305  SG::AuxVectorData* container_nc ATLAS_THREAD_SAFE = const_cast<SG::AuxVectorData*>(container());
306 #endif
307  return container_nc->getStore();
308  }
309  return 0;
310 }

◆ hadPrivateData()

bool SG::IAuxElement::hadPrivateData ( ) const
protectedinherited

True if this element had private data before it was added to its current container.

◆ hasBottom()

bool xAOD::TruthParticle_v1::hasBottom ( ) const

Whether the particle contains a bottom quark (or antiquark)

◆ hasCharm()

bool xAOD::TruthParticle_v1::hasCharm ( ) const

Whether the particle contains a charm quark (or antiquark)

◆ hasDecayVtx()

bool xAOD::TruthParticle_v1::hasDecayVtx ( ) const

Check for a decay vertex on this particle.

◆ hasNonConstStore()

bool SG::AuxElement::hasNonConstStore ( ) const
inherited

Return true if this object has an associated non-const store.

This will be true for either a private or standalone store.

Definition at line 368 of file AuxElement.cxx.

369 {
370  if (havePrivateData())
371  return m_container->hasNonConstStore();
372  return false;
373 }

◆ hasProdVtx()

bool xAOD::TruthParticle_v1::hasProdVtx ( ) const

Check for a production vertex on this particle.

Definition at line 74 of file TruthParticle_v1.cxx.

74  {
75 
76  return ( acc_prodVtxLink.isAvailable( *this ) &&
77  acc_prodVtxLink( *this ).isValid() );
78  }

◆ hasStore()

bool SG::AuxElement::hasStore ( ) const
inherited

Return true if this object has an associated store.

This will be true for either a private or standalone store.

Definition at line 355 of file AuxElement.cxx.

356 {
357  if (havePrivateData())
358  return m_container->hasStore();
359  return false;
360 }

◆ hasStrange()

bool xAOD::TruthParticle_v1::hasStrange ( ) const

Whether the particle contains a strange quark (or antiquark)

◆ havePrivateData()

bool SG::IAuxElement::havePrivateData ( ) const
protectedinherited

True if this element currently has private data.

◆ id()

int xAOD::TruthParticle_v1::id ( ) const

Unique ID.

Note
For now just an alias to barcode() - this will change in the future

◆ index() [1/2]

size_t SG::IAuxElement::index ( ) const
inherited

Return the index of this element within its container.

◆ index() [2/2]

size_t SG::IAuxElement::index
inherited

Return the index of this element within its container.

Inherited from IAuxElement.

◆ isAvailable()

template<class T >
bool xAOD::IParticle::isAvailable ( const std::string &  name,
const std::string &  clsname = "" 
) const
inlineinherited

Check if a user property is available for reading or not.

This function should be used to check if a user property which may or may not exist, is set on the object.

Parameters
nameName of the auxiliary variable
clsnameThe name of the associated class. May be blank
Returns
Whether the decoration exists or not

Definition at line 131 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

132  {
133 
134  return SG::AuxElement::isAvailable< T >( name, clsname );
135  }

◆ isAvailableWritable() [1/2]

template<class T , class ALLOC = AuxAllocator_t<T>>
bool SG::AuxElement::isAvailableWritable ( const std::string &  name,
const std::string &  clsname = "" 
)
inherited

Check if an aux variable is available for writing.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

◆ isAvailableWritable() [2/2]

template<class T >
bool xAOD::IParticle::isAvailableWritable ( const std::string &  name,
const std::string &  clsname = "" 
) const
inlineinherited

Check if a user property is available for writing or not.

This function can be used to check whether it will be possible to set a user property on the object.

Parameters
nameName of the auxiliary variable
clsnameThe name of the associated class. May be blank
Returns
Whether the decoration is possible to set

Definition at line 147 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

148  {
149 
150  return SG::AuxElement::isAvailableWritable< T >( name, clsname );
151  }

◆ isAvailableWritableAsDecoration()

template<class T , class ALLOC = AuxAllocator_t<T>>
bool SG::AuxElement::isAvailableWritableAsDecoration ( const std::string &  name,
const std::string &  clsname = "" 
) const
inherited

Check if an aux variable is available for writing as a decoration.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

◆ isBaryon()

bool xAOD::TruthParticle_v1::isBaryon ( ) const

Whether the particle is a baryon.

◆ isBottomBaryon()

bool xAOD::TruthParticle_v1::isBottomBaryon ( ) const

Determine if the PID is that of a b-baryon.

◆ isBottomHadron()

bool xAOD::TruthParticle_v1::isBottomHadron ( ) const

Determine if the PID is that of a b-hadron.

◆ isBottomMeson()

bool xAOD::TruthParticle_v1::isBottomMeson ( ) const

Determine if the PID is that of a b-meson.

◆ isBSM()

bool xAOD::TruthParticle_v1::isBSM ( ) const

Check if this is a BSM particle.

◆ isCharged()

bool xAOD::TruthParticle_v1::isCharged ( ) const

Whether the particle is electrically charged.

◆ isCharmBaryon()

bool xAOD::TruthParticle_v1::isCharmBaryon ( ) const

Determine if the PID is that of a c-baryon.

Specifically, the heaviest quark is a c: a baryon containing a b & c is a b-baryon and NOT a c-baryon. To test for the simpler case, just use a combination of hasCharm() and isBaryon().

◆ isCharmHadron()

bool xAOD::TruthParticle_v1::isCharmHadron ( ) const

Determine if the PID is that of a c-hadron.

◆ isCharmMeson()

bool xAOD::TruthParticle_v1::isCharmMeson ( ) const

Determine if the PID is that of a c-meson.

Specifically, the heaviest quark is a c: a B_c is a b-meson and NOT a c-meson. Charmonia (closed charm) are counted as c-mesons here.

◆ isChLepton()

bool xAOD::TruthParticle_v1::isChLepton ( ) const

Whether the particle is a charged lepton.

◆ isElectron()

bool xAOD::TruthParticle_v1::isElectron ( ) const

Whether the particle is an electron (or positron)

◆ isGenSpecific()

bool xAOD::TruthParticle_v1::isGenSpecific ( ) const

Check if this is a generator specific (non-physical) particle.

◆ isGenStable()

bool xAOD::TruthParticle_v1::isGenStable ( ) const

Check if this is generator stable particle.

Definition at line 316 of file TruthParticle_v1.cxx.

316 { return MC::isGenStable(this);};

◆ isHadron()

bool xAOD::TruthParticle_v1::isHadron ( ) const

Whether the particle is a hadron.

◆ isHeavyBaryon()

bool xAOD::TruthParticle_v1::isHeavyBaryon ( ) const

Determine if the PID is that of a heavy flavour (b or c) baryon.

◆ isHeavyHadron()

bool xAOD::TruthParticle_v1::isHeavyHadron ( ) const

Determine if the PID is that of a heavy flavour (b or c) hadron.

◆ isHeavyMeson()

bool xAOD::TruthParticle_v1::isHeavyMeson ( ) const

Determine if the PID is that of a heavy flavour (b or c) meson.

◆ isHiggs()

bool xAOD::TruthParticle_v1::isHiggs ( ) const

Check if this particle is a Higgs boson.

◆ isLepton()

bool xAOD::TruthParticle_v1::isLepton ( ) const

Whether the particle is a lepton.

◆ isLightBaryon()

bool xAOD::TruthParticle_v1::isLightBaryon ( ) const

Determine if the PID is that of a light flavour (not b or c) baryon.

◆ isLightHadron()

bool xAOD::TruthParticle_v1::isLightHadron ( ) const

Determine if the PID is that of a light flavour (not b or c) hadron.

◆ isLightMeson()

bool xAOD::TruthParticle_v1::isLightMeson ( ) const

Determine if the PID is that of a light flavour (not b or c) meson.

◆ isMeson()

bool xAOD::TruthParticle_v1::isMeson ( ) const

Whether the particle is a meson.

◆ isMuon()

bool xAOD::TruthParticle_v1::isMuon ( ) const

Whether the particle is a muon (or antimuon)

◆ isNeutral()

bool xAOD::TruthParticle_v1::isNeutral ( ) const

Whether the particle is electrically neutral.

◆ isNeutrino()

bool xAOD::TruthParticle_v1::isNeutrino ( ) const

Whether the particle is a neutrino (or antineutrino)

◆ isParton()

bool xAOD::TruthParticle_v1::isParton ( ) const

Check if this particle is a parton.

◆ isPhoton()

bool xAOD::TruthParticle_v1::isPhoton ( ) const

Whether the particle is a photon.

◆ isQuark()

bool xAOD::TruthParticle_v1::isQuark ( ) const

Check if this particle is a quark.

◆ isResonance()

bool xAOD::TruthParticle_v1::isResonance ( ) const

Check if this particle is a resonant state.

◆ isStrangeBaryon()

bool xAOD::TruthParticle_v1::isStrangeBaryon ( ) const

Determine if the PID is that of a strange baryon.

◆ isStrangeHadron()

bool xAOD::TruthParticle_v1::isStrangeHadron ( ) const

Determine if the PID is that of a strange hadron.

◆ isStrangeMeson()

bool xAOD::TruthParticle_v1::isStrangeMeson ( ) const

Determine if the PID is that of a strange meson.

◆ isTau()

bool xAOD::TruthParticle_v1::isTau ( ) const

Whether the particle is a tau (or antitau)

◆ isTop()

bool xAOD::TruthParticle_v1::isTop ( ) const

Check if this particle is a top quark.

◆ isW()

bool xAOD::TruthParticle_v1::isW ( ) const

Check if this particle is a W boson.

◆ isZ()

bool xAOD::TruthParticle_v1::isZ ( ) const

Check if this particle is a Z boson.

◆ m()

virtual double xAOD::TruthParticle_v1::m ( ) const
finaloverridevirtual

The mass of the particle.

Note, not necessarily = \(E^2-p^2\) if not on mass shell.

Implements xAOD::IParticle.

◆ makePrivateStore() [1/3]

void SG::AuxElement::makePrivateStore ( )
inherited

Create a new (empty) private store for this object.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

Definition at line 172 of file AuxElement.cxx.

173 {
174  if (m_container) {
175  throw SG::ExcBadPrivateStore ("store already exists");
176  }
177 
181 }

◆ makePrivateStore() [2/3]

template<class U1 >
void SG::AuxElement::makePrivateStore ( const U1 &  other)
inherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

If other is an object that has aux data, then those data will be copied; otherwise, nothing will be done.

◆ makePrivateStore() [3/3]

template<class U1 >
void SG::AuxElement::makePrivateStore ( const U1 *  other)
inherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

If other is an object that has aux data, then those data will be copied; otherwise, nothing will be done.

◆ makePrivateStore1() [1/2]

void SG::AuxElement::makePrivateStore1 ( const AuxElement other)
privateinherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

This overload handles the case where other does have aux data.

Definition at line 521 of file AuxElement.cxx.

522 {
524  if (other)
525  this->copyAux (*other);
526 }

◆ makePrivateStore1() [2/2]

void SG::AuxElement::makePrivateStore1 ( const void *  )
privateinherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

This overload handles the case where other does not have aux data.

◆ nChildren()

size_t xAOD::TruthParticle_v1::nChildren ( ) const

Number of children of this particle.

Definition at line 140 of file TruthParticle_v1.cxx.

140  {
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  }

◆ noPrivateData()

bool SG::IAuxElement::noPrivateData ( ) const
protectedinherited

True if this element has no private data.

◆ nParents()

size_t xAOD::TruthParticle_v1::nParents ( ) const

Number of parents of this particle.

Definition at line 122 of file TruthParticle_v1.cxx.

122  {
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  }

◆ p4()

TruthParticle_v1::FourMom_t xAOD::TruthParticle_v1::p4 ( ) const
finaloverridevirtual

The full 4-momentum of the particle.

Note that m may not be right, though, if not on mass shell. In which case p4().M() will be different from m().

Implements xAOD::IParticle.

Definition at line 196 of file TruthParticle_v1.cxx.

196  {
197  return FourMom_t(px(), py(), pz(), e() );
198  }

◆ parent()

const TruthParticle_v1 * xAOD::TruthParticle_v1::parent ( size_t  i = 0) const

Retrieve the i-th mother (TruthParticle) of this TruthParticle.

Definition at line 131 of file TruthParticle_v1.cxx.

131  {
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  }

◆ pdg_id()

int xAOD::TruthParticle_v1::pdg_id ( ) const
inline

PDG ID code.

Definition at line 56 of file TruthParticle_v1.h.

56 { return pdgId();}

◆ pdgId()

int xAOD::TruthParticle_v1::pdgId ( ) const

PDG ID code.

◆ phi()

double xAOD::TruthParticle_v1::phi ( ) const
finaloverridevirtual

The azimuthal angle ( \(\phi\)) of the particle.

Implements xAOD::IParticle.

Definition at line 181 of file TruthParticle_v1.cxx.

181  {
182 
183  // Calculate the azimuth angle using TLorentzVector.
184  // Could do something more lightweight later on.
185  return genvecP4().Phi();
186  }

◆ polarization()

TruthParticle_v1::Polarization xAOD::TruthParticle_v1::polarization ( ) const

Retrieve a full Polarization with a single call.

Note
May have invalid values – use valid() to check.
Returns
An object holding the full polarization information

Definition at line 383 of file TruthParticle_v1.cxx.

383  {
384 
385  // Construct the object:
386  Polarization rtn;
389 
390  return rtn;
391  }

◆ polarizationParameter() [1/2]

bool xAOD::TruthParticle_v1::polarizationParameter ( float value,
PolParam  parameter 
) const

Accessor for polarization parameters.

Generic C++ code should use this function to retrieve the polarization parameters of a truth particle. Since these parameters are optional, the function is designed to tell the user whether the requested parameter could be retrieved or not.

Parameters
valueThe polarization parameter value read from the object
parameterThe polarization parameter that we are interested in
Returns
true if the retrieval was successful, false if it wasn't

Definition at line 328 of file TruthParticle_v1.cxx.

329  {
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  }

◆ polarizationParameter() [2/2]

float xAOD::TruthParticle_v1::polarizationParameter ( PolParam  parameter) const

Convenience accessor for a polariozation parameter.

Throws an exception if the request can't be completed. It should mostly be used in PyROOT, as the other form of this function is very hard to use there. But one needs to know for sure that the requested parameter will exist.

Parameters
parameterThe polarion parameter that we are interested in
Returns
The value of the polarization parameter requested

Definition at line 369 of file TruthParticle_v1.cxx.

369  {
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  }

◆ production_vertex()

const TruthVertex_v1* xAOD::TruthParticle_v1::production_vertex ( ) const
inline

The production vertex of this particle.

Definition at line 86 of file TruthParticle_v1.h.

86 { return prodVtx();}

◆ prodVtx()

const TruthVertex * xAOD::TruthParticle_v1::prodVtx ( ) const

The production vertex of this particle.

Definition at line 80 of file TruthParticle_v1.cxx.

80  {
81 
82  return hasProdVtx() ? *prodVtxLink() : nullptr;
83  }

◆ prodVtxLink()

const ElementLink< TruthVertexContainer >& xAOD::TruthParticle_v1::prodVtxLink ( ) const

The production vertex link of this particle.

◆ pt()

double xAOD::TruthParticle_v1::pt ( ) const
finaloverridevirtual

The transverse momentum ( \(p_T\)) of the particle.

Implements xAOD::IParticle.

Definition at line 166 of file TruthParticle_v1.cxx.

166  {
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  }

◆ px()

float xAOD::TruthParticle_v1::px ( ) const

The x component of the particle's momentum.

◆ py()

float xAOD::TruthParticle_v1::py ( ) const

The y component of the particle's momentum.

◆ pz()

float xAOD::TruthParticle_v1::pz ( ) const

The z component of the particle's momentum.

◆ rapidity()

double xAOD::TruthParticle_v1::rapidity ( ) const
finaloverridevirtual

The true rapidity ( \(y\)) of the particle.

Implements xAOD::IParticle.

Definition at line 191 of file TruthParticle_v1.cxx.

191  {
192 
193  return genvecP4().Rapidity();
194  }

◆ releasePrivateStore()

void SG::AuxElement::releasePrivateStore ( )
inherited

Release and free any private store associated with this object.

ExcBadPrivateStore will be thrown if this object does not have a private store.

Definition at line 190 of file AuxElement.cxx.

191 {
192  if (hadPrivateData()) {
193  // We had a private store, but it was released because this object
194  // was added to a container. Just forget about it.
196  return;
197  }
198 
199  if (!havePrivateData() ||
200  !m_container ||
201  typeid(*m_container) != typeid(AuxElementPrivateData))
202  {
203  throw SG::ExcBadPrivateStore ("no private store exists");
204  }
205 
208  delete m_container;
209  m_container = 0;
210 }

◆ releasePrivateStoreForDtor()

void SG::AuxElement::releasePrivateStoreForDtor ( )
privateinherited

Out-of-line portion of destructor.

Delete a private store if we have one.

Definition at line 398 of file AuxElement.cxx.

399 {
400 #ifdef ATHCONTAINERS_R21_COMPAT
401  if (havePrivateData()) {
402  delete m_container;
403  }
404 #else
406 #endif
407 }

◆ setBarcode()

void xAOD::TruthParticle_v1::setBarcode ( int  value)

Set barcode.

◆ setConstStore()

void SG::AuxElement::setConstStore ( const SG::IConstAuxStore store)
inherited

Synonym for setStore with IConstAuxStore.

Parameters
storeThe new store.

◆ setDecayVtxLink()

void xAOD::TruthParticle_v1::setDecayVtxLink ( const ElementLink< TruthVertexContainer > &  link)

Set the decay vertex of the particle.

◆ setE()

void xAOD::TruthParticle_v1::setE ( float  value)

Set the energy of the particle.

Definition at line 235 of file TruthParticle_v1.cxx.

235  {
236  static const Accessor< float > acc( "e" );
237  acc( *this ) = value;
238  return;
239  }

◆ setHadPrivateData()

void SG::IAuxElement::setHadPrivateData ( )
privateinherited

Record that this element used to have private data.

◆ setHavePrivateData()

void SG::IAuxElement::setHavePrivateData ( )
privateinherited

Record that this element currently has private data.

◆ setIndex()

void SG::AuxElement::setIndex ( size_t  index,
SG::AuxVectorData container 
)
privateinherited

Set the index/container for this element.

Parameters
indexThe index of this object within the container.
containerThe container holding this object. May be null if this object is being removed from a container.

Usually this simply sets the index and container members of this object. However, in the case where this object has an associated private store, then we need to deal with releasing the store if the object is being added to a container, or making a new store if the object is being removed from a container.

◆ setIndexPrivate()

bool SG::AuxElement::setIndexPrivate ( size_t  index,
SG::AuxVectorData container 
)
privateinherited

Set the index/container for this element.

Parameters
indexThe index of this object within the container.
containerThe container holding this object. May be null if this object is being removed from a container.

This is called from setIndex when we have a private store to deal with.

Definition at line 462 of file AuxElement.cxx.

463 {
464 #ifdef ATHCONTAINERS_R21_COMPAT
465  if (hadPrivateData()) {
466  // We had a private store, but it was released because we were added
467  // to a container.
468 
469  if (container == 0) {
470  // We're being moved out of the container. Make a new private
471  // store, copy the data, and switch to it.
472  auto privateData = new SG::AuxElementPrivateData;
473  AuxElement to (privateData, 0);
474  to.copyAux (*this);
477  m_container = privateData;
478  return true;
479  }
480  }
481  else if (havePrivateData() &&
482  typeid(*m_container) == typeid(AuxElementPrivateData))
483  {
484  // We currently have a private store.
485 
486  if (container != 0 && container != m_container) {
487  // We're being added to a container.
488  // Aux data has already been copied.
489  // Release private store.
492  delete m_container;
494  return false;
495  }
496  }
497  else {
498  // We have a standalone store.
499  throw SG::ExcBadPrivateStore ("Attempt to add/remove a standalone object "
500  "from a container.");
501  }
502 
505  return false;
506 #else
508 #endif
509 }

◆ setM()

void xAOD::TruthParticle_v1::setM ( float  value)

Also store the mass.

Definition at line 241 of file TruthParticle_v1.cxx.

241  {
242  static const Accessor< float > acc( "m" );
243  acc( *this ) = value;
244  return;
245  }

◆ setNonConstStore()

void SG::AuxElement::setNonConstStore ( SG::IAuxStore store)
inherited

Synonym for setStore with IAuxStore.

Parameters
storeThe new store.

◆ setNoPrivateData()

void SG::IAuxElement::setNoPrivateData ( )
privateinherited

Record that this element does not have private data.

◆ setPdgId()

void xAOD::TruthParticle_v1::setPdgId ( int  pid)

Set PDG ID code.

◆ setPolarizationParameter()

bool xAOD::TruthParticle_v1::setPolarizationParameter ( float  value,
PolParam  parameter 
)

Set method for polarization parameter values.

In order to keep the symmetry with the getter function, this setter communicates a possible failure in its operation through a return value. Setting a polariozation parameter is much less likely to fail than retrieving one, but in some situations it may still happen...

Parameters
valueThe polarization parameter value to set on the object
parameterThe polarization parameter type that we want to set
Returns
true if the operation was successful, or false if it wasn't

Definition at line 351 of file TruthParticle_v1.cxx.

352  {
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  }

◆ setProdVtxLink()

void xAOD::TruthParticle_v1::setProdVtxLink ( const ElementLink< TruthVertexContainer > &  link)

Set the production vertex of the particle.

◆ setPx()

void xAOD::TruthParticle_v1::setPx ( float  value)

Set the x component of the particle's momentum.

◆ setPy()

void xAOD::TruthParticle_v1::setPy ( float  value)

Set the y component of the particle's momentum.

◆ setPz()

void xAOD::TruthParticle_v1::setPz ( float  value)

Set the z component of the particle's momentum.

◆ setStatus()

void xAOD::TruthParticle_v1::setStatus ( int  value)

Set status code.

◆ setStore() [1/3]

void SG::AuxElement::setStore ( const DataLink< SG::IConstAuxStore > &  store)
inherited

Set the store associated with this object.

Parameters
storeThe new store.

If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.

Parameters
storeLink to the new store.

Definition at line 249 of file AuxElement.cxx.

250 {
251  AuxElementStandaloneData* data = setStore1 (store);
252  if (store)
253  data->setStore (store);
254 }

◆ setStore() [2/3]

void SG::AuxElement::setStore ( const SG::IConstAuxStore store)
inherited

Set the store associated with this object.

Parameters
storeThe new store.

If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.

Definition at line 221 of file AuxElement.cxx.

222 {
223  AuxElementStandaloneData* data = setStore1 (store);
224  if (store)
225  data->setStore (store);
226 }

◆ setStore() [3/3]

void SG::AuxElement::setStore ( SG::IAuxStore store)
inherited

Set the store associated with this object.

Parameters
storeThe new store.

If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.

Definition at line 237 of file AuxElement.cxx.

238 {
239  AuxElementStandaloneData* data = setStore1 (store);
240  if (store)
241  data->setStore (store);
242 }

◆ setStore1()

AuxElementStandaloneData * SG::AuxElement::setStore1 ( const SG::IConstAuxStore store)
privateinherited

Set the store associated with this object.

Parameters
storeThe new store.

Helper for setStore. Creates the AuxElementStandaloneData object if needed and returns it.

Parameters
storeThe new store.

Helper for setStore. Creates the @x AuxElementStandaloneData object if needed and returns it.

Definition at line 418 of file AuxElement.cxx.

419 {
420  if (store) {
421  // Want this object be standalone.
422  if (!m_container) {
423  // Not in a container (and no private store). Make a new object.
424  AuxElementStandaloneData* data = new AuxElementStandaloneData;
426  m_container = data;
427  return data;
428  }
429  if (usingStandaloneStore()) {
430  // Standalone --- return existing object.
431  return static_cast<AuxElementStandaloneData*> (container());
432  }
433  // Otherwise, it's an error.
434  throw ExcBadPrivateStore ("Attempt to attach a standalone store to an "
435  "object in a container or with a private store.");
436  }
437 
438  else {
439  // Getting rid of a standalone store.
440  if (usingStandaloneStore()) {
442  delete m_container;
443  m_container = 0;
444  }
445  else if (m_container != 0)
446  throw ExcBadPrivateStore ("Attempt to remove a standalone store from an "
447  "object in a container or with a private store.");
448  return 0;
449  }
450 }

◆ status()

int xAOD::TruthParticle_v1::status ( ) const

Status code.

◆ threeCharge()

int xAOD::TruthParticle_v1::threeCharge ( ) const

3 x the physical charge (so it can be an int for quarks)

◆ toPersistent()

void xAOD::TruthParticle_v1::toPersistent ( )

Function making sure that the object is ready for persistification.

Definition at line 396 of file TruthParticle_v1.cxx.

396  {
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  }

◆ trackIndices()

bool SG::AuxElement::trackIndices ( ) const
inherited

Return true if index tracking is enabled for this object.

Always returns true. Included here to be consistent with AuxVectorBase when standalone objects may be used as template parameters.

◆ type()

Type::ObjectType xAOD::TruthParticle_v1::type ( ) const
finaloverridevirtual

The type of the object as a simple enumeration.

Implements xAOD::IParticle.

Definition at line 205 of file TruthParticle_v1.cxx.

205  {
206 
207  return Type::TruthParticle;
208  }

◆ usingPrivateStore()

bool SG::AuxElement::usingPrivateStore ( ) const
inherited

Test to see if this object is currently using a private store.

Definition at line 260 of file AuxElement.cxx.

261 {
262  return havePrivateData() &&
263  typeid(*m_container) == typeid(AuxElementPrivateData);
264 }

◆ usingStandaloneStore()

bool SG::AuxElement::usingStandaloneStore ( ) const
inherited

Test to see if this object is currently using a standalone store.

Test to see if this object is currently using a private store.

Definition at line 270 of file AuxElement.cxx.

271 {
272  return havePrivateData() &&
273  typeid(*m_container) == typeid(AuxElementStandaloneData);
274 }

Member Data Documentation

◆ m_container

const SG::AuxVectorData* SG::ConstAuxElement::m_container
privateinherited

The container of which this object is an element.

Should be null if this object is not within a container, except that it may also point at a private store.

Definition at line 298 of file AuxElement.h.

◆ m_index

size_t SG::IAuxElement::m_index
privateinherited

The index of this element within its container.

Should be 0 if this object is not within a container.

Definition at line 128 of file IAuxElement.h.

◆ m_privateStoreState

PrivateStoreState SG::IAuxElement::m_privateStoreState
privateinherited

Definition at line 137 of file IAuxElement.h.

◆ supportsThinning

constexpr bool SG::AuxElement::supportsThinning = true
staticconstexprinherited

Mark that this type supports thinning operations.

See AthContainers/supportsThinning.h and AthenaPoolCnvSvc/T_AthenaPoolCnv.h. Helps guide which pool converter template will be used. If false, the default pool converter will be used rather than the aux store-specific one. Ordinary xAOD type should not touch this, but may be overridden in a derived class to handle certain special cases.

Definition at line 883 of file AuxElement.h.


The documentation for this class was generated from the following files:
xAOD::TruthVertex_v1::nOutgoingParticles
size_t nOutgoingParticles() const
Get the number of outgoing particles.
SG::AuxVectorData::getConstStore
const SG::IConstAuxStore * getConstStore() const
Return the current store, as a const interface.
beamspotman.r
def r
Definition: beamspotman.py:676
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:69
SG::ConstAuxElement::getAuxIDs
const SG::auxid_set_t & getAuxIDs() const
Return a set of identifiers for existing data items for this object.
Definition: AuxElement.cxx:152
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
xAOD::name
name
Definition: TriggerMenuJson_v1.cxx:29
xAOD::TruthParticle_v1::toPersistent
void toPersistent()
Function making sure that the object is ready for persistification.
Definition: TruthParticle_v1.cxx:396
xAOD::TruthParticle_v1::pz
float pz() const
The z component of the particle's momentum.
SG::AuxTypeRegistry::instance
static AuxTypeRegistry & instance()
Return the singleton registry instance.
Definition: AuxTypeRegistry.cxx:49
SG::Accessor< float >
SG::AuxVectorData::getWritableAuxIDs
const SG::auxid_set_t & getWritableAuxIDs() const
Return a set of identifiers for writable data items in this store.
Definition: AuxVectorData.cxx:217
index
Definition: index.py:1
SG::AuxElement::copyAux
void copyAux(const ConstAuxElement &other)
Copy aux data from another object.
Definition: AuxElement.cxx:561
SG::ConstAuxElement::m_container
const SG::AuxVectorData * m_container
The container of which this object is an element.
Definition: AuxElement.h:298
TruthParticle
HepMC::GenParticle TruthParticle
Definition: Simulation/G4Sim/MCTruth/MCTruth/TruthEvent.h:13
SG::AuxVectorData::hasNonConstStore
bool hasNonConstStore() const
Return true if this object has an associated non-const store.
xAOD::TruthParticle_v1::px
float px() const
The x component of the particle's momentum.
athena.value
value
Definition: athena.py:122
SG::AuxElement::usingStandaloneStore
bool usingStandaloneStore() const
Test to see if this object is currently using a standalone store.
Definition: AuxElement.cxx:270
SG::ConstAuxElement::setIndexPrivate
bool setIndexPrivate(size_t index, const SG::AuxVectorData *container)
Set the index/container for this element.
Definition: AuxElement.cxx:96
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::ExcConstAuxData
Exception — Non-const operation performed on const aux data.
Definition: Control/AthContainers/AthContainers/exceptions.h:77
SG::IAuxElement::setNoPrivateData
void setNoPrivateData()
Record that this element does not have private data.
xAOD::TruthParticle_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > GenVecFourMom_t
Base 4 Momentum type for TruthParticle.
Definition: TruthParticle_v1.h:161
MC::isGenStable
bool isGenStable(const T &p)
Determine if the particle is stable at the generator (not det-sim) level,.
Definition: HepMCHelpers.h:36
SG::AuxVectorData::getAuxIDs
const SG::auxid_set_t & getAuxIDs() const
Return a set of identifiers for existing data items in store associated with this object.
Definition: AuxVectorData.cxx:201
SG::AuxTypeRegistry
Handle mappings between names and auxid_t.
Definition: AuxTypeRegistry.h:62
SG::IAuxElement::index
size_t index() const
Return the index of this element within its container.
SG::IAuxElement::setHadPrivateData
void setHadPrivateData()
Record that this element used to have private data.
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition: AuxTypes.h:27
xAOD::TruthParticle_v1::hasDecayVtx
bool hasDecayVtx() const
Check for a decay vertex on this particle.
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:92
SG::AuxElement::clearAux
void clearAux()
Clear all aux data associated with this element.
Definition: AuxElement.cxx:535
SG::AuxElement::AuxElement
AuxElement()
Default constructor.
SG::IAuxElement::havePrivateData
bool havePrivateData() const
True if this element currently has private data.
SG::AuxVectorData::getStore
SG::IAuxStore * getStore()
Return the current store, as a non-const interface.
xAOD::TruthParticle_v1::hasProdVtx
bool hasProdVtx() const
Check for a production vertex on this particle.
Definition: TruthParticle_v1.cxx:74
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
SG::AuxElementPrivateData
Internal data container for private store.
Definition: AuxElement.cxx:45
xAOD::TruthParticle_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector form.
Definition: TruthParticle_v1.cxx:201
xAOD::TruthVertex_v1::incomingParticle
const TruthParticle_v1 * incomingParticle(size_t index) const
Get one of the incoming particles.
Definition: TruthVertex_v1.cxx:71
SG::AuxVectorData::hasStore
bool hasStore() const
Return true if this object has an associated store.
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
SG::IAuxElement::setHavePrivateData
void setHavePrivateData()
Record that this element currently has private data.
SG::AuxVectorData::clearCache
void clearCache()
Clear the cached aux data pointers.
SG::AuxElement::makePrivateStore
void makePrivateStore()
Create a new (empty) private store for this object.
Definition: AuxElement.cxx:172
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::IParticle::isAvailable
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:131
xAOD::IParticle::IParticle
IParticle()=default
SG::IAuxElement::setIndex
void setIndex(size_t index)
Set the index of this element within its container.
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
SG::AuxVectorData::clearDecorations
bool clearDecorations() const
Clear all decorations.
Definition: AuxVectorData.cxx:593
xAOD::TruthParticle_v1::polarizationTheta
@ polarizationTheta
Polarization in ( )
Definition: TruthParticle_v1.h:323
SG::ExcBadPrivateStore
Exception — Bad use of private store.
Definition: Control/AthContainers/AthContainers/exceptions.h:113
xAOD::TruthVertex_v1::nIncomingParticles
size_t nIncomingParticles() const
Get the number of incoming particles.
Definition: TruthVertex_v1.cxx:49
xAOD::TruthParticle_v1::polarizationPhi
@ polarizationPhi
Polarization in ( )
Definition: TruthParticle_v1.h:322
SG::auxid_set_t
A set of aux data identifiers.
Definition: AuxTypes.h:47
SG::AuxVectorData
Manage lookup of vectors of auxiliary data.
Definition: AuxVectorData.h:167
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
SG::ConstAuxElement::releasePrivateStoreForDtor
void releasePrivateStoreForDtor()
Out-of-line portion of destructor.
Definition: AuxElement.cxx:79
SG::AuxElement::container
const SG::AuxVectorData * container() const
Return the container holding this element.
xAOD::TruthParticle_v1::pdgId
int pdgId() const
PDG ID code.
xAOD::IParticle::isAvailableWritable
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:147
xAOD::TruthVertex_v1::outgoingParticle
const TruthParticle_v1 * outgoingParticle(size_t index) const
Get one of the outgoing particles.
Definition: TruthVertex_v1.cxx:121
SG::IAuxElement::hadPrivateData
bool hadPrivateData() const
True if this element had private data before it was added to its current container.
SG::IConstAuxStore::getAuxIDs
virtual const SG::auxid_set_t & getAuxIDs() const =0
Return a set of identifiers for existing data items in this store.
SG::AuxElement::setStore1
AuxElementStandaloneData * setStore1(const SG::IConstAuxStore *store)
Set the store associated with this object.
Definition: AuxElement.cxx:418
xAOD::TruthParticle_v1::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: TruthParticle_v1.h:151