Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:00

0001 #ifndef L1Trigger_L1TMuonEndCapPhase2_TPrimitives_h
0002 #define L1Trigger_L1TMuonEndCapPhase2_TPrimitives_h
0003 
0004 #include "L1Trigger/L1TMuonEndCapPhase2/interface/EMTFfwd.h"
0005 #include "L1Trigger/L1TMuonEndCapPhase2/interface/EMTFTypes.h"
0006 #include "L1Trigger/L1TMuonEndCapPhase2/interface/Utils/CSCUtils.h"
0007 #include "L1Trigger/L1TMuonEndCapPhase2/interface/Utils/RPCUtils.h"
0008 
0009 namespace emtf::phase2 {
0010 
0011   enum TPSelection { kNative, kNeighbor, kNone };
0012 
0013   struct TPInfo {
0014     // Id
0015     int hit_id = -1;
0016     int segment_id = -1;
0017 
0018     // Selection
0019     int bx = -999;
0020     int ilink = -1;
0021     TPSelection selection = kNone;
0022 
0023     // Flags
0024     bool flag_substitute = false;
0025 
0026     // Detector
0027     int endcap = 0;
0028     int endcap_pm = 0;
0029     int sector = 0;
0030     int subsector = 0;
0031     int station = 0;
0032     int ring = 0;
0033     int roll = 0;
0034     int layer = 0;
0035     int chamber = 0;
0036 
0037     // CSC
0038     int csc_id = -1;
0039     csc::Facing csc_facing = csc::Facing::kNone;
0040     int csc_first_wire = -1;
0041     int csc_second_wire = -1;
0042 
0043     // RPC
0044     rpc::Type rpc_type = rpc::kNone;
0045   };
0046 
0047   class TPEntry {
0048   public:
0049     TPEntry(const TPEntry&);
0050     TPEntry(const TriggerPrimitive&);
0051     TPEntry(const TriggerPrimitive&, const TPInfo&);
0052     TPEntry(const CSCDetId&, const CSCCorrelatedLCTDigi&);
0053     TPEntry(const RPCDetId&, const RPCRecHit&);
0054     TPEntry(const GEMDetId&, const GEMPadDigiCluster&);
0055     TPEntry(const ME0DetId&, const ME0TriggerDigi&);
0056     TPEntry(const GEMDetId&, const ME0TriggerDigi&);
0057 
0058     ~TPEntry();
0059 
0060     TriggerPrimitive tp_;
0061     TPInfo info_;
0062   };
0063 
0064 }  // namespace emtf::phase2
0065 
0066 #endif  // L1Trigger_L1TMuonEndCapPhase2_TPrimitives_h not defined