File indexing completed on 2025-04-09 02:02:10
0001
0002
0003
0004
0005
0006 #ifndef L1Trigger_TrackTrigger_interface_L1TrackQuality_h
0007 #define L1Trigger_TrackTrigger_interface_L1TrackQuality_h
0008
0009 #include <iostream>
0010 #include <set>
0011 #include <vector>
0012 #include <memory>
0013 #include <string>
0014
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/Framework/interface/EventSetup.h"
0017 #include "FWCore/Framework/interface/Frameworkfwd.h"
0018 #include "FWCore/Framework/interface/MakerMacros.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020 #include "DataFormats/L1TrackTrigger/interface/TTTrack.h"
0021 #include "DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h"
0022 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0023 #include <memory>
0024
0025 #include "conifer.h"
0026 #include "ap_fixed.h"
0027
0028 class L1TrackQuality {
0029 public:
0030
0031 L1TrackQuality();
0032
0033 L1TrackQuality(const edm::ParameterSet& qualityParams);
0034
0035
0036 ~L1TrackQuality() = default;
0037
0038
0039 std::vector<float> featureTransform(TTTrack<Ref_Phase2TrackerDigi_>& aTrack,
0040 std::vector<std::string> const& featureNames);
0041
0042
0043 void setL1TrackQuality(TTTrack<Ref_Phase2TrackerDigi_>& aTrack);
0044
0045
0046
0047 float runEmulatedTQ(std::vector<ap_fixed<10, 5>> inputFeatures);
0048
0049 void setModel(edm::FileInPath const& model, std::vector<std::string> const& featureNames);
0050
0051 void setBonusFeatures(std::vector<float> bonusFeatures);
0052
0053
0054 static constexpr double invSigmoid(double value) { return -log(1. / value - 1.); }
0055 static constexpr std::array<double, 1 << TTTrack_TrackWord::TrackBitWidths::kMVAQualitySize> getTqMVAPreSigBins() {
0056 return {{-16.,
0057 invSigmoid(TTTrack_TrackWord::tqMVABins[1]),
0058 invSigmoid(TTTrack_TrackWord::tqMVABins[2]),
0059 invSigmoid(TTTrack_TrackWord::tqMVABins[3]),
0060 invSigmoid(TTTrack_TrackWord::tqMVABins[4]),
0061 invSigmoid(TTTrack_TrackWord::tqMVABins[5]),
0062 invSigmoid(TTTrack_TrackWord::tqMVABins[6]),
0063 invSigmoid(TTTrack_TrackWord::tqMVABins[7])}};
0064 }
0065
0066 private:
0067
0068 edm::FileInPath model_;
0069 std::vector<std::string> featureNames_;
0070 bool useHPH_;
0071 std::vector<float> bonusFeatures_;
0072 };
0073 #endif