CMS 3D CMS Logo

DualReferenceTrajectory.h
Go to the documentation of this file.
1 #ifndef Alignment_ReferenceTrajectories_DualReferenceTrajectory_H
2 #define Alignment_ReferenceTrajectories_DualReferenceTrajectory_H
3 
31 
33 namespace reco { class BeamSpot;}
34 
36 {
37 
38 public:
39 
41 
43  const ConstRecHitContainer& forwardRecHits,
44  const ConstRecHitContainer& backwardRecHits,
45  const MagneticField* magField,
46  const reco::BeamSpot& beamSpot,
48 
50 
51  DualReferenceTrajectory* clone() const override { return new DualReferenceTrajectory(*this); }
52 
53 protected:
54 
55  DualReferenceTrajectory(unsigned int nPar, unsigned int nHits,
57 
60  virtual bool construct(const TrajectoryStateOnSurface &referenceTsos,
61  const ConstRecHitContainer &forwardRecHits,
62  const ConstRecHitContainer &backwardRecHits,
63  const MagneticField *magField,
64  const reco::BeamSpot &beamSpot);
65 
66  virtual ReferenceTrajectory* construct(const TrajectoryStateOnSurface &referenceTsos,
67  const ConstRecHitContainer &recHits,
68  const MagneticField *magField,
69  const reco::BeamSpot &beamSpot,
70  const bool revertDirection = false) const;
71 
72  virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const;
73 
74  inline const PropagationDirection oppositeDirection( const PropagationDirection propDir ) const
75  { return ( propDir == anyDirection ) ? anyDirection : ( ( propDir == alongMomentum ) ? oppositeToMomentum : alongMomentum ); }
76 
77 private:
78  const double mass_;
81  const bool useBeamSpot_;
82 };
83 
84 #endif
const PropagationDirection propDir_
const PropagationDirection oppositeDirection(const PropagationDirection propDir) const
Definition: config.py:1
PropagationDirection
DualReferenceTrajectory * clone() const override
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
CLHEP::HepVector AlgebraicVector
fixed size matrix
const MaterialEffects materialEffects_