1 #ifndef FASTSIM_PARTICLE_H 2 #define FASTSIM_PARTICLE_H math::XYZTLorentzVector & position()
Return position of the particle.
void resetMother()
Reset all information stored about the mother particle.
Particle(int pdgId, const math::XYZTLorentzVector &position, const math::XYZTLorentzVector &momentum)
Constructor.
int motherSimTrackIndex_
simTrack index of mother particle if both charged
const math::XYZTLorentzVector & position() const
Return position of the particle.
int simVertexIndex_
index of the origin vertex
int getMotherPdgId() const
Get pdgIdto mother particle (only makes sense if mother and daughter charged).
void setStable()
Particle is stable.
double remainingProperLifeTimeC() const
Return the particle's remaining proper lifetime[in ct].
int genParticleIndex() const
Return index of the particle in the genParticle vector.
bool isForward(DetId const &)
void setGenParticleIndex(int index)
Set index of the particle in the genParticle vector (if applies).
int pdgId() const
Return pdgId of the particle.
int simTrackIndex_
index of the simTrack
int isOnLayerIndex_
the layer this particle is currently on: the index of the layer
void setRemainingProperLifeTimeC(double remainingProperLifeTimeC)
Set the particle's remaining proper lifetime if not stable [in ct].
void setSimTrackIndex(int index)
Set the index of the SimTrack of this particle.
double isLooper() const
Check if this particle is about to do a loop in the tracker or the direction of the momentum is going...
math::XYZTLorentzVector momentum_
momentum of the particle
double motherDeltaR_
delta R to mother particle if both charged
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
int simVertexIndex() const
Return index of the origin vertex.
void resetOnLayer()
Reset layer this particle is currently on (i.e. particle is not on a layer anyomre) ...
void setLooper()
This particle is about to do a loop in the tracker or the direction of the momentum is going inwards...
bool isLooper_
this particle is about to do a loop or momentum goes inwards
const int pdgId_
pdgId of the particle
bool isOnForwardLayer_
the layer this particle is currently on: is it a ForwardLayer
void setSimVertexIndex(int index)
Set the index of the origin SimVertex of this particle.
int simTrackIndex() const
Return index of the SimTrack.
int genParticleIndex_
index of the particle in the vector of genParticles (if applies)
double energyDeposit_
energy deposit through ionization in the previous tracker layer
double getMotherDeltaR() const
Get delta R to mother particle (only makes sense if mother and daughter charged). ...
double remainingProperLifeTimeC_
remaining proper lifetime of the particle in units of t*c
void setCharge(double charge)
Set the charge of the particle.
double charge() const
Return charge of the particle.
bool remainingProperLifeTimeIsSet() const
Check if remaining proper lifetime of particle is set.
void setMotherPdgId(int motherPpdId)
Set pdgId of the mother particle (only necessary if mother and daughter charged). ...
math::XYZTLorentzVector position_
position of the particle
double getEnergyDeposit() const
Return the energy the particle deposited in the tracker layer that was last hit (ionization).
bool isStable() const
Returns true if particle is considered stable.
void setOnLayer(bool isForward, int index)
Set layer this particle is currently on.
const math::XYZTLorentzVector & momentum() const
Return momentum of the particle.
void setMotherDeltaR(const math::XYZTLorentzVector &motherMomentum)
Set delta R to mother particle (only necessary if mother and daughter charged).
int getMotherSimTrackIndex() const
Get index of simTrack of mother particle (only makes sense if mother and daughter charged)...
int motherPpdId_
pdgId of mother particle if both charged
double gamma() const
Return Lorentz' gamma factor.
friend std::ostream & operator<<(std::ostream &os, const Particle &particle)
Some basic output.
math::XYZTLorentzVector & momentum()
Return momentum of the particle.
bool chargeIsSet() const
Check if charge of particle was set.
void setEnergyDeposit(double energyDeposit)
Set the energy the particle deposited in the tracker layer that was last hit (ionization).
bool isOnLayer(bool isForward, int index)
Check if particle is on layer.
double charge_
charge of the particle in elemntary units
void setMotherSimTrackIndex(int id)
Set the index of the SimTrack of the mother particle (only necessary if mother and daughter charged)...