Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
PhotosHepMCParticle Class Reference
Inheritance diagram for PhotosHepMCParticle:
Inheritance graph
Collaboration diagram for PhotosHepMCParticle:
Collaboration graph

Public Member Functions

 PhotosHepMCParticle ()
 
 PhotosHepMCParticle (HepMC::GenParticle *particle)
 
 PhotosHepMCParticle (int pdg_id, int status, double mass)
 
 ~PhotosHepMCParticle ()
 
HepMC::GenParticle * getHepMC ()
 
void setMothers (std::vector< PhotosParticle * > mothers)
 
void setDaughters (std::vector< PhotosParticle * > daughters)
 
void addDaughter (PhotosParticle *daughter)
 
std::vector< PhotosParticle * > getMothers ()
 
std::vector< PhotosParticle * > getDaughters ()
 
std::vector< PhotosParticle * > getAllDecayProducts ()
 
void setPdgID (int pdg_id)
 
void setStatus (int statu)
 
void setMass (double mass)
 
int getPdgID ()
 
int getStatus ()
 
int getBarcode ()
 
bool checkMomentumConservation ()
 
PhotosHepMCParticlecreateNewParticle (int pdg_id, int status, double mass, double px, double py, double pz, double e)
 
void createHistoryEntry ()
 
void createSelfDecayVertex (PhotosParticle *out)
 
void print ()
 
double getPx ()
 
double getPy ()
 
double getPz ()
 
double getE ()
 
double getMass ()
 
void setPx (double px)
 
void setPy (double py)
 
void setPz (double pz)
 
void setE (double e)
 
bool hasDaughters ()
 
PhotosParticlefindLastSelf ()
 
std::vector< PhotosParticle * > findProductionMothers ()
 
std::vector< PhotosParticle * > getDecayTree ()
 
void boostToRestFrame (PhotosParticle *boost)
 
void boostDaughtersToRestFrame (PhotosParticle *boost)
 
void boostFromRestFrame (PhotosParticle *boost)
 
void boostDaughtersFromRestFrame (PhotosParticle *boost)
 
void boostAlongZ (double pz, double e)
 
void rotate (int axis, double phi, int second_axis=Z_AXIS)
 
void rotateDaughters (int axis, double phi, int second_axis=Z_AXIS)
 
double getRotationAngle (int axis, int second_axis=Z_AXIS)
 
double getP ()
 
double getP (int axis)
 
void setP (int axis, double p_component)
 
virtual double getVirtuality ()
 

Static Public Attributes

static const int STABLE =1
 
static const int DECAYED =2
 
static const int HISTORY =3
 
static const int X_AXIS =1
 
static const int Y_AXIS =2
 
static const int Z_AXIS =3
 
static const int Z0 = 23
 
static const int HIGGS = 25
 
static const int HIGGS_H = 35
 
static const int HIGGS_A = 36
 
static const int HIGGS_PLUS = 37
 
static const int HIGGS_MINUS = -37
 
static const int W_PLUS = 24
 
static const int W_MINUS = -24
 
static const int GAMMA = 22
 
static const int TAU_PLUS = -15
 
static const int TAU_MINUS = 15
 
static const int TAU_NEUTRINO = 16
 
static const int TAU_ANTINEUTRINO = -16
 
static const int MUON_PLUS = -13
 
static const int MUON_MINUS = 13
 
static const int MUON_NEUTRINO = 14
 
static const int MUON_ANTINEUTRINO = -14
 
static const int POSITRON = -11
 
static const int ELECTRON = 11
 
static const int ELECTRON_NEUTRINO = 12
 
static const int ELECTRON_ANTINEUTRINO = -12
 
static const int UP = 2
 
static const int ANTIUP = -2
 
static const int DOWN = 1
 
static const int ANTIDOWN = -1
 
static const int OTHER = 0
 

Private Member Functions

void clear (std::vector< PhotosParticle * > v)
 

Private Attributes

HepMC::GenParticle * m_particle
 
std::vector< PhotosParticle * > m_mothers
 
std::vector< PhotosParticle * > m_daughters
 
std::vector< PhotosParticle * > m_decay_products
 
std::vector< PhotosParticle * > m_created_particles
 

Detailed Description

Definition at line 31 of file PhotosHepMCParticle.h.

Constructor & Destructor Documentation

General constructor

Definition at line 9 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

PhotosHepMCParticle ( HepMC::GenParticle *  particle)

Constructor which keeps a pointer to the HepMC::GenParticle

Definition at line 20 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

PhotosHepMCParticle ( int  pdg_id,
int  status,
double  mass 
)

Constructor which creates a new HepMC::GenParticle and sets the properties pdg_id, statu and mass.

Definition at line 13 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

Member Function Documentation

void addDaughter ( PhotosParticle daughter)
virtual

Add a new daughter to the end vertex of this particle

Implements PhotosParticle.

Definition at line 88 of file PhotosHepMCParticle.cxx.

References Log::Fatal(), PhotosHepMCParticle::m_daughters, and PhotosHepMCParticle::m_particle.

void boostAlongZ ( double  boost_pz,
double  boost_e 
)
inherited

Do a Lorenz transformation along the Z axis.

Boost this vector along the Z direction. Assume no momentum components in the X or Y directions.

Definition at line 155 of file PhotosParticle.cxx.

References PhotosParticle::getE(), PhotosParticle::getPz(), PhotosParticle::setE(), and PhotosParticle::setPz().

void boostDaughtersFromRestFrame ( PhotosParticle boost)
inherited

Transform this particles four momentum from the lab frame to the rest frame of the parameter PhotosParticle.

Definition at line 63 of file PhotosParticle.cxx.

References PhotosParticle::getAllDecayProducts(), and PhotosParticle::hasDaughters().

void boostDaughtersToRestFrame ( PhotosParticle boost)
inherited

Transform the four momentum of all the daughters recursively into the frame of the "particle" PhotosParticle.

Definition at line 80 of file PhotosParticle.cxx.

References PhotosParticle::getAllDecayProducts(), and PhotosParticle::hasDaughters().

void boostFromRestFrame ( PhotosParticle boost)
inherited

Transform this particles four momentum from the rest frame of the paramter PhotosParticle, back into the lab frame.

Definition at line 114 of file PhotosParticle.cxx.

References PhotosParticle::boostAlongZ(), PhotosParticle::getE(), PhotosParticle::getP(), PhotosParticle::getRotationAngle(), PhotosParticle::rotate(), PhotosParticle::X_AXIS, and PhotosParticle::Y_AXIS.

void boostToRestFrame ( PhotosParticle boost)
inherited

Transform this particles four momentum from the lab frome into the rest frame of the paramter PhotosParticle.

Definition at line 98 of file PhotosParticle.cxx.

References PhotosParticle::boostAlongZ(), PhotosParticle::getE(), PhotosParticle::getP(), PhotosParticle::getRotationAngle(), PhotosParticle::rotate(), PhotosParticle::X_AXIS, and PhotosParticle::Y_AXIS.

bool checkMomentumConservation ( )
virtual

check that the 4 momentum in conserved at the vertices producing and ending this particle

Implements PhotosParticle.

Definition at line 223 of file PhotosHepMCParticle.cxx.

References Photos::isStatusCodeIgnored(), PhotosHepMCParticle::m_particle, Photos::momentum_conservation_threshold, Log::RedirectOutput(), and Log::RevertOutput().

void clear ( std::vector< PhotosParticle * >  v)
private

Internal function used to clear particles from the vector

Definition at line 32 of file PhotosHepMCParticle.cxx.

void createHistoryEntry ( )
virtual

Create history entry for HepMC event record. Creates copy of this particle with status = 3

Implements PhotosParticle.

Definition at line 305 of file PhotosHepMCParticle.cxx.

References Photos::historyEntriesStatus, and PhotosHepMCParticle::m_particle.

PhotosHepMCParticle * createNewParticle ( int  pdg_id,
int  status,
double  mass,
double  px,
double  py,
double  pz,
double  e 
)
virtual

Create a new particle of type PhotosHepMCParticle, with the given properties. The new particle bares no relations to this particle, but it provides a way of creating a instance of this derived class. eg. createNewParticle() is used inside filhep_() so that a PhotosHepMCParticle can be created without the method having explicit knowledge of the PhotosHepMCParticle class

Implements PhotosParticle.

Definition at line 289 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::getHepMC(), PhotosHepMCParticle::m_created_particles, and PhotosHepMCParticle::PhotosHepMCParticle().

void createSelfDecayVertex ( PhotosParticle out)
virtual

Create a self-decay vertex for this particle with 'out' being the outgoing particle in new vertex

Implements PhotosParticle.

Definition at line 318 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::getHepMC(), PhotosHepMCParticle::getStatus(), PhotosHepMCParticle::m_particle, and PhotosHepMCParticle::setStatus().

PhotosParticle * findLastSelf ( )
inherited

Traverse the event structure and find the final version of this particle which does not have a particle of it's own type as it's daughter. eg. Generally the final stable copy

Definition at line 16 of file PhotosParticle.cxx.

References PhotosParticle::getDaughters(), and PhotosParticle::getPdgID().

vector< PhotosParticle * > findProductionMothers ( )
inherited

Traverse the event structure and find the first set of mothers which are not of the same type as this particle.

Definition at line 31 of file PhotosParticle.cxx.

References PhotosParticle::getMothers(), and PhotosParticle::getPdgID().

std::vector< PhotosParticle * > getAllDecayProducts ( )
virtual

Returns all particles in the decay tree of this particle via a vector of PhotosParticle

Implements PhotosParticle.

Definition at line 183 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::getBarcode(), PhotosHepMCParticle::getDaughters(), PhotosParticle::hasDaughters(), and PhotosHepMCParticle::m_decay_products.

int getBarcode ( )
virtual

Get the barcode of this particle

Implements PhotosParticle.

Definition at line 284 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

std::vector< PhotosParticle * > getDaughters ( )
virtual

Returns the daughters of this particle via a vector of PhotosParticle IMPORTANT: this method will remeber list from the first call. Particles (e.g. photons) added later will be ignored

Implements PhotosParticle.

Definition at line 162 of file PhotosHepMCParticle.cxx.

References Photos::isStatusCodeIgnored(), PhotosHepMCParticle::m_daughters, PhotosHepMCParticle::m_particle, and PhotosHepMCParticle::PhotosHepMCParticle().

vector< PhotosParticle * > getDecayTree ( )
inherited

Return whole decay tree starting from this particle

Definition at line 45 of file PhotosParticle.cxx.

References PhotosParticle::getBarcode(), PhotosParticle::getDaughters(), PhotosParticle::getDecayTree(), and PhotosParticle::getMothers().

double getE ( )
virtual

Returns the energy component of the four vector

Implements PhotosParticle.

Definition at line 367 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

HepMC::GenParticle * getHepMC ( )

return the HepMC::GenParticle

Definition at line 40 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

double getMass ( )
virtual

Returns the mass taken from event record

Implements PhotosParticle.

Definition at line 399 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

std::vector< PhotosParticle * > getMothers ( )
virtual

Returns the mothers of this particle via a vector of PhotosParticle

Implements PhotosParticle.

Definition at line 145 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_mothers, PhotosHepMCParticle::m_particle, and PhotosHepMCParticle::PhotosHepMCParticle().

double getP ( )
inherited

Get scalar momentum

Definition at line 202 of file PhotosParticle.cxx.

References PhotosParticle::getPx(), PhotosParticle::getPy(), and PhotosParticle::getPz().

double getP ( int  axis)
inherited

Get momentum component in the direction of "axis" (x,y,z)

Definition at line 207 of file PhotosParticle.cxx.

References PhotosParticle::getPx(), PhotosParticle::getPy(), PhotosParticle::getPz(), PhotosParticle::X_AXIS, PhotosParticle::Y_AXIS, and PhotosParticle::Z_AXIS.

int getPdgID ( )
virtual

Get the PDG ID code of this particle

Implements PhotosParticle.

Definition at line 276 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

double getPx ( )
inlinevirtual

Returns the px component of the four vector

Implements PhotosParticle.

Definition at line 355 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

double getPy ( )
inlinevirtual

Returns the py component of the four vector

Implements PhotosParticle.

Definition at line 359 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

double getPz ( )
virtual

Returns the pz component of the four vector

Implements PhotosParticle.

Definition at line 363 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

double getRotationAngle ( int  axis,
int  second_axis = Z_AXIS 
)
inherited

Returns the angle around the axis "axis" needed to rotate the four momenum is such a way that the non-Z component disappears and Z>0. This is used to in rotating the coordinate system into a frame with only a Z component before calling boostAlongZ().

Get the angle needed to rotate the 4 momentum vector so that the x (y) component disapears. (and the Z component is > 0)

if(getP(axis)==0){ if(getPz()>0) return 0; //no rotaion required else return M_PI; }

Definition at line 135 of file PhotosParticle.cxx.

References PhotosParticle::getP().

int getStatus ( )
virtual

Get the status of this particle

Implements PhotosParticle.

Definition at line 280 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

double getVirtuality ( )
virtualinherited

Get sqrt(e^2-p^2)

Definition at line 193 of file PhotosParticle.cxx.

References PhotosParticle::getE(), and PhotosParticle::getP().

bool hasDaughters ( )
inherited

Return whether the particle has any chidren

Definition at line 10 of file PhotosParticle.cxx.

References PhotosParticle::getDaughters().

void print ( )
virtual

Print some information about this particle to standard output

Implements PhotosParticle.

Definition at line 348 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

void rotate ( int  axis,
double  theta,
int  second_axis = Z_AXIS 
)
inherited

rotate this particles 4-momentum by an angle phi from the axisis "axis" towards the axis "second_axis".

Rotation around an axis X or Y

Definition at line 168 of file PhotosParticle.cxx.

References PhotosParticle::getP(), and PhotosParticle::setP().

void rotateDaughters ( int  axis,
double  phi,
int  second_axis = Z_AXIS 
)
inherited

rotate 4-momentum of daughters of this particle by an angle phi from the axisis "axis" towards the axis "second_axis".

Definition at line 176 of file PhotosParticle.cxx.

References PhotosParticle::getDaughters(), and PhotosParticle::hasDaughters().

void setDaughters ( std::vector< PhotosParticle * >  daughters)
virtual
void setE ( double  e)
virtual

Set the energy component of the four vector

Implements PhotosParticle.

Definition at line 393 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

void setMass ( double  mass)
virtual

Set the mass of this particle

Implements PhotosParticle.

Definition at line 268 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

void setMothers ( std::vector< PhotosParticle * >  mothers)
virtual
void setP ( int  axis,
double  p_component 
)
inherited

Set momentum component in the direction of "axis" (x,y,z)

Definition at line 215 of file PhotosParticle.cxx.

References PhotosParticle::setPx(), PhotosParticle::setPy(), PhotosParticle::setPz(), PhotosParticle::X_AXIS, PhotosParticle::Y_AXIS, and PhotosParticle::Z_AXIS.

void setPdgID ( int  pdg_id)
virtual

Set the PDG ID code of this particle

Implements PhotosParticle.

Definition at line 264 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

void setPx ( double  px)
virtual

Set the px component of the four vector

Implements PhotosParticle.

Definition at line 371 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

void setPy ( double  py)
virtual

Set the px component of the four vector

Implements PhotosParticle.

Definition at line 380 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

void setPz ( double  pz)
virtual

Set the pz component of the four vector

Implements PhotosParticle.

Definition at line 387 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

void setStatus ( int  statu)
virtual

Set the status of this particle

Implements PhotosParticle.

Definition at line 272 of file PhotosHepMCParticle.cxx.

References PhotosHepMCParticle::m_particle.

Field Documentation

const int ANTIDOWN = -1
staticinherited

anti-down quark

Definition at line 119 of file PhotosParticle.h.

const int ANTIUP = -2
staticinherited

anti-up quark

Definition at line 113 of file PhotosParticle.h.

const int DECAYED =2
staticinherited

Decayed particle status

Definition at line 32 of file PhotosParticle.h.

const int DOWN = 1
staticinherited

down quark

Definition at line 116 of file PhotosParticle.h.

const int ELECTRON = 11
staticinherited

e- particle

Definition at line 101 of file PhotosParticle.h.

const int ELECTRON_ANTINEUTRINO = -12
staticinherited

e antineutrino particle

Definition at line 107 of file PhotosParticle.h.

const int ELECTRON_NEUTRINO = 12
staticinherited

e neutrino particle

Definition at line 104 of file PhotosParticle.h.

const int GAMMA = 22
staticinherited

photon

Definition at line 71 of file PhotosParticle.h.

const int HIGGS = 25
staticinherited

H particle

Definition at line 50 of file PhotosParticle.h.

const int HIGGS_A = 36
staticinherited

A0 particle

Definition at line 56 of file PhotosParticle.h.

const int HIGGS_H = 35
staticinherited

H0 particle

Definition at line 53 of file PhotosParticle.h.

const int HIGGS_MINUS = -37
staticinherited

H- particle

Definition at line 62 of file PhotosParticle.h.

const int HIGGS_PLUS = 37
staticinherited

H+ particle

Definition at line 59 of file PhotosParticle.h.

const int HISTORY =3
staticinherited

History particle status

Definition at line 35 of file PhotosParticle.h.

std::vector<PhotosParticle*> m_created_particles
private

list to keep track of new particles which have been created from this one, so we can call their destructor later

Definition at line 160 of file PhotosHepMCParticle.h.

std::vector<PhotosParticle*> m_daughters
private

A vector of this particles daughters

Definition at line 153 of file PhotosHepMCParticle.h.

std::vector<PhotosParticle*> m_decay_products
private

A vector of all decay products of this particle

Definition at line 156 of file PhotosHepMCParticle.h.

std::vector<PhotosParticle*> m_mothers
private

A vector of this particles mothers

Definition at line 150 of file PhotosHepMCParticle.h.

HepMC::GenParticle* m_particle
private

A pointer to the HepMC::GenParticle particle

Definition at line 147 of file PhotosHepMCParticle.h.

const int MUON_ANTINEUTRINO = -14
staticinherited

muon antineutrino particle

Definition at line 95 of file PhotosParticle.h.

const int MUON_MINUS = 13
staticinherited

muon- particle

Definition at line 89 of file PhotosParticle.h.

const int MUON_NEUTRINO = 14
staticinherited

muon neutrino particle

Definition at line 92 of file PhotosParticle.h.

const int MUON_PLUS = -13
staticinherited

muon+ particle

Definition at line 86 of file PhotosParticle.h.

const int OTHER = 0
staticinherited

All other particle types

Definition at line 122 of file PhotosParticle.h.

const int POSITRON = -11
staticinherited

e+ particle

Definition at line 98 of file PhotosParticle.h.

const int STABLE =1
staticinherited

Stable particle status

Definition at line 29 of file PhotosParticle.h.

const int TAU_ANTINEUTRINO = -16
staticinherited

tau antineutrino particle

Definition at line 83 of file PhotosParticle.h.

const int TAU_MINUS = 15
staticinherited

tau- particle

Definition at line 77 of file PhotosParticle.h.

const int TAU_NEUTRINO = 16
staticinherited

tau neutrino particle

Definition at line 80 of file PhotosParticle.h.

const int TAU_PLUS = -15
staticinherited

tau+ particle

Definition at line 74 of file PhotosParticle.h.

const int UP = 2
staticinherited

up quark

Definition at line 110 of file PhotosParticle.h.

const int W_MINUS = -24
staticinherited

W- particle

Definition at line 68 of file PhotosParticle.h.

const int W_PLUS = 24
staticinherited

W+ particle

Definition at line 65 of file PhotosParticle.h.

const int X_AXIS =1
staticinherited

X Axis

Definition at line 38 of file PhotosParticle.h.

const int Y_AXIS =2
staticinherited

Y Axis

Definition at line 41 of file PhotosParticle.h.

const int Z0 = 23
staticinherited

Z0 particle

Definition at line 47 of file PhotosParticle.h.

const int Z_AXIS =3
staticinherited

Z Axis

Definition at line 44 of file PhotosParticle.h.


The documentation for this class was generated from the following files: