File indexing completed on 2024-04-06 11:57:21
0001 #include "Alignment/ReferenceTrajectories/interface/TrajectoryFactoryBase.h"
0002 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0003
0004 namespace edm {
0005 class ParameterSet;
0006 class EventSetup;
0007 }
0008 namespace reco {
0009 class BeamSpot;
0010 }
0011
0012
0013
0014
0015 class BzeroReferenceTrajectoryFactory : public TrajectoryFactoryBase {
0016 public:
0017 BzeroReferenceTrajectoryFactory(const edm::ParameterSet &config, edm::ConsumesCollector &iC);
0018 ~BzeroReferenceTrajectoryFactory() override;
0019
0020 const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup,
0021 const ConstTrajTrackPairCollection &tracks,
0022 const reco::BeamSpot &beamSpot) const override;
0023
0024 const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup,
0025 const ConstTrajTrackPairCollection &tracks,
0026 const ExternalPredictionCollection &external,
0027 const reco::BeamSpot &beamSpot) const override;
0028
0029 BzeroReferenceTrajectoryFactory *clone() const override { return new BzeroReferenceTrajectoryFactory(*this); }
0030
0031 const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> m_MagFieldToken;
0032
0033 private:
0034 double theMass;
0035 double theMomentumEstimate;
0036 };