Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:51

0001 #include "FWCore/Framework/interface/ESProducer.h"
0002 #include "FWCore/Framework/interface/ModuleFactory.h"
0003 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0004 #include "FWCore/ParameterSet/interface/ParameterDescription.h"
0005 #include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
0006 #include "RecoTracker/Record/interface/TrackerMultipleScatteringRecord.h"
0007 
0008 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
0009 #include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h"
0010 #include "MagneticField/Engine/interface/MagneticField.h"
0011 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0012 
0013 class MultipleScatteringParametrisationMakerESProducer : public edm::ESProducer {
0014 public:
0015   MultipleScatteringParametrisationMakerESProducer(edm::ParameterSet const& iConfig);
0016 
0017   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0018 
0019   std::unique_ptr<MultipleScatteringParametrisationMaker> produce(const TrackerMultipleScatteringRecord& iRecord);
0020 
0021 private:
0022   edm::ESGetToken<GeometricSearchTracker, TrackerRecoGeometryRecord> trackerToken_;
0023   edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> bfieldToken_;
0024 };
0025 
0026 MultipleScatteringParametrisationMakerESProducer::MultipleScatteringParametrisationMakerESProducer(
0027     edm::ParameterSet const& iConfig) {
0028   auto cc = setWhatProduced(this);
0029   trackerToken_ = cc.consumes();
0030   bfieldToken_ = cc.consumes();
0031 }
0032 
0033 void MultipleScatteringParametrisationMakerESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0034   edm::ParameterSetDescription desc;
0035   descriptions.addWithDefaultLabel(desc);
0036 }
0037 
0038 std::unique_ptr<MultipleScatteringParametrisationMaker> MultipleScatteringParametrisationMakerESProducer::produce(
0039     const TrackerMultipleScatteringRecord& iRecord) {
0040   return std::make_unique<MultipleScatteringParametrisationMaker>(iRecord.get(trackerToken_),
0041                                                                   iRecord.get(bfieldToken_));
0042 }
0043 
0044 DEFINE_FWK_EVENTSETUP_MODULE(MultipleScatteringParametrisationMakerESProducer);