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
0015 int hit_id = -1;
0016 int segment_id = -1;
0017
0018
0019 int bx = -999;
0020 int ilink = -1;
0021 TPSelection selection = kNone;
0022
0023
0024 bool flag_substitute = false;
0025
0026
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
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
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 }
0065
0066 #endif