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
0013
0014
0015
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 }
0053
0054 DEFINE_FWK_EVENTSETUP_MODULE(trackerTFP::ProducerTrackQuality);