Go to the documentation of this file. 1 #ifndef MATERIALEFFECTSSIMULATOR_H
2 #define MATERIALEFFECTSSIMULATOR_H
38 inline double theA()
const {
return A; }
40 inline double theZ()
const {
return Z; }
46 inline double excitE()
const {
return 12.5E-9 *
theZ(); }
48 inline double eMass()
const {
return 0.000510998902; }
double rho() const
Density in g/cm3.
std::vector< RawParticle >::const_iterator RHEP_const_iter
std::vector< RawParticle > _theUpdatedState
GlobalVector theNormalVector
math::XYZVector XYZVector
int theClosestChargedDaughterId
virtual void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *)=0
Overloaded in all material effects updtators.
virtual ~MaterialEffectsSimulator()
void updateState(ParticlePropagator &myTrack, double radlen, RandomEngineAndDistribution const *)
Compute the material effect (calls the sub class)
XYZVector orthogonal(const XYZVector &) const
A vector orthogonal to another one (because it's not in XYZTLorentzVector)
void setNormalVector(const GlobalVector &normal)
Sets the vector normal to the surface traversed.
MaterialEffectsSimulator(double A=28.0855, double Z=14.0000, double density=2.329, double radLen=9.360)
double excitE() const
Mean excitation energy (in GeV)
int closestDaughterId()
The id of the closest charged daughter (filled for nuclear interactions only)
virtual void save()
Used by NuclearInteractionSimulator to save last sampled event.
double eMass() const
Electron mass in GeV/c2.
unsigned nDaughters() const
Returns the number of daughters.
double radiationLength() const
Returns the fraction of radiation lengths traversed.
RHEP_const_iter endDaughters() const
Returns const iterator to the end of the daughters list.
RHEP_const_iter beginDaughters() const
Returns const iterator to the beginning of the daughters list.
double radLenIncm() const
One radiation length in cm.