Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-03 00:12:21

0001 //  This ESproducer produces configuration needed by HitPatternHelper
0002 //
0003 //  Created by J.Li on 1/23/21.
0004 //
0005 
0006 #include "FWCore/Framework/interface/ModuleFactory.h"
0007 #include "FWCore/Framework/interface/ESProducer.h"
0008 #include "FWCore/Framework/interface/ESHandle.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 #include "FWCore/Utilities/interface/ESGetToken.h"
0011 #include "FWCore/Utilities/interface/ESInputTag.h"
0012 #include "DataFormats/Provenance/interface/ParameterSetID.h"
0013 #include "L1Trigger/TrackFindingTracklet/interface/HitPatternHelper.h"
0014 #include "L1Trigger/TrackTrigger/interface/Setup.h"
0015 #include "L1Trigger/TrackerTFP/interface/DataFormats.h"
0016 #include "L1Trigger/TrackerTFP/interface/LayerEncoding.h"
0017 
0018 #include <memory>
0019 
0020 namespace hph {
0021 
0022   class ProducerHPH : public edm::ESProducer {
0023   public:
0024     ProducerHPH(const edm::ParameterSet& iConfig);
0025     ~ProducerHPH() override = default;
0026     std::unique_ptr<Setup> produce(const SetupRcd& Rcd);
0027 
0028   private:
0029     Setup::Config iConfig_;
0030     edm::ESGetToken<tt::Setup, tt::SetupRcd> esGetTokenSetup_;
0031     edm::ESGetToken<trackerTFP::DataFormats, trackerTFP::DataFormatsRcd> esGetTokenDataFormats_;
0032     edm::ESGetToken<trackerTFP::LayerEncoding, trackerTFP::DataFormatsRcd> esGetTokenLayerEncoding_;
0033   };
0034 
0035   ProducerHPH::ProducerHPH(const edm::ParameterSet& iConfig) {
0036     auto cc = setWhatProduced(this);
0037     esGetTokenSetup_ = cc.consumes();
0038     esGetTokenDataFormats_ = cc.consumes();
0039     esGetTokenLayerEncoding_ = cc.consumes();
0040     const edm::ParameterSet& oldKFPSet = iConfig.getParameter<edm::ParameterSet>("oldKFPSet");
0041     iConfig_.hphDebug_ = iConfig.getParameter<bool>("hphDebug");
0042     iConfig_.useNewKF_ = iConfig.getParameter<bool>("useNewKF");
0043     iConfig_.chosenRofZ_ = oldKFPSet.getParameter<double>("ChosenRofZ");
0044     iConfig_.etaRegions_ = oldKFPSet.getParameter<std::vector<double>>("EtaRegions");
0045   }
0046 
0047   std::unique_ptr<Setup> ProducerHPH::produce(const SetupRcd& Rcd) {
0048     const tt::Setup& setupTT = Rcd.get(esGetTokenSetup_);
0049     const trackerTFP::DataFormats& dataFormats = Rcd.get(esGetTokenDataFormats_);
0050     const trackerTFP::LayerEncoding& layerEncoding = Rcd.get(esGetTokenLayerEncoding_);
0051     return std::make_unique<Setup>(iConfig_, setupTT, dataFormats, layerEncoding);
0052   }
0053 
0054 }  // namespace hph
0055 
0056 DEFINE_FWK_EVENTSETUP_MODULE(hph::ProducerHPH);