Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace edm
0008 namespace reco {
0009   class BeamSpot;
0010 }
0011 
0012 /// A factory that produces instances of class BzeroReferenceTrajectory from a
0013 /// given TrajTrackPairCollection.
0014 
0015 class BzeroReferenceTrajectoryFactory : public TrajectoryFactoryBase {
0016 public:
0017   BzeroReferenceTrajectoryFactory(const edm::ParameterSet &config, edm::ConsumesCollector &iC);
0018   ~BzeroReferenceTrajectoryFactory() override;
0019   /// Produce the reference trajectories.
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 };