1 #ifndef CommonTools_BaseParticlePropagator_RawParticle_h 2 #define CommonTools_BaseParticlePropagator_RawParticle_h 8 #include "Math/GenVector/RotationX.h" 9 #include "Math/GenVector/RotationY.h" 10 #include "Math/GenVector/RotationZ.h" 11 #include "Math/GenVector/Rotation3D.h" 12 #include "Math/GenVector/AxisAngle.h" 13 #include "Math/GenVector/Boost.h" 52 typedef ROOT::Math::Boost
Boost;
71 RawParticle(
double px,
double py,
double pz,
double e,
double charge =0.);
87 void setStatus(
int istat);
90 void setMass(
float m);
93 void setCharge(
float q);
96 void setT(
const double t);
100 void setVertex(
double xv,
double yv,
double zv,
double tv);
104 void setMomentum(
double xv,
double yv,
double zv,
double tv);
117 void boost(
double bx,
double by,
double bz);
118 void boost(
const Boost&
b);
128 void rotate(
const Rotation&
r);
129 void rotate(
const Rotation3D&
r);
137 void rotateX(
double rphi);
138 void rotate(
const RotationX&
r);
144 void rotateY(
double rphi);
145 void rotate(
const RotationY&
r);
150 void rotateZ(
double rphi);
151 void rotate(
const RotationZ&
r);
163 void chargeConjugate();
179 double cos2Theta()
const;
180 double cos2ThetaV()
const;
219 double Perp2()
const;
223 double theta()
const;
238 void printName()
const;
357 XYZVector v (
r(myMomentum.Vect()) ); setMomentum(v.X(),v.Y(),v.Z(),E());
361 XYZVector v (
r(myMomentum.Vect()) ); setMomentum(v.X(),v.Y(),v.Z(),E());
365 XYZVector v (
r(myMomentum.Vect()) ); setMomentum(v.X(),v.Y(),v.Z(),E());
369 XYZVector v (
r(myMomentum.Vect()) ); setMomentum(v.X(),v.Y(),v.Z(),E());
373 XYZVector v (
r(myMomentum.Vect()) ); setMomentum(v.X(),v.Y(),v.Z(),E());
381 myVertex.SetXYZT(
X()+tr.X(),
Y()+tr.Y(),
Z()+tr.Z(),
T());
void setMomentum(const XYZTLorentzVector &vtx)
set the momentum
double pz() const
z of the momentum
void translate(const XYZVector &t)
void boost(double bx, double by, double bz)
XYZVector Vect() const
the momentum threevector
XYZTLorentzVector myVertex
the four vector of the vertex
double pt() const
transverse momentum
int status() const
get the particle status
double y() const
y of vertex
ROOT::Math::Rotation3D Rotation3D
double Perp2() const
perpendicular momentum squared
std::ostream & operator<<(std::ostream &o, const RawParticle &p)
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
double z() const
z of vertex
XYZTLorentzVector myMomentum
the four vector of the momentum
Geom::Theta< T > theta() const
int pid() const
get the HEP particle ID number
RawParticle makeMuon(bool isParticle, const math::XYZTLorentzVector &p, const math::XYZTLorentzVector &xStart)
S & print(S &os, JobReport::InputFile const &f)
double mass() const
get the MEASURED mass
double x() const
x of vertex
ROOT::Math::RotationZ RotationZ
double R() const
vertex radius
double R2() const
vertex radius**2
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
ROOT::Math::RotationX RotationX
double phi() const
phi of momentum vector
const XYZTLorentzVector & momentum() const
the momentum fourvector
double t() const
vertex time
double e() const
energy of the momentum
double r2() const
vertex radius**2
double cos2ThetaV() const
double Y() const
y of vertex
double Py() const
y of the momentum
double Pt() const
transverse momentum
double Z() const
z of vertex
ROOT::Math::RotationY RotationY
Tan< T >::type tan(const T &t)
void rotate(double rphi, const XYZVector &raxis)
double Pz() const
z of the momentum
double charge() const
get the MEASURED charge
double mag() const
the magnitude of the momentum
double M2() const
mass squared
const XYZTLorentzVector & vertex() const
the vertex fourvector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
et
define resolution functions of each parameter
double r() const
vertex radius
double X() const
x of vertex
double theta() const
theta of momentum vector
double Px() const
x of the momentum
ROOT::Math::AxisAngle Rotation
double E() const
energy of the momentum
double px() const
x of the momentum
double T() const
vertex time
double py() const
y of the momentum
math::XYZVector XYZVector
def rotate(angle, cx=0, cy=0)
void setVertex(const XYZTLorentzVector &vtx)
set the vertex
double cos2Theta() const
Cos**2(theta) is faster to determine than eta.
RawParticle unchecked_makeParticle(int id, const math::XYZTLorentzVector &p, double mass, double charge)
math::XYZTLorentzVector XYZTLorentzVector