Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:36:45

0001 #ifndef Phase2L1Trigger_DTTrigger_MPCoincidenceFilter_h
0002 #define Phase2L1Trigger_DTTrigger_MPCoincidenceFilter_h
0003 
0004 #include "L1Trigger/DTTriggerPhase2/interface/MPFilter.h"
0005 
0006 #include <iostream>
0007 #include <fstream>
0008 
0009 // ===============================================================================
0010 // Previous definitions and declarations
0011 // ===============================================================================
0012 
0013 // ===============================================================================
0014 // Class declarations
0015 // ===============================================================================
0016 
0017 class MPCoincidenceFilter : public MPFilter {
0018 public:
0019   // Constructors and destructor
0020   MPCoincidenceFilter(const edm::ParameterSet &pset);
0021   ~MPCoincidenceFilter() override = default;
0022 
0023   // Main methods
0024   void initialise(const edm::EventSetup &iEventSetup) override;
0025   void run(edm::Event &iEvent,
0026            const edm::EventSetup &iEventSetup,
0027            std::vector<cmsdt::metaPrimitive> &inMPath,
0028            std::vector<cmsdt::metaPrimitive> &outMPath) override {};
0029   void run(edm::Event &iEvent,
0030            const edm::EventSetup &iEventSetup,
0031            std::vector<cmsdt::metaPrimitive> &allMPaths,
0032            std::vector<cmsdt::metaPrimitive> &inMPaths,
0033            std::vector<cmsdt::metaPrimitive> &outMPaths) override;
0034   void run(edm::Event &iEvent,
0035            const edm::EventSetup &iEventSetup,
0036            MuonPathPtrs &inMPath,
0037            MuonPathPtrs &outMPath) override {};
0038 
0039   void finish() override;
0040 
0041   // Other public methods
0042 
0043   // Public attributes
0044 
0045   std::map<std::string, float> mphi_mean{{"wh-2ch1", 1.0},  {"wh-1ch1", 0.9}, {"wh0ch1", -0.3},  {"wh1ch1", 0.9},
0046                                          {"wh2ch1", 1.0},   {"wh-2ch2", 1.4}, {"wh-1ch2", -0.4}, {"wh0ch2", -0.3},
0047                                          {"wh1ch2", -0.4},  {"wh2ch2", 1.5},  {"wh-2ch3", -0.1}, {"wh-1ch3", -0.2},
0048                                          {"wh0ch3", -0.1},  {"wh1ch3", -0.3}, {"wh2ch3", -0.4},  {"wh-2ch4", -1.0},
0049                                          {"wh-1ch4", -1.1}, {"wh0ch4", -1.0}, {"wh1ch4", -1.1},  {"wh2ch4", -0.8}};
0050 
0051   std::map<std::string, float> mphi_width{{"wh-2ch1", 7.2}, {"wh-1ch1", 7.0}, {"wh0ch1", 11.2}, {"wh1ch1", 7.4},
0052                                           {"wh2ch1", 7.1},  {"wh-2ch2", 6.6}, {"wh-1ch2", 8.5}, {"wh0ch2", 11.1},
0053                                           {"wh1ch2", 8.5},  {"wh2ch2", 6.5},  {"wh-2ch3", 8.0}, {"wh-1ch3", 9.2},
0054                                           {"wh0ch3", 11.2}, {"wh1ch3", 9.1},  {"wh2ch3", 7.8},  {"wh-2ch4", 8.0},
0055                                           {"wh-1ch4", 9.6}, {"wh0ch4", 11.8}, {"wh1ch4", 9.3},  {"wh2ch4", 7.7}};
0056 
0057   std::map<std::string, float> mth_mean{{"wh-2ch1", -17.4}, {"wh-1ch1", -9.5},  {"wh0ch1", -0.8},   {"wh1ch1", -9.8},
0058                                         {"wh2ch1", -17.1},  {"wh-2ch2", -18.9}, {"wh-1ch2", -6.6},  {"wh0ch2", 0.5},
0059                                         {"wh1ch2", -6.8},   {"wh2ch2", -19.2},  {"wh-2ch3", -16.3}, {"wh-1ch3", -3.2},
0060                                         {"wh0ch3", 1.9},    {"wh1ch3", -3.6},   {"wh2ch3", -17.5},  {"wh-2ch4", 0.0},
0061                                         {"wh-1ch4", 0.0},   {"wh0ch4", 0.0},    {"wh1ch4", 0.0},    {"wh2ch4", 0.0}};
0062 
0063   std::map<std::string, float> mth_width{{"wh-2ch1", 33.5}, {"wh-1ch1", 12.6}, {"wh0ch1", 10.1},  {"wh1ch1", 14.4},
0064                                          {"wh2ch1", 44.8},  {"wh-2ch2", 23.0}, {"wh-1ch2", 13.2}, {"wh0ch2", 11.6},
0065                                          {"wh1ch2", 14.0},  {"wh2ch2", 25.6},  {"wh-2ch3", 22.5}, {"wh-1ch3", 13.8},
0066                                          {"wh0ch3", 13.9},  {"wh1ch3", 14.2},  {"wh2ch3", 24.2},  {"wh-2ch4", 9.4},
0067                                          {"wh-1ch4", 9.4},  {"wh0ch4", 9.4},   {"wh1ch4", 9.4},   {"wh2ch4", 9.4}};
0068 
0069 private:
0070   // Private methods
0071   std::vector<cmsdt::metaPrimitive> filter(std::vector<cmsdt::metaPrimitive> inMPs,
0072                                            std::vector<cmsdt::metaPrimitive> allMPs,
0073                                            int co_option,
0074                                            int co_quality,
0075                                            double shift_back);
0076 
0077   // Private attributes
0078   const bool debug_;
0079   int co_option_;
0080   int co_quality_;
0081   int scenario_;
0082 };
0083 
0084 #endif