File indexing completed on 2024-04-06 12:31:33
0001 #ifndef TrackingTools_ESProducers_PropagatorWithMaterialESProducer_h
0002 #define TrackingTools_ESProducers_PropagatorWithMaterialESProducer_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "FWCore/Framework/interface/ESProducer.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/Utilities/interface/ESGetToken.h"
0013
0014 #include "MagneticField/Engine/interface/MagneticField.h"
0015 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0016 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
0017 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0018 #include <memory>
0019
0020 class PropagatorWithMaterialESProducer : public edm::ESProducer {
0021 public:
0022 PropagatorWithMaterialESProducer(const edm::ParameterSet &p);
0023
0024 std::unique_ptr<Propagator> produce(const TrackingComponentsRecord &);
0025
0026 static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0027
0028 private:
0029 const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> mfToken_;
0030 const double mass_;
0031 const double maxDPhi_;
0032 const double ptMin_;
0033 const PropagationDirection dir_;
0034 const bool useRK_;
0035 const bool useOldAnalPropLogic_;
0036 };
0037
0038 #endif