Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #include "FWCore/Framework/interface/ESProducer.h"
0002 #include "FWCore/Framework/interface/ModuleFactory.h"
0003 #include "FWCore/Framework/interface/ESHandle.h"
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "FWCore/Utilities/interface/ESGetToken.h"
0006 #include "L1Trigger/TrackerTFP/interface/TrackQuality.h"
0007 
0008 #include <memory>
0009 
0010 namespace trackerTFP {
0011 
0012   /*! \class  trackerTFP::ProducerTrackQuality
0013    *  \brief  Class to produce TrackQuality of Track Trigger emulators
0014    *  \author Thomas Schuh
0015    *  \date   2024, July
0016    */
0017   class ProducerTrackQuality : public edm::ESProducer {
0018   public:
0019     ProducerTrackQuality(const edm::ParameterSet& iConfig) {
0020       auto cc = setWhatProduced(this);
0021       esGetToken_ = cc.consumes();
0022       iConfig_.model_ = iConfig.getParameter<edm::FileInPath>("Model");
0023       iConfig_.featureNames_ = iConfig.getParameter<std::vector<std::string>>("FeatureNames");
0024       iConfig_.baseShiftCot_ = iConfig.getParameter<int>("BaseShiftCot");
0025       iConfig_.baseShiftZ0_ = iConfig.getParameter<int>("BaseShiftZ0");
0026       iConfig_.baseShiftAPfixed_ = iConfig.getParameter<int>("BaseShiftAPfixed");
0027       iConfig_.chi2rphiConv_ = iConfig.getParameter<int>("Chi2rphiConv");
0028       iConfig_.chi2rzConv_ = iConfig.getParameter<int>("Chi2rzConv");
0029       iConfig_.weightBinFraction_ = iConfig.getParameter<int>("WeightBinFraction");
0030       iConfig_.dzTruncation_ = iConfig.getParameter<int>("DzTruncation");
0031       iConfig_.dphiTruncation_ = iConfig.getParameter<int>("DphiTruncation");
0032       iConfig_.widthM20_ = iConfig.getParameter<int>("WidthM20");
0033       iConfig_.widthM21_ = iConfig.getParameter<int>("WidthM21");
0034       iConfig_.widthInvV0_ = iConfig.getParameter<int>("WidthInvV0");
0035       iConfig_.widthInvV1_ = iConfig.getParameter<int>("WidthInvV1");
0036       iConfig_.widthchi2rphi_ = iConfig.getParameter<int>("Widthchi2rphi");
0037       iConfig_.widthchi2rz_ = iConfig.getParameter<int>("Widthchi2rz");
0038       iConfig_.baseShiftchi2rphi_ = iConfig.getParameter<int>("BaseShiftchi2rphi");
0039       iConfig_.baseShiftchi2rz_ = iConfig.getParameter<int>("BaseShiftchi2rz");
0040     }
0041     ~ProducerTrackQuality() override = default;
0042     std::unique_ptr<TrackQuality> produce(const DataFormatsRcd& rcd) {
0043       const DataFormats* dataFormats = &rcd.get(esGetToken_);
0044       return std::make_unique<TrackQuality>(iConfig_, dataFormats);
0045     }
0046 
0047   private:
0048     ConfigTQ iConfig_;
0049     edm::ESGetToken<DataFormats, DataFormatsRcd> esGetToken_;
0050   };
0051 
0052 }  // namespace trackerTFP
0053 
0054 DEFINE_FWK_EVENTSETUP_MODULE(trackerTFP::ProducerTrackQuality);