CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ParticlePropagator.h
Go to the documentation of this file.
1 /*Emacs: -*- C++ -*- */
2 #ifndef PARTICLEPROPAGATOR_H
3 #define PARTICLEPROPAGATOR_H
4 
19 // FAMOS Headers
21 
22 class TrackerLayer;
23 class FSimTrack;
24 class RandomEngine;
25 class MagneticFieldMap;
26 
28 
29 public:
32 
36  ParticlePropagator(const RawParticle& myPart,
37  double R, double Z,
38  const MagneticFieldMap* aFieldMap,
39  const RandomEngine* engine);
40 
43  ParticlePropagator(const RawParticle& myPart,
44  const MagneticFieldMap* aFieldMap,
45  const RandomEngine* engine);
46 
50  const XYZTLorentzVector& v,
51  float q,
52  const MagneticFieldMap* aFieldMap);
53 
57  const XYZVector& v, float q,
58  const MagneticFieldMap* aFieldMap);
59 
61  ParticlePropagator(const FSimTrack& simTrack,
62  const MagneticFieldMap* aFieldMap,
63  const RandomEngine* engine);
64 
66  ParticlePropagator(const ParticlePropagator& myPropPart);
67  // ParticlePropagator(BaseParticlePropagator myPropPart);
69  const MagneticFieldMap* aFieldMap);
70 
72  void initProperDecayTime();
73 
77 
82  bool propagateToClosestApproach(double x0=0., double y0=0., bool first=true);
84  XYZTLorentzVector(0.,0.,0.,0.));
85 
87  double fieldMap(double x,double y,double z);
88  double fieldMap(const TrackerLayer& layer, double coord, int success);
89 
92  bool firstLoop=true);
93 
94 private:
95 
98 
99 };
100 
101 #endif
const MagneticFieldMap * theFieldMap
ParticlePropagator()
Default c'tor.
double y() const
y of vertex
Definition: RawParticle.h:270
double z() const
z of vertex
Definition: RawParticle.h:271
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'
bool propagateToBoundSurface(const TrackerLayer &)
double fieldMap(double x, double y, double z)
double x() const
x of vertex
Definition: RawParticle.h:269
double R() const
vertex radius
Definition: RawParticle.h:277
math::XYZVector XYZVector
double Z() const
z of vertex
Definition: RawParticle.h:275
void setPropagationConditions(const TrackerLayer &, bool firstLoop=true)
const RandomEngine * random
bool first
Definition: L1TdeRCT.cc:94
ParticlePropagator propagated() const
bool propagateToNominalVertex(const XYZTLorentzVector &hit2=XYZTLorentzVector(0., 0., 0., 0.))
mathSSE::Vec4< T > v
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:15