Go to the documentation of this file.00001 #ifndef Alignment_ReferenceTrajectories_DualBzeroReferenceTrajectory_H
00002 #define Alignment_ReferenceTrajectories_DualBzeroReferenceTrajectory_H
00003
00033 #include "Alignment/ReferenceTrajectories/interface/DualReferenceTrajectory.h"
00034
00035 class BzeroReferenceTrajectory;
00036
00037
00038 class DualBzeroReferenceTrajectory : public DualReferenceTrajectory
00039 {
00040
00041 public:
00042
00043 typedef TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer;
00044
00045 DualBzeroReferenceTrajectory( const TrajectoryStateOnSurface &referenceTsos,
00046 const ConstRecHitContainer &forwardRecHits,
00047 const ConstRecHitContainer &backwardRecHits,
00048 const MagneticField *magField,
00049 MaterialEffects materialEffects,
00050 PropagationDirection propDir,
00051 double mass,
00052 double momentumEstimate,
00053 bool useBeamSpot,
00054 const reco::BeamSpot &beamSpot);
00055
00056 virtual ~DualBzeroReferenceTrajectory() {}
00057
00058 virtual DualBzeroReferenceTrajectory* clone() const { return new DualBzeroReferenceTrajectory(*this); }
00059
00060 protected:
00061
00062 virtual ReferenceTrajectory* construct(const TrajectoryStateOnSurface &referenceTsos,
00063 const ConstRecHitContainer &recHits,
00064 double mass, MaterialEffects materialEffects,
00065 const PropagationDirection propDir,
00066 const MagneticField *magField,
00067 bool useBeamSpot,
00068 const reco::BeamSpot &beamSpot) const;
00069
00070 virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const;
00071
00072 double theMomentumEstimate;
00073
00074 };
00075
00076 #endif