7 const RandomEngine* engine,
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()
36 Particle.
rotate(rotation1);
37 Particle.
rotate(rotation2);
const double Z[kNumberCalorimeter]
void translate(const XYZVector &t)
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)
double mass() const
get the MEASURED mass
double gaussShoot(double mean=0.0, double sigma=1.0) const
math::XYZVector XYZVector
Cos< T >::type cos(const T &t)
const RandomEngine * random
void rotate(double rphi, const XYZVector &raxis)
double charge() const
get the MEASURED charge
double flatShoot(double xmin=0.0, double xmax=1.0) const
MultipleScatteringSimulator(const RandomEngine *engine, double A, double Z, double density, double radLen)
Default Constructor.
ROOT::Math::AxisAngle Rotation
double radLenIncm() const
One radiation length in cm.
void compute(ParticlePropagator &Particle)
The real dE/dx generation and particle update.
GlobalVector theNormalVector
double sqr12
Save (a tiny bit of) time.