#include <ParticlePropagator.h>
Public Member Functions | |
double | fieldMap (double x, double y, double z) |
double | fieldMap (const TrackerLayer &layer, double coord, int success) |
void | initProperDecayTime () |
const HepPDT::ParticleDataTable * | particleDataTable () const |
ParticlePropagator () | |
Default c'tor. More... | |
ParticlePropagator (const RawParticle &myPart, double R, double Z, const MagneticFieldMap *aFieldMap, const RandomEngineAndDistribution *engine, const HepPDT::ParticleDataTable *table) | |
ParticlePropagator (const RawParticle &myPart, const MagneticFieldMap *aFieldMap, const RandomEngineAndDistribution *engine, const HepPDT::ParticleDataTable *table) | |
ParticlePropagator (const XYZTLorentzVector &p, const XYZTLorentzVector &v, float q, const MagneticFieldMap *aFieldMap, const HepPDT::ParticleDataTable *table) | |
ParticlePropagator (const XYZTLorentzVector &p, const XYZVector &v, float q, const MagneticFieldMap *aFieldMap, const HepPDT::ParticleDataTable *table) | |
ParticlePropagator (const FSimTrack &simTrack, const MagneticFieldMap *aFieldMap, const RandomEngineAndDistribution *engine, const HepPDT::ParticleDataTable *table) | |
ParticlePropagator (const ParticlePropagator &myPropPart) | |
ParticlePropagator (const BaseParticlePropagator &myPropPart, const MagneticFieldMap *aFieldMap, const HepPDT::ParticleDataTable *table) | |
ParticlePropagator | propagated () const |
bool | propagateToBoundSurface (const TrackerLayer &) |
bool | propagateToClosestApproach (double x0=0., double y0=0., bool first=true) |
bool | propagateToNominalVertex (const XYZTLorentzVector &hit2=XYZTLorentzVector(0., 0., 0., 0.)) |
void | setPropagationConditions (const TrackerLayer &, bool firstLoop=true) |
Public Member Functions inherited from BaseParticlePropagator | |
bool | backPropagate () |
BaseParticlePropagator () | |
Default c'tor. More... | |
BaseParticlePropagator (const RawParticle &myPart, double r, double z, double B) | |
BaseParticlePropagator (const RawParticle &myPart, double r, double z, double B, double t) | |
double | getMagneticField () const |
Get the magnetic field. More... | |
int | getSuccess () const |
Has propagation been performed and was barrel or endcap reached ? More... | |
bool | hasDecayed () const |
Has the particle decayed while propagated ? More... | |
double | helixCentreDistToAxis () const |
The distance between the cylinder and the helix axes. More... | |
double | helixCentreDistToAxis (double xC, double yC) const |
double | helixCentrePhi () const |
The azimuth if the vector joining the cylinder and the helix axes. More... | |
double | helixCentrePhi (double xC, double yC) const |
double | helixCentreX () const |
The x coordinate of the helix axis. More... | |
double | helixCentreX (double radius, double phi) const |
double | helixCentreY () const |
The y coordinate of the helix axis. More... | |
double | helixCentreY (double radius, double phi) const |
double | helixRadius () const |
The helix Radius. More... | |
double | helixRadius (double pT) const |
double | helixStartPhi () const |
The azimuth of the momentum at the vertex. More... | |
void | increaseRCyl (double delta) |
Just an internal trick. More... | |
void | init () |
Initialize internal switches and quantities. More... | |
bool | inside () const |
Is the vertex inside the cylinder ? (stricly inside : true) More... | |
bool | inside (double rPos2) const |
bool | onBarrel () const |
Is the vertex already on the cylinder barrel ? More... | |
bool | onBarrel (double rPos2) const |
bool | onEndcap () const |
Is the vertex already on the cylinder endcap ? More... | |
bool | onEndcap (double rPos2) const |
bool | onFiducial () const |
Is the vertex on some material ? More... | |
bool | onSurface () const |
Is the vertex already on the cylinder surface ? More... | |
bool | onSurface (double rPos2) const |
RawParticle const & | particle () const |
The particle being propagated. More... | |
RawParticle & | particle () |
bool | propagate () |
BaseParticlePropagator | propagated () const |
bool | propagateToBeamCylinder (const XYZTLorentzVector &v, double radius=0.) |
bool | propagateToClosestApproach (double x0=0., double y0=0, bool first=true) |
bool | propagateToEcal (bool first=true) |
bool | propagateToEcalEntrance (bool first=true) |
bool | propagateToHcalEntrance (bool first=true) |
bool | propagateToHcalExit (bool first=true) |
bool | propagateToHOLayer (bool first=true) |
bool | propagateToNominalVertex (const XYZTLorentzVector &hit2=XYZTLorentzVector(0., 0., 0., 0.)) |
bool | propagateToPreshowerLayer1 (bool first=true) |
bool | propagateToPreshowerLayer2 (bool first=true) |
bool | propagateToVFcalEntrance (bool first=true) |
void | resetDebug () |
void | setDebug () |
Set the debug leve;. More... | |
void | setMagneticField (double b) |
Set the magnetic field. More... | |
void | setParticle (RawParticle const &iParticle) |
void | setPropagationConditions (double r, double z, bool firstLoop=true) |
Set the propagation characteristics (rCyl, zCyl and first loop only) More... | |
void | setProperDecayTime (double t) |
Set the proper decay time. More... | |
double | xyImpactParameter (double x0=0., double y0=0.) const |
Transverse impact parameter. More... | |
double | zImpactParameter (double x0=0, double y0=0.) const |
Longitudinal impact parameter. More... | |
Private Attributes | |
const RandomEngineAndDistribution * | random |
const MagneticFieldMap * | theFieldMap |
const HepPDT::ParticleDataTable * | theTable = nullptr |
Additional Inherited Members | |
Protected Member Functions inherited from BaseParticlePropagator | |
double | c_light () const |
The speed of light in mm/ns (!) without clhep (yeaaahhh!) More... | |
Protected Attributes inherited from BaseParticlePropagator | |
bool | fiducial |
The particle traverses some real material. More... | |
int | success |
0:propagation still be done, 1:reached 'barrel', 2:reached 'endcaps' More... | |
Definition at line 28 of file ParticlePropagator.h.
ParticlePropagator::ParticlePropagator | ( | ) |
Default c'tor.
Definition at line 15 of file ParticlePropagator.cc.
Referenced by propagated().
ParticlePropagator::ParticlePropagator | ( | const RawParticle & | myPart, |
double | R, | ||
double | Z, | ||
const MagneticFieldMap * | aFieldMap, | ||
const RandomEngineAndDistribution * | engine, | ||
const HepPDT::ParticleDataTable * | table | ||
) |
Constructor taking as arguments a RawParticle, as well as the radius, half-height and magnetic field defining the cylinder for which propagation is to be performed
Definition at line 17 of file ParticlePropagator.cc.
References fieldMap(), initProperDecayTime(), BaseParticlePropagator::particle(), BaseParticlePropagator::setMagneticField(), X, beamSpotPI::Y, and beamSpotPI::Z.
ParticlePropagator::ParticlePropagator | ( | const RawParticle & | myPart, |
const MagneticFieldMap * | aFieldMap, | ||
const RandomEngineAndDistribution * | engine, | ||
const HepPDT::ParticleDataTable * | table | ||
) |
Constructor with only a RawParticle as argument for subsequent propagation to known surfaces (ECAL, HCAL ...)
Definition at line 28 of file ParticlePropagator.cc.
References fieldMap(), initProperDecayTime(), BaseParticlePropagator::particle(), BaseParticlePropagator::setMagneticField(), X, beamSpotPI::Y, and beamSpotPI::Z.
ParticlePropagator::ParticlePropagator | ( | const XYZTLorentzVector & | p, |
const XYZTLorentzVector & | v, | ||
float | q, | ||
const MagneticFieldMap * | aFieldMap, | ||
const HepPDT::ParticleDataTable * | table | ||
) |
Constructor with two LorentzVector (momentum and vertex (in cm)) and an electric charge propagation to known surfaces (ECAL, HCAL ...)
Definition at line 42 of file ParticlePropagator.cc.
References fieldMap(), BaseParticlePropagator::particle(), BaseParticlePropagator::setMagneticField(), X, beamSpotPI::Y, and beamSpotPI::Z.
ParticlePropagator::ParticlePropagator | ( | const XYZTLorentzVector & | p, |
const XYZVector & | v, | ||
float | q, | ||
const MagneticFieldMap * | aFieldMap, | ||
const HepPDT::ParticleDataTable * | table | ||
) |
Constructor with a LorentzVector (momentum), a Hep3Vector (vertex in cm) and an electric charge propagation to known surfaces (ECAL, HCAL ...)
Definition at line 54 of file ParticlePropagator.cc.
References fieldMap(), BaseParticlePropagator::particle(), BaseParticlePropagator::setMagneticField(), X, beamSpotPI::Y, and beamSpotPI::Z.
ParticlePropagator::ParticlePropagator | ( | const FSimTrack & | simTrack, |
const MagneticFieldMap * | aFieldMap, | ||
const RandomEngineAndDistribution * | engine, | ||
const HepPDT::ParticleDataTable * | table | ||
) |
Constructor with a FSimTrack from the FSimEvent
Definition at line 66 of file ParticlePropagator.cc.
References FSimTrack::decayTime(), fieldMap(), initProperDecayTime(), BaseParticlePropagator::particle(), BaseParticlePropagator::setMagneticField(), BaseParticlePropagator::setProperDecayTime(), cscDigiValidation_cfi::simTrack, X, beamSpotPI::Y, and beamSpotPI::Z.
ParticlePropagator::ParticlePropagator | ( | const ParticlePropagator & | myPropPart | ) |
Constructor with a (Base)ParticlePropagator
Definition at line 89 of file ParticlePropagator.cc.
ParticlePropagator::ParticlePropagator | ( | const BaseParticlePropagator & | myPropPart, |
const MagneticFieldMap * | aFieldMap, | ||
const HepPDT::ParticleDataTable * | table | ||
) |
Definition at line 94 of file ParticlePropagator.cc.
References fieldMap(), BaseParticlePropagator::particle(), BaseParticlePropagator::setMagneticField(), X, beamSpotPI::Y, and beamSpotPI::Z.
double ParticlePropagator::fieldMap | ( | double | x, |
double | y, | ||
double | z | ||
) |
The fieldMap given by the detector geormetry
Definition at line 125 of file ParticlePropagator.cc.
References RawParticle::charge(), MagneticFieldMap::inTeslaZ(), BaseParticlePropagator::particle(), theFieldMap, geometryCSVtoXML::xx, geometryCSVtoXML::yy, and geometryCSVtoXML::zz.
Referenced by ParticlePropagator(), propagateToBoundSurface(), propagateToClosestApproach(), and propagateToNominalVertex().
double ParticlePropagator::fieldMap | ( | const TrackerLayer & | layer, |
double | coord, | ||
int | success | ||
) |
Definition at line 132 of file ParticlePropagator.cc.
References RawParticle::charge(), MagneticFieldMap::inTeslaZ(), pixelTopology::layer, BaseParticlePropagator::particle(), BaseParticlePropagator::success, and theFieldMap.
void ParticlePropagator::initProperDecayTime | ( | ) |
Initialize the proper decay time of the particle
Definition at line 101 of file ParticlePropagator.cc.
References funct::abs(), pdg::cTau(), RandomEngineAndDistribution::flatShoot(), dqm-mbProfile::log, BaseParticlePropagator::particle(), RawParticle::pid(), BaseParticlePropagator::properDecayTime, random, BaseParticlePropagator::setProperDecayTime(), and theTable.
Referenced by ParticlePropagator().
|
inline |
Definition at line 100 of file ParticlePropagator.h.
References theTable.
Referenced by PythiaDecays::particleDaughters().
ParticlePropagator ParticlePropagator::propagated | ( | ) | const |
Return a new instance, corresponding to the particle propagated to the surface of the cylinder
Definition at line 121 of file ParticlePropagator.cc.
References ParticlePropagator(), BaseParticlePropagator::propagated(), theFieldMap, and theTable.
bool ParticlePropagator::propagateToBoundSurface | ( | const TrackerLayer & | layer | ) |
Definition at line 139 of file ParticlePropagator.cc.
References fileCollector::done, BaseParticlePropagator::fiducial, fieldMap(), BaseParticlePropagator::hasDecayed(), pixelTopology::layer, BaseParticlePropagator::particle(), BaseParticlePropagator::propagate(), alignCSCRings::r, BaseParticlePropagator::setMagneticField(), BaseParticlePropagator::success, and z.
Referenced by TrajectoryManager::propagateToLayer().
bool ParticlePropagator::propagateToClosestApproach | ( | double | x0 = 0. , |
double | y0 = 0. , |
||
bool | first = true |
||
) |
Update the particle after propagation to the closest approach from Z axis, to the preshower layer 1 & 2, to the ECAL entrance, to the HCAL entrance, the HCAL 2nd and 3rd layer (not coded yet), the VFCAL entrance, or any BoundSurface(disk or cylinder)
Definition at line 111 of file ParticlePropagator.cc.
References fieldMap(), dqmdumpme::first, BaseParticlePropagator::propagateToClosestApproach(), and BaseParticlePropagator::setMagneticField().
bool ParticlePropagator::propagateToNominalVertex | ( | const XYZTLorentzVector & | hit2 = XYZTLorentzVector(0., 0., 0., 0.) | ) |
Definition at line 116 of file ParticlePropagator.cc.
References fieldMap(), BaseParticlePropagator::propagateToNominalVertex(), BaseParticlePropagator::setMagneticField(), and findQualityFiles::v.
void ParticlePropagator::setPropagationConditions | ( | const TrackerLayer & | layer, |
bool | firstLoop = true |
||
) |
Definition at line 169 of file ParticlePropagator.cc.
References BaseParticlePropagator::firstLoop, pixelTopology::layer, and BaseParticlePropagator::setPropagationConditions().
Referenced by ConvBremSeedProducer::produce(), and TrajectoryManager::propagateToLayer().
|
private |
Definition at line 104 of file ParticlePropagator.h.
Referenced by initProperDecayTime().
|
private |
Definition at line 103 of file ParticlePropagator.h.
Referenced by fieldMap(), and propagated().
|
private |
Definition at line 105 of file ParticlePropagator.h.
Referenced by initProperDecayTime(), particleDataTable(), and propagated().