Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:45

0001 #ifndef L1Trigger_DTTriggerPhase2_MuonPathSLFitter_h
0002 #define L1Trigger_DTTriggerPhase2_MuonPathSLFitter_h
0003 
0004 #include "L1Trigger/DTTriggerPhase2/interface/MuonPathFitter.h"
0005 
0006 // ===============================================================================
0007 // Previous definitions and declarations
0008 // ===============================================================================
0009 
0010 // ===============================================================================
0011 // Class declarations
0012 // ===============================================================================
0013 
0014 class MuonPathSLFitter : public MuonPathFitter {
0015 public:
0016   // Constructors and destructor
0017   MuonPathSLFitter(const edm::ParameterSet &pset,
0018                    edm::ConsumesCollector &iC,
0019                    std::shared_ptr<GlobalCoordsObtainer> &globalcoordsobtainer);
0020   ~MuonPathSLFitter() override;
0021 
0022   // Main methods
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   // Other public methods
0045 
0046   //shift theta
0047   edm::FileInPath shift_theta_filename_;
0048   std::map<int, float> shiftthetainfo_;
0049 
0050   // luts
0051   edm::FileInPath sl1_filename_;
0052   edm::FileInPath sl2_filename_;
0053   edm::FileInPath sl3_filename_;
0054 
0055 private:
0056   // Private methods
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   // Private attributes
0062 
0063   // double chi2Th_;
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