7 double A,
double Z,
double density,
double radLen) :
16 double p2 = Particle.Vect().Mag2();
17 double m2 = Particle.
mass()*Particle.
mass();
24 double theta0 = 0.0136 / pbeta * Particle.
charge()
31 double phi = 2. * 3.14159265358979323 * random->
flatShoot();
36 Particle.
rotate(rotation1);
37 Particle.
rotate(rotation2);
void translate(const XYZVector &t)
double flatShoot(double xmin=0.0, double xmax=1.0) const
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
XYZVector orthogonal(const XYZVector &) const
A vector orthogonal to another one (because it's not in XYZTLorentzVector)
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *) override
The real dE/dx generation and particle update.
double mass() const
get the MEASURED mass
math::XYZVector XYZVector
Cos< T >::type cos(const T &t)
void rotate(double rphi, const XYZVector &raxis)
double charge() const
get the MEASURED charge
MultipleScatteringSimulator(double A, double Z, double density, double radLen)
Default Constructor.
ROOT::Math::AxisAngle Rotation
double gaussShoot(double mean=0.0, double sigma=1.0) const
double radLenIncm() const
One radiation length in cm.
GlobalVector theNormalVector
double sqr12
Save (a tiny bit of) time.