00001 #include "Alignment/ReferenceTrajectories/interface/TrajectoryFactoryBase.h" 00002 00003 namespace edm { 00004 class ParameterSet; 00005 class EventSetup; 00006 } 00007 namespace reco { 00008 class BeamSpot; 00009 } 00010 00013 00014 class BzeroReferenceTrajectoryFactory : public TrajectoryFactoryBase 00015 { 00016 public: 00017 BzeroReferenceTrajectoryFactory(const edm::ParameterSet &config); 00018 virtual ~BzeroReferenceTrajectoryFactory(); 00019 00021 virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, 00022 const ConstTrajTrackPairCollection &tracks, 00023 const reco::BeamSpot &beamSpot) const; 00024 00025 virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, 00026 const ConstTrajTrackPairCollection &tracks, 00027 const ExternalPredictionCollection &external, 00028 const reco::BeamSpot &beamSpot) const; 00029 00030 virtual BzeroReferenceTrajectoryFactory* clone() const { return new BzeroReferenceTrajectoryFactory( *this ); } 00031 00032 private: 00033 00034 double theMass; 00035 double theMomentumEstimate; 00036 }; 00037