File indexing completed on 2024-09-07 04:36:46
0001 #ifndef L1Trigger_DTTriggerPhase2_MuonPathSLFitter_h
0002 #define L1Trigger_DTTriggerPhase2_MuonPathSLFitter_h
0003
0004 #include "L1Trigger/DTTriggerPhase2/interface/MuonPathFitter.h"
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 class MuonPathSLFitter : public MuonPathFitter {
0015 public:
0016
0017 MuonPathSLFitter(const edm::ParameterSet &pset,
0018 edm::ConsumesCollector &iC,
0019 std::shared_ptr<GlobalCoordsObtainer> &globalcoordsobtainer);
0020 ~MuonPathSLFitter() override;
0021
0022
0023 void initialise(const edm::EventSetup &iEventSetup) override;
0024 void run(edm::Event &iEvent,
0025 const edm::EventSetup &iEventSetup,
0026 MuonPathPtrs &inMpath,
0027 std::vector<cmsdt::metaPrimitive> &metaPrimitives) override {};
0028 void run(edm::Event &iEvent,
0029 const edm::EventSetup &iEventSetup,
0030 MuonPathPtrs &inMpath,
0031 std::vector<lat_vector> &lateralities,
0032 std::vector<cmsdt::metaPrimitive> &metaPrimitives) override;
0033 void run(edm::Event &iEvent,
0034 const edm::EventSetup &iEventSetup,
0035 std::vector<cmsdt::metaPrimitive> &inMPaths,
0036 std::vector<cmsdt::metaPrimitive> &outMPaths) override {};
0037 void run(edm::Event &iEvent,
0038 const edm::EventSetup &iEventSetup,
0039 MuonPathPtrs &inMpath,
0040 MuonPathPtrs &outMPath) override {};
0041
0042 void finish() override;
0043
0044
0045
0046
0047 edm::FileInPath shift_theta_filename_;
0048 std::map<int, float> shiftthetainfo_;
0049
0050
0051 edm::FileInPath sl1_filename_;
0052 edm::FileInPath sl2_filename_;
0053 edm::FileInPath sl3_filename_;
0054
0055 private:
0056
0057 void analyze(MuonPathPtr &inMPath, lat_vector lat_combs, std::vector<cmsdt::metaPrimitive> &metaPrimitives);
0058 void fillLuts();
0059 int get_rom_addr(MuonPathPtr &inMPath, latcomb lats);
0060
0061
0062
0063
0064 std::vector<std::vector<int>> lut_sl1;
0065 std::vector<std::vector<int>> lut_sl2;
0066 std::vector<std::vector<int>> lut_sl3;
0067 };
0068
0069 #endif