Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:33

0001 #ifndef TrackingTools_ESProducers_PropagatorWithMaterialESProducer_h
0002 #define TrackingTools_ESProducers_PropagatorWithMaterialESProducer_h
0003 
0004 /** \class PropagatorWithMaterialESProducer
0005  *  ESProducer for PropagatorWithMaterial.
0006  *
0007  *  \author cerati
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