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 () |
PhotosHepMCParticle * | createNewParticle (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 () |
PhotosParticle * | findLastSelf () |
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 |
Definition at line 31 of file PhotosHepMCParticle.h.
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.
~PhotosHepMCParticle | ( | ) |
Destructor
Definition at line 24 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::clear(), PhotosHepMCParticle::m_daughters, PhotosHepMCParticle::m_mothers, and PhotosHepMCParticle::m_particle.
void addDaughter | ( | PhotosParticle * | daughter | ) | [virtual] |
Add a new daughter to the end vertex of this particle
Implements PhotosParticle.
Definition at line 94 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 229 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 38 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 311 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 295 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 324 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 189 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 290 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 168 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 373 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
HepMC::GenParticle * getHepMC | ( | ) |
return the HepMC::GenParticle
Definition at line 46 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
double getMass | ( | ) | [virtual] |
Returns the mass taken from event record
Implements PhotosParticle.
Definition at line 405 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 151 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_mothers, PhotosHepMCParticle::m_particle, and PhotosHepMCParticle::PhotosHepMCParticle().
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.
double getP | ( | ) | [inherited] |
Get scalar momentum
Definition at line 202 of file PhotosParticle.cxx.
References PhotosParticle::getPx(), PhotosParticle::getPy(), and PhotosParticle::getPz().
int getPdgID | ( | ) | [virtual] |
Get the PDG ID code of this particle
Implements PhotosParticle.
Definition at line 282 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
double getPx | ( | ) | [inline, virtual] |
Returns the px component of the four vector
Implements PhotosParticle.
Definition at line 361 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
double getPy | ( | ) | [inline, virtual] |
Returns the py component of the four vector
Implements PhotosParticle.
Definition at line 365 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
double getPz | ( | ) | [virtual] |
Returns the pz component of the four vector
Implements PhotosParticle.
Definition at line 369 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 286 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
double getVirtuality | ( | ) | [virtual, inherited] |
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 354 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] |
Set the daughters of this particle via a vector of PhotosParticle
Implements PhotosParticle.
Definition at line 109 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::clear(), Log::Fatal(), PhotosHepMCParticle::m_daughters, and PhotosHepMCParticle::m_particle.
void setE | ( | double | e | ) | [virtual] |
Set the energy component of the four vector
Implements PhotosParticle.
Definition at line 399 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
void setMass | ( | double | mass | ) | [virtual] |
Set the mass of this particle
Implements PhotosParticle.
Definition at line 274 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
void setMothers | ( | std::vector< PhotosParticle * > | mothers | ) | [virtual] |
Set the mothers of this particle via a vector of PhotosParticle
Implements PhotosParticle.
Definition at line 50 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::clear(), PhotosParticle::DECAYED, Log::Fatal(), PhotosHepMCParticle::getHepMC(), PhotosHepMCParticle::m_mothers, PhotosHepMCParticle::m_particle, and PhotosParticle::STABLE.
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 270 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 377 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 386 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 393 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
void setStatus | ( | int | statu | ) | [virtual] |
Set the status of this particle
Implements PhotosParticle.
Definition at line 278 of file PhotosHepMCParticle.cxx.
References PhotosHepMCParticle::m_particle.
const int ANTIDOWN = -1 [static, inherited] |
anti-down quark
Definition at line 119 of file PhotosParticle.h.
const int ANTIUP = -2 [static, inherited] |
anti-up quark
Definition at line 113 of file PhotosParticle.h.
const int DECAYED = 2 [static, inherited] |
Decayed particle status
Definition at line 32 of file PhotosParticle.h.
const int DOWN = 1 [static, inherited] |
down quark
Definition at line 116 of file PhotosParticle.h.
const int ELECTRON = 11 [static, inherited] |
e- particle
Definition at line 101 of file PhotosParticle.h.
const int ELECTRON_ANTINEUTRINO = -12 [static, inherited] |
e antineutrino particle
Definition at line 107 of file PhotosParticle.h.
const int ELECTRON_NEUTRINO = 12 [static, inherited] |
e neutrino particle
Definition at line 104 of file PhotosParticle.h.
const int GAMMA = 22 [static, inherited] |
photon
Definition at line 71 of file PhotosParticle.h.
const int HIGGS = 25 [static, inherited] |
H particle
Definition at line 50 of file PhotosParticle.h.
const int HIGGS_A = 36 [static, inherited] |
A0 particle
Definition at line 56 of file PhotosParticle.h.
const int HIGGS_H = 35 [static, inherited] |
H0 particle
Definition at line 53 of file PhotosParticle.h.
const int HIGGS_MINUS = -37 [static, inherited] |
H- particle
Definition at line 62 of file PhotosParticle.h.
const int HIGGS_PLUS = 37 [static, inherited] |
H+ particle
Definition at line 59 of file PhotosParticle.h.
const int HISTORY = 3 [static, inherited] |
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 [static, inherited] |
muon antineutrino particle
Definition at line 95 of file PhotosParticle.h.
const int MUON_MINUS = 13 [static, inherited] |
muon- particle
Definition at line 89 of file PhotosParticle.h.
const int MUON_NEUTRINO = 14 [static, inherited] |
muon neutrino particle
Definition at line 92 of file PhotosParticle.h.
const int MUON_PLUS = -13 [static, inherited] |
muon+ particle
Definition at line 86 of file PhotosParticle.h.
const int OTHER = 0 [static, inherited] |
All other particle types
Definition at line 122 of file PhotosParticle.h.
const int POSITRON = -11 [static, inherited] |
e+ particle
Definition at line 98 of file PhotosParticle.h.
const int STABLE = 1 [static, inherited] |
Stable particle status
Definition at line 29 of file PhotosParticle.h.
const int TAU_ANTINEUTRINO = -16 [static, inherited] |
tau antineutrino particle
Definition at line 83 of file PhotosParticle.h.
const int TAU_MINUS = 15 [static, inherited] |
tau- particle
Definition at line 77 of file PhotosParticle.h.
const int TAU_NEUTRINO = 16 [static, inherited] |
tau neutrino particle
Definition at line 80 of file PhotosParticle.h.
const int TAU_PLUS = -15 [static, inherited] |
tau+ particle
Definition at line 74 of file PhotosParticle.h.
const int UP = 2 [static, inherited] |
up quark
Definition at line 110 of file PhotosParticle.h.
const int W_MINUS = -24 [static, inherited] |
W- particle
Definition at line 68 of file PhotosParticle.h.
const int W_PLUS = 24 [static, inherited] |
W+ particle
Definition at line 65 of file PhotosParticle.h.
const int X_AXIS = 1 [static, inherited] |
X Axis
Definition at line 38 of file PhotosParticle.h.
const int Y_AXIS = 2 [static, inherited] |
Y Axis
Definition at line 41 of file PhotosParticle.h.
const int Z0 = 23 [static, inherited] |
Z0 particle
Definition at line 47 of file PhotosParticle.h.
const int Z_AXIS = 3 [static, inherited] |
Z Axis
Definition at line 44 of file PhotosParticle.h.