CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  MaterialEffects materialEffects,
47  PropagationDirection propDir,
48  double mass,
49  bool useBeamSpot,
50  const reco::BeamSpot &beamSpot);
51 
53 
54  virtual DualReferenceTrajectory* clone() const { return new DualReferenceTrajectory(*this); }
55 
56 protected:
57 
58  DualReferenceTrajectory( unsigned int nPar, unsigned int nHits);
59 
62  virtual bool construct(const TrajectoryStateOnSurface &referenceTsos,
63  const ConstRecHitContainer &forwardRecHits,
64  const ConstRecHitContainer &backwardRecHits,
65  double mass, MaterialEffects materialEffects,
66  const PropagationDirection propDir,
67  const MagneticField *magField,
68  bool useBeamSpot,
69  const reco::BeamSpot &beamSpot);
70 
71  virtual ReferenceTrajectory* construct(const TrajectoryStateOnSurface &referenceTsos,
73  double mass, MaterialEffects materialEffects,
74  const PropagationDirection propDir,
75  const MagneticField *magField,
76  bool useBeamSpot,
77  const reco::BeamSpot &beamSpot) const;
78 
79  virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const;
80 
81  inline const PropagationDirection oppositeDirection( const PropagationDirection propDir ) const
82  { return ( propDir == anyDirection ) ? anyDirection : ( ( propDir == alongMomentum ) ? oppositeToMomentum : alongMomentum ); }
83 
84 };
85 
86 #endif
const TransientTrackingRecHit::ConstRecHitContainer & recHits() const
const PropagationDirection oppositeDirection(const PropagationDirection propDir) const
PropagationDirection
DualReferenceTrajectory(const TrajectoryStateOnSurface &referenceTsos, const ConstRecHitContainer &forwardRecHits, const ConstRecHitContainer &backwardRecHits, const MagneticField *magField, MaterialEffects materialEffects, PropagationDirection propDir, double mass, bool useBeamSpot, const reco::BeamSpot &beamSpot)
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const
std::vector< ConstRecHitPointer > ConstRecHitContainer
CLHEP::HepVector AlgebraicVector
virtual DualReferenceTrajectory * clone() const
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
virtual bool construct(const TrajectoryStateOnSurface &referenceTsos, const ConstRecHitContainer &forwardRecHits, const ConstRecHitContainer &backwardRecHits, double mass, MaterialEffects materialEffects, const PropagationDirection propDir, const MagneticField *magField, bool useBeamSpot, const reco::BeamSpot &beamSpot)