Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:55

0001 #ifndef L1Trigger_L1TMuonEndCap_SectorProcessorShower_h
0002 #define L1Trigger_L1TMuonEndCap_SectorProcessorShower_h
0003 
0004 /*
0005   This class executes the trigger logic for the EMTF shower trigger.
0006   In the basic mode, the EMTF shower sector processor will find any valid
0007   CSC shower and send a trigger to the uGMT. In a possible extension, the
0008   EMTF shower sector processor can also trigger on two loose showers - to
0009   enhance the sensitivity to long-lived particles that produce multiple
0010   showers, instead of a single shower.
0011  */
0012 
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "DataFormats/L1TMuon/interface/RegionalMuonShower.h"
0015 #include "DataFormats/CSCDigi/interface/CSCShowerDigiCollection.h"
0016 #include "L1Trigger/L1TMuonEndCap/interface/Common.h"
0017 
0018 #include "DataFormats/L1TMuon/interface/RegionalMuonCandFwd.h"
0019 
0020 #include <vector>
0021 
0022 class SectorProcessorShower {
0023 public:
0024   explicit SectorProcessorShower() {}
0025   ~SectorProcessorShower() {}
0026 
0027   void configure(const edm::ParameterSet&, int endcap, int sector);
0028 
0029   void process(const CSCShowerDigiCollection& showers, l1t::RegionalMuonShowerBxCollection& out_showers) const;
0030 
0031 private:
0032   int select_shower(const CSCDetId&, const CSCShowerDigi&) const;
0033   int get_index_shower(int tp_endcap, int tp_sector, int tp_subsector, int tp_station, int tp_csc_ID) const;
0034   bool is_in_sector_csc(int tp_endcap, int tp_sector) const;
0035 
0036   int verbose_, endcap_, sector_;
0037   // loose shower trigger for physics
0038   bool enableOneLooseShower_;
0039   // nominal trigger for physics
0040   bool enableOneNominalShower_;
0041   // backup trigger
0042   bool enableOneTightShower_;
0043   // trigger to extend the physics reach
0044   bool enableTwoLooseShowers_;
0045 };
0046 
0047 #endif