33 theFieldMap(aFieldMap),
48 theFieldMap(aFieldMap),
60 theFieldMap(aFieldMap),
72 theFieldMap(aFieldMap),
144 double innerradius = disk ?
layer.diskInnerRadius() : -999.;
176 if (
layer.forward()) {
187 layer.cylinder()->bounds().width() / 2.,
layer.cylinder()->bounds().length() / 2.,
firstLoop);
const MagneticFieldMap * theFieldMap
ParticlePropagator()
Default c'tor.
double cTau(int pdgID, const HepPDT::ParticleDataTable *pdt)
bool propagateToNominalVertex(const XYZTLorentzVector &hit2=XYZTLorentzVector(0., 0., 0., 0.))
HepPDT::ParticleDataTable ParticleDataTable
int pid() const
get the HEP particle ID number
bool propagateToClosestApproach(double x0=0., double y0=0., bool first=true)
bool firstLoop
Do only the first half-loop.
int success
0:propagation still be done, 1:reached 'barrel', 2:reached 'endcaps'
Global3DPoint GlobalPoint
BaseParticlePropagator propagated() const
bool propagateToBoundSurface(const TrackerLayer &)
void setPropagationConditions(double r, double z, bool firstLoop=true)
Set the propagation characteristics (rCyl, zCyl and first loop only)
void setMagneticField(double b)
Set the magnetic field.
double fieldMap(double x, double y, double z)
double charge() const
get the MEASURED charge
void initProperDecayTime()
constexpr std::array< uint8_t, layerIndexSize > layer
bool propagateToClosestApproach(double x0=0., double y0=0, bool first=true)
const HepPDT::ParticleDataTable * theTable
double properDecayTime
The proper decay time of the particle.
void setPropagationConditions(const TrackerLayer &, bool firstLoop=true)
Abs< T >::type abs(const T &t)
bool hasDecayed() const
Has the particle decayed while propagated ?
RawParticle const & particle() const
The particle being propagated.
double decayTime() const
Return the pre-defined decay time.
void setProperDecayTime(double t)
Set the proper decay time.
static int position[264][3]
bool propagateToNominalVertex(const XYZTLorentzVector &hit2=XYZTLorentzVector(0., 0., 0., 0.))
ParticlePropagator propagated() const
double inTeslaZ(const GlobalPoint &) const
double flatShoot(double xmin=0.0, double xmax=1.0) const
math::XYZVector XYZVector
const RandomEngineAndDistribution * random
bool fiducial
The particle traverses some real material.
math::XYZTLorentzVector XYZTLorentzVector