CMS 3D CMS Logo

CSCGEMMatcher.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCGEMMatcher
2 #define L1Trigger_CSCTriggerPrimitives_CSCGEMMatcher
3 
17 
18 #include <string>
19 #include <vector>
20 
21 class CSCALCTDigi;
22 class CSCCLCTDigi;
23 class GEMInternalCluster;
24 
26 public:
27  typedef std::vector<GEMInternalCluster> GEMInternalClusters;
28 
30  unsigned station,
31  unsigned chamber,
33  const edm::ParameterSet& luts);
34 
37 
38  // calculate the bending angle
39  int calculateGEMCSCBending(const CSCCLCTDigi& clct, const GEMInternalCluster& cluster) const;
40 
41  // match by location
42 
43  // ALCT-GEM
44  void matchingClustersLoc(const CSCALCTDigi& alct,
47 
48  // CLCT-GEM
49  void matchingClustersLoc(const CSCCLCTDigi& clct,
52  bool ignoreALCTGEMmatch) const;
53 
54  // matching candidate distance in 1/8 strip, always the total without extrapolation correction, if ForceTotal is true
55  int matchedClusterDistES(const CSCCLCTDigi& clct,
56  const GEMInternalCluster& cluster,
57  const bool isLayer2,
58  const bool ForceTotal) const;
59 
60  // ALCT-CLCT-GEM
61  void matchingClustersLoc(const CSCALCTDigi& alct,
62  const CSCCLCTDigi& clct,
65 
66  // best matching clusters by location
67 
68  // ALCT-GEM
69  void bestClusterLoc(const CSCALCTDigi& alct, const GEMInternalClusters& clusters, GEMInternalCluster& best) const;
70 
71  // CLCT-GEM
72  void bestClusterLoc(const CSCCLCTDigi& clct, const GEMInternalClusters& clusters, GEMInternalCluster& best) const;
73 
74  // ALCT-CLCT-GEM
75  void bestClusterLoc(const CSCALCTDigi& alct,
76  const CSCCLCTDigi& clct,
78  GEMInternalCluster& best) const;
79 
80 private:
81  // access to lookup tables via eventsetup
84 
85  //mitigate slope by consistency of slope indicator, if necessary
86  uint16_t mitigatedSlopeByConsistency(const CSCCLCTDigi& clct) const;
87 
88  // calculate slope correction
89  int CSCGEMSlopeCorrector(const bool isME1a, const int cscSlope, bool isLayer2) const;
90 
91  unsigned endcap_;
92  unsigned station_;
93  unsigned ring_;
94  unsigned chamber_;
95  bool isEven_;
96 
97  // enable GEM-CSC matching in ME1a and ME1b
100 
101  // match GEM-CSC by propagating CLCT to GEM via LUT
103 
104  // Matching interval in Half Strips (less bits to deal with in FW), but then used as Eighth Strips (es=hs*4)
105  unsigned maxDeltaWG_;
106  unsigned maxDeltaHsEven_;
107  unsigned maxDeltaHsOdd_;
108 
111 };
112 
113 #endif
unsigned maxDeltaHsOdd_
bool mitigateSlopeByCosi_
unsigned station_
Definition: CSCGEMMatcher.h:92
int matchedClusterDistES(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster, const bool isLayer2, const bool ForceTotal) const
bool assign_gem_csc_bending_
unsigned maxDeltaHsEven_
void setESLookupTables(const CSCL1TPLookupTableME11ILT *conf)
CSCGEMMatcher(int endcap, unsigned station, unsigned chamber, const edm::ParameterSet &tmbParams, const edm::ParameterSet &luts)
unsigned chamber_
Definition: CSCGEMMatcher.h:94
void matchingClustersLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &output) const
bool enable_match_gem_me1b_
Definition: CSCGEMMatcher.h:99
const CSCL1TPLookupTableME11ILT * lookupTableME11ILT_
Definition: CSCGEMMatcher.h:82
bool enable_match_gem_me1a_
Definition: CSCGEMMatcher.h:98
unsigned ring_
Definition: CSCGEMMatcher.h:93
int CSCGEMSlopeCorrector(const bool isME1a, const int cscSlope, bool isLayer2) const
unsigned endcap_
Definition: CSCGEMMatcher.h:91
void bestClusterLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalCluster &best) const
std::vector< GEMInternalCluster > GEMInternalClusters
Definition: CSCGEMMatcher.h:27
const CSCL1TPLookupTableME21ILT * lookupTableME21ILT_
Definition: CSCGEMMatcher.h:83
unsigned maxDeltaWG_
bool matchCLCTpropagation_
int calculateGEMCSCBending(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
uint16_t mitigatedSlopeByConsistency(const CSCCLCTDigi &clct) const