xAOD::TruthParticle_v1 Class Reference

#include <TruthParticle_v1.h>

Inheritance diagram for xAOD::TruthParticle_v1:
xAOD::IParticle SG::AuxElement SG::IAuxElement

List of all members.

Classes

struct  Polarization

Public Member Functions

 TruthParticle_v1 ()
 Default constructor.
void toPersistent ()
 Function making sure that the object is ready for persistification.
Functions identifying the particle in the MC record



void setPdgId (int pid)
 Set PDG ID code.
int pdgId () const
 PDG ID code.
int absPdgId () const
 Absolute PDG ID code (often useful).
int barcode () const
void setBarcode (int value)
 Set barcode.
int status () const
 Status code.
void setStatus (int value)
 Set status code.
Links to the production and decay vertices



bool hasProdVtx () const
 Check for a production vertex on this particle.
const TruthVertex_v1prodVtx () const
 The production vertex of this particle.
const ElementLink
< TruthVertexContainer > & 
prodVtxLink () const
 The production vertex link of this particle.
void setProdVtxLink (const ElementLink< TruthVertexContainer > &link)
 Set the production vertex of the particle.
bool hasDecayVtx () const
 Check for a decay vertex on this particle.
const TruthVertex_v1decayVtx () const
 The decay vertex of this particle.
const ElementLink
< TruthVertexContainer > & 
decayVtxLink () const
 The decay vertex link of this particle.
void setDecayVtxLink (const ElementLink< TruthVertexContainer > &link)
 Set the decay vertex of the particle.
Particle connection / origin / decay information



size_t nParents () const
 Number of parents of this particle.
const TruthParticle_v1parent (size_t i=0) const
 Retrieve the i-th mother (TruthParticle) of this TruthParticle.
size_t nChildren () const
 Number of children of this particle.
const TruthParticle_v1child (size_t i=0) const
 Retrieve the i-th mother (TruthParticle) of this TruthParticle.
4-momentum accessors specific to truth particles



double abseta () const
double absrapidity () const
float px () const
 The x component of the particle's momentum.
void setPx (float value)
 Set the x component of the particle's momentum.
float py () const
 The y component of the particle's momentum.
void setPy (float value)
 Set the y component of the particle's momentum.
float pz () const
 The z component of the particle's momentum.
void setPz (float value)
 Set the z component of the particle's momentum.
void setE (float value)
 Set the energy of the particle.
void setM (float value)
 Also store the mass.
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.
int threeCharge () const
 3 x the physical charge (so it can be an int for quarks)
bool isCharged () const
 Whether the particle is electrically charged.
bool isNeutral () const
 Whether the particle is electrically neutral.
bool isPhoton () const
 Whether the particle is a photon.
bool isLepton () const
 Whether the particle is a lepton.
bool isChLepton () const
 Whether the particle is a charged lepton.
bool isElectron () const
 Whether the particle is an electron (or positron).
bool isMuon () const
 Whether the particle is a muon (or antimuon).
bool isTau () const
 Whether the particle is a tau (or antitau).
bool isNeutrino () const
 Whether the particle is a neutrino (or antineutrino).
bool isHadron () const
 Whether the particle is a hadron.
bool isMeson () const
 Whether the particle is a meson.
bool isBaryon () const
 Whether the particle is a baryon.
bool hasStrange () const
 Whether the particle contains a strange quark (or antiquark).
bool hasCharm () const
 Whether the particle contains a charm quark (or antiquark).
bool hasBottom () const
 Whether the particle contains a bottom quark (or antiquark).
bool isLightMeson () const
 Determine if the PID is that of a light flavour (not b or c) meson.
bool isLightBaryon () const
 Determine if the PID is that of a light flavour (not b or c) baryon.
bool isLightHadron () const
 Determine if the PID is that of a light flavour (not b or c) hadron.
bool isHeavyMeson () const
 Determine if the PID is that of a heavy flavour (b or c) meson.
bool isHeavyBaryon () const
 Determine if the PID is that of a heavy flavour (b or c) baryon.
bool isHeavyHadron () const
 Determine if the PID is that of a heavy flavour (b or c) hadron.
bool isBottomMeson () const
 Determine if the PID is that of a b-meson.
bool isBottomBaryon () const
 Determine if the PID is that of a b-baryon.
bool isBottomHadron () const
 Determine if the PID is that of a b-hadron.
bool isCharmMeson () const
 Determine if the PID is that of a c-meson.
bool isCharmBaryon () const
 Determine if the PID is that of a c-baryon.
bool isCharmHadron () const
 Determine if the PID is that of a c-hadron.
bool isStrangeMeson () const
 Determine if the PID is that of a strange meson.
bool isStrangeBaryon () const
 Determine if the PID is that of a strange baryon.
bool isStrangeHadron () const
 Determine if the PID is that of a strange hadron.
bool isQuark () const
 Check if this particle is a quark.
bool isParton () const
 Check if this particle is a parton.
bool isTop () const
 Check if this particle is a top quark.
bool isW () const
 Check if this particle is a W boson.
bool isZ () const
 Check if this particle is a Z boson.
bool isHiggs () const
 Check if this particle is a Higgs boson.
bool isResonance () const
 Check if this particle is a resonant state.
bool isGenSpecific () const
 Check if this is a generator specific (non-physical) particle.

Polarization properties (optional)



enum  PolParam { polarizationPhi = 0, polarizationTheta = 1 }
 

Polarization parameter types.

More...
bool polarizationParameter (float &value, PolParam parameter) const
bool setPolarizationParameter (float value, PolParam parameter)
float polarizationPatameter (PolParam parameter) const
Polarization polarization () const

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.
virtual double pt () const
 The transverse momentum ($p_T$) of the particle.
virtual double eta () const
 The pseudorapidity ($\eta$) of the particle.
virtual double phi () const
 The azimuthal angle ($\phi$) of the particle.
virtual double m () const
virtual double e () const
 The total energy of the particle.
virtual double rapidity () const
 The true rapidity ($y$) of the particle.
virtual const FourMom_tp4 () const
virtual Type::ObjectType type () const
 The type of the object as a simple enumeration.

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.Buckley@cern.ch>
Jovan Mitrevski <Jovan.Mitrevski@cern.ch>
Revision
624338
Date
2014-10-27 16:08:55 +0100 (Mon, 27 Oct 2014)

Member Enumeration Documentation

Polarization parameter types.

Enumerator:
polarizationPhi 

Polarization in ($\phi$).

polarizationTheta 

Polarization in ($\theta$).


Member Function Documentation

double xAOD::TruthParticle_v1::abseta (  )  const

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

Todo:
Remove this when/if supported in xAOD::IParticle
double xAOD::TruthParticle_v1::absrapidity (  )  const

The true absolute rapidity ($|y|$) of the particle

Todo:
Remove this when/if supported in xAOD::IParticle
int xAOD::TruthParticle_v1::barcode (  )  const

Barcode

Note:
Meaning of barcode may change -- be careful!
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().

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.

virtual double xAOD::TruthParticle_v1::m (  )  const [virtual]

The mass of the particle

Note, not necessarily = $E^2-p^2$ if not on mass shell.

Implements xAOD::IParticle.

const TruthParticle_v1::FourMom_t & xAOD::TruthParticle_v1::p4 (  )  const [virtual]

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.

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
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:
value The polarization parameter value read from the object
parameter The polarization parameter that we are interested in
Returns:
true if the retrieval was successful, false if it wasn't
float xAOD::TruthParticle_v1::polarizationPatameter ( 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:
parameter The polarion parameter that we are interested in
Returns:
The value of the polarization parameter requested
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:
value The polarization parameter value to set on the object
parameter The polarization parameter type that we want to set
Returns:
true if the operation was successful, or false if it wasn't

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Apr 2017 for RootCore Packages by  doxygen 1.6.1