CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ReferenceTrajectory.h
Go to the documentation of this file.
1 #ifndef Alignment_ReferenceTrajectories_ReferenceTrajectory_H
2 #define Alignment_ReferenceTrajectories_ReferenceTrajectory_H
3 
36 
38 class MagneticField;
40 class BoundPlane;
42 
43 namespace reco { class BeamSpot; }
44 
46 {
47 
48 public:
49 
51 
59  ReferenceTrajectory(const TrajectoryStateOnSurface &referenceTsos,
61  bool hitsAreReverse,
62  const MagneticField *magField,
63  MaterialEffects materialEffects,
64  PropagationDirection propDir,
65  double mass,
66  bool useBeamSpot,
67  const reco::BeamSpot &beamSpot);
68  virtual ~ReferenceTrajectory() {}
69 
70  virtual ReferenceTrajectory* clone() const { return new ReferenceTrajectory(*this); }
71 
72 protected:
73 
74  ReferenceTrajectory(unsigned int nPar, unsigned int nHits, MaterialEffects materialEffects);
75 
78  virtual bool construct(const TrajectoryStateOnSurface &referenceTsos,
80  double mass, MaterialEffects materialEffects,
81  const PropagationDirection propDir, const MagneticField *magField,
82  bool useBeamSpot,
83  const reco::BeamSpot &beamSpot);
84 
87  MaterialEffectsUpdator* createUpdator(MaterialEffects materialEffects, double mass) const;
88 
91  virtual bool propagate(const BoundPlane &previousSurface, const TrajectoryStateOnSurface &previousTsos,
92  const BoundPlane &newSurface, TrajectoryStateOnSurface &newTsos, AlgebraicMatrix &newJacobian,
93  AlgebraicMatrix &newCurvlinJacobian, double &nextStep,
94  const PropagationDirection propDir, const MagneticField *magField) const;
95 
99  unsigned int iRow,
100  const TrajectoryStateOnSurface &updatedTsos);
101 
104  virtual void fillDerivatives(const AlgebraicMatrix &projection,
105  const AlgebraicMatrix &fullJacobian, unsigned int iRow);
106 
109  virtual void fillTrajectoryPositions(const AlgebraicMatrix &projection,
110  const AlgebraicVector &mixedLocalParams,
111  unsigned int iRow);
112 
115  virtual bool addMaterialEffectsCov(const std::vector<AlgebraicMatrix> &allJacobians,
116  const std::vector<AlgebraicMatrix> &allProjections,
117  const std::vector<AlgebraicSymMatrix> &allCurvChanges,
118  const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs);
119 
122  virtual bool addMaterialEffectsBp (const std::vector<AlgebraicMatrix> &allJacobians,
123  const std::vector<AlgebraicMatrix> &allProjections,
124  const std::vector<AlgebraicSymMatrix> &allCurvChanges,
125  const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
126  const std::vector<AlgebraicMatrix> &allLocalToCurv);
127 
130  virtual bool addMaterialEffectsBrl(const std::vector<AlgebraicMatrix> &allJacobians,
131  const std::vector<AlgebraicMatrix> &allProjections,
132  const std::vector<AlgebraicSymMatrix> &allCurvChanges,
133  const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
134  const std::vector<AlgebraicMatrix> &allLocalToCurv,
135  const GlobalTrajectoryParameters &gtp);
138  virtual bool addMaterialEffectsBrl(const std::vector<AlgebraicMatrix> &allProjections,
139  const std::vector<AlgebraicSymMatrix> &allDeltaParaCovs,
140  const std::vector<AlgebraicMatrix> &allLocalToCurv,
141  const std::vector<double> &allSteps,
142  const GlobalTrajectoryParameters &gtp,
143  const double minStep = 1.0);
144 
145  // Don't care for propagation direction 'anyDirection' - in that case the material effects
146  // are anyway not updated ...
148  {
149  return ( dir == alongMomentum ) ?
152  }
153 };
154 
155 #endif
virtual bool addMaterialEffectsBrl(const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs, const std::vector< AlgebraicMatrix > &allLocalToCurv, const GlobalTrajectoryParameters &gtp)
virtual bool construct(const TrajectoryStateOnSurface &referenceTsos, const TransientTrackingRecHit::ConstRecHitContainer &recHits, double mass, MaterialEffects materialEffects, const PropagationDirection propDir, const MagneticField *magField, bool useBeamSpot, const reco::BeamSpot &beamSpot)
virtual void fillMeasurementAndError(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr, unsigned int iRow, const TrajectoryStateOnSurface &updatedTsos)
const TransientTrackingRecHit::ConstRecHitContainer & recHits() const
PropagationDirection
virtual bool addMaterialEffectsBp(const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs, const std::vector< AlgebraicMatrix > &allLocalToCurv)
virtual ReferenceTrajectory * clone() const
virtual bool propagate(const BoundPlane &previousSurface, const TrajectoryStateOnSurface &previousTsos, const BoundPlane &newSurface, TrajectoryStateOnSurface &newTsos, AlgebraicMatrix &newJacobian, AlgebraicMatrix &newCurvlinJacobian, double &nextStep, const PropagationDirection propDir, const MagneticField *magField) const
const SurfaceSide surfaceSide(const PropagationDirection dir) const
SurfaceSideDefinition::SurfaceSide SurfaceSide
CLHEP::HepMatrix AlgebraicMatrix
ReferenceTrajectory(const TrajectoryStateOnSurface &referenceTsos, const TransientTrackingRecHit::ConstRecHitContainer &recHits, bool hitsAreReverse, const MagneticField *magField, MaterialEffects materialEffects, PropagationDirection propDir, double mass, bool useBeamSpot, const reco::BeamSpot &beamSpot)
MaterialEffectsUpdator * createUpdator(MaterialEffects materialEffects, double mass) const
virtual void fillDerivatives(const AlgebraicMatrix &projection, const AlgebraicMatrix &fullJacobian, unsigned int iRow)
std::vector< ConstRecHitPointer > ConstRecHitContainer
CLHEP::HepVector AlgebraicVector
virtual bool addMaterialEffectsCov(const std::vector< AlgebraicMatrix > &allJacobians, const std::vector< AlgebraicMatrix > &allProjections, const std::vector< AlgebraicSymMatrix > &allCurvChanges, const std::vector< AlgebraicSymMatrix > &allDeltaParaCovs)
virtual void fillTrajectoryPositions(const AlgebraicMatrix &projection, const AlgebraicVector &mixedLocalParams, unsigned int iRow)
dbl *** dir
Definition: mlp_gen.cc:35