CMS 3D CMS Logo

CSCGEMMatcher.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCGEMMatcher
2 #define L1Trigger_CSCTriggerPrimitives_CSCGEMMatcher
3 
16 
17 #include <string>
18 #include <vector>
19 
20 class CSCALCTDigi;
21 class CSCCLCTDigi;
22 class GEMInternalCluster;
23 
25 public:
26  typedef std::vector<GEMInternalCluster> GEMInternalClusters;
27 
29  unsigned station,
30  unsigned chamber,
32  const edm::ParameterSet& luts);
33 
36 
37  // calculate the bending angle
38  unsigned calculateGEMCSCBending(const CSCCLCTDigi& clct, const GEMInternalCluster& cluster) const;
39 
40  // match by BX
41 
42  // coincidences
43  void matchingClustersBX(const CSCALCTDigi& alct,
45  GEMInternalClusters& selected) const;
46 
47  // coincidences
48  void matchingClustersBX(const CSCCLCTDigi& clct,
50  GEMInternalClusters& selected) const;
51 
52  // coincidences or single clusters
53  void matchingClustersBX(const CSCALCTDigi& alct,
54  const CSCCLCTDigi& clct,
56  GEMInternalClusters& selected) const;
57 
58  // match by location
59 
60  // coincidences
61  void matchingClustersLoc(const CSCALCTDigi& alct,
63  GEMInternalClusters& selected) const;
64 
65  // coincidences
66  void matchingClustersLoc(const CSCCLCTDigi& clct,
68  GEMInternalClusters& selected) const;
69 
70  // match by 1/2-strip
71  bool matchedClusterLocHS(const CSCCLCTDigi& clct, const GEMInternalCluster& cluster) const;
72 
73  // match by 1/8-strip
74  bool matchedClusterLocES(const CSCCLCTDigi& clct, const GEMInternalCluster& cluster) const;
75 
76  // coincidences or single clusters
77  void matchingClustersLoc(const CSCALCTDigi& alct,
78  const CSCCLCTDigi& clct,
80  GEMInternalClusters& selected) const;
81 
82  // match by BX and location
83 
84  // coincidences
85  void matchingClustersBXLoc(const CSCALCTDigi& alct,
87  GEMInternalClusters& selected) const;
88 
89  // coincidences
90  void matchingClustersBXLoc(const CSCCLCTDigi& clct,
92  GEMInternalClusters& selected) const;
93 
94  // coincidences or single clusters
95  void matchingClustersBXLoc(const CSCALCTDigi& alct,
96  const CSCCLCTDigi& clct,
98  GEMInternalClusters& selected) const;
99 
100  // best matching clusters
101  void bestClusterBXLoc(const CSCALCTDigi& alct, const GEMInternalClusters& clusters, GEMInternalCluster& best) const;
102 
103  // coincidences
104  void bestClusterBXLoc(const CSCCLCTDigi& clct, const GEMInternalClusters& clusters, GEMInternalCluster& best) const;
105 
106  // coincidences or single clusters
107  void bestClusterBXLoc(const CSCALCTDigi& alct,
108  const CSCCLCTDigi& clct,
110  GEMInternalCluster& best) const;
111 
112 private:
113  // access to lookup tables via eventsetup
116 
117  //mitigate slope by consistency of slope indicator, if necessary
118  uint16_t mitigatedSlopeByConsistency(const CSCCLCTDigi& clct) const;
119 
120  // calculate slope correction
121  int CSCGEMSlopeCorrector(const bool isL1orCopad, const int cscSlope) const;
122 
123  unsigned endcap_;
124  unsigned station_;
125  unsigned ring_;
126  unsigned chamber_;
127  bool isEven_;
128 
131 
133 
134  unsigned maxDeltaHsEven_;
135  unsigned maxDeltaHsOdd_;
138 
141 };
142 
143 #endif
unsigned maxDeltaHsOdd_
unsigned maxDeltaBXALCTGEM_
bool mitigateSlopeByCosi_
unsigned station_
bool matchedClusterLocHS(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
unsigned maxDeltaHsEvenME1a_
bool assign_gem_csc_bending_
unsigned maxDeltaHsEven_
void setESLookupTables(const CSCL1TPLookupTableME11ILT *conf)
void matchingClustersLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
CSCGEMMatcher(int endcap, unsigned station, unsigned chamber, const edm::ParameterSet &tmbParams, const edm::ParameterSet &luts)
unsigned calculateGEMCSCBending(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
unsigned maxDeltaBXCLCTGEM_
unsigned chamber_
const CSCL1TPLookupTableME11ILT * lookupTableME11ILT_
void matchingClustersBXLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
bool matchedClusterLocES(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
unsigned ring_
unsigned endcap_
void matchingClustersBX(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
std::vector< GEMInternalCluster > GEMInternalClusters
Definition: CSCGEMMatcher.h:26
const CSCL1TPLookupTableME21ILT * lookupTableME21ILT_
void bestClusterBXLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalCluster &best) const
unsigned maxDeltaHsOddME1a_
uint16_t mitigatedSlopeByConsistency(const CSCCLCTDigi &clct) const
int CSCGEMSlopeCorrector(const bool isL1orCopad, const int cscSlope) const