CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CSCGEMMatcher.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCGEMMatcher
2 #define L1Trigger_CSCTriggerPrimitives_CSCGEMMatcher
3 
14 
15 #include <string>
16 #include <vector>
17 
18 class CSCLUTReader;
19 class CSCALCTDigi;
20 class CSCCLCTDigi;
21 class GEMInternalCluster;
22 
24 public:
25  typedef std::vector<GEMInternalCluster> GEMInternalClusters;
26 
28  unsigned station,
29  unsigned chamber,
31  const edm::ParameterSet& luts);
32 
33  // calculate the bending angle
34  unsigned calculateGEMCSCBending(const CSCCLCTDigi& clct, const GEMInternalCluster& cluster) const;
35 
36  // match by BX
37 
38  // coincidences
39  void matchingClustersBX(const CSCALCTDigi& alct,
41  GEMInternalClusters& selected) const;
42 
43  // coincidences
44  void matchingClustersBX(const CSCCLCTDigi& clct,
46  GEMInternalClusters& selected) const;
47 
48  // coincidences or single clusters
49  void matchingClustersBX(const CSCALCTDigi& alct,
50  const CSCCLCTDigi& clct,
52  GEMInternalClusters& selected) const;
53 
54  // match by location
55 
56  // coincidences
57  void matchingClustersLoc(const CSCALCTDigi& alct,
59  GEMInternalClusters& selected) const;
60 
61  // coincidences
62  void matchingClustersLoc(const CSCCLCTDigi& clct,
64  GEMInternalClusters& selected) const;
65 
66  // match by 1/2-strip
67  bool matchedClusterLocHS(const CSCCLCTDigi& clct, const GEMInternalCluster& cluster) const;
68 
69  // match by 1/8-strip
70  bool matchedClusterLocES(const CSCCLCTDigi& clct, const GEMInternalCluster& cluster) const;
71 
72  // coincidences or single clusters
73  void matchingClustersLoc(const CSCALCTDigi& alct,
74  const CSCCLCTDigi& clct,
76  GEMInternalClusters& selected) const;
77 
78  // match by BX and location
79 
80  // coincidences
81  void matchingClustersBXLoc(const CSCALCTDigi& alct,
83  GEMInternalClusters& selected) const;
84 
85  // coincidences
86  void matchingClustersBXLoc(const CSCCLCTDigi& clct,
88  GEMInternalClusters& selected) const;
89 
90  // coincidences or single clusters
91  void matchingClustersBXLoc(const CSCALCTDigi& alct,
92  const CSCCLCTDigi& clct,
94  GEMInternalClusters& selected) const;
95 
96  // best matching clusters
97  void bestClusterBXLoc(const CSCALCTDigi& alct, const GEMInternalClusters& clusters, GEMInternalCluster& best) const;
98 
99  // coincidences
100  void bestClusterBXLoc(const CSCCLCTDigi& clct, const GEMInternalClusters& clusters, GEMInternalCluster& best) const;
101 
102  // coincidences or single clusters
103  void bestClusterBXLoc(const CSCALCTDigi& alct,
104  const CSCCLCTDigi& clct,
106  GEMInternalCluster& best) const;
107 
108 private:
109  //mitigate slope by consistency of slope indicator, if necessary
110  uint16_t mitigatedSlopeByConsistency(const CSCCLCTDigi& clct) const;
111 
112  // calculate slope correction
113  int CSCGEMSlopeCorrector(const bool isL1orCopad, const int cscSlope) const;
114 
115  unsigned endcap_;
116  unsigned station_;
117  unsigned ring_;
118  unsigned chamber_;
119  bool isEven_;
120 
123 
125 
126  unsigned maxDeltaHsEven_;
127  unsigned maxDeltaHsOdd_;
130 
133 
134  // strings to paths of LUTs
135  std::vector<std::string> gemCscSlopeCorrectionFiles_;
136  std::vector<std::string> gemCscSlopeCosiFiles_;
137  std::vector<std::string> gemCscSlopeCosiCorrectionFiles_;
138  std::vector<std::string> esDiffToSlopeME1aFiles_;
139  std::vector<std::string> esDiffToSlopeME1bFiles_;
140  std::vector<std::string> esDiffToSlopeME21Files_;
141 
142  // unique pointers to the luts
143  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_2to1_L1_ME11_even_;
144  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_3to1_L1_ME11_even_;
145  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_2to1_L1_ME11_odd_;
146  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_3to1_L1_ME11_odd_;
147 
148  std::unique_ptr<CSCLUTReader> gem_csc_slope_corr_L1_ME11_even_;
149  std::unique_ptr<CSCLUTReader> gem_csc_slope_corr_L2_ME11_even_;
150  std::unique_ptr<CSCLUTReader> gem_csc_slope_corr_L1_ME11_odd_;
151  std::unique_ptr<CSCLUTReader> gem_csc_slope_corr_L2_ME11_odd_;
152 
153  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_corr_L1_ME11_even_;
154  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_corr_L2_ME11_even_;
155  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_corr_L1_ME11_odd_;
156  std::unique_ptr<CSCLUTReader> gem_csc_slope_cosi_corr_L2_ME11_odd_;
157 
158  std::unique_ptr<CSCLUTReader> es_diff_slope_L1_ME1b_even_;
159  std::unique_ptr<CSCLUTReader> es_diff_slope_L2_ME1b_even_;
160 
161  std::unique_ptr<CSCLUTReader> es_diff_slope_L1_ME1b_odd_;
162  std::unique_ptr<CSCLUTReader> es_diff_slope_L2_ME1b_odd_;
163 
164  std::unique_ptr<CSCLUTReader> es_diff_slope_L1_ME1a_even_;
165  std::unique_ptr<CSCLUTReader> es_diff_slope_L2_ME1a_even_;
166 
167  std::unique_ptr<CSCLUTReader> es_diff_slope_L1_ME1a_odd_;
168  std::unique_ptr<CSCLUTReader> es_diff_slope_L2_ME1a_odd_;
169 
170  std::unique_ptr<CSCLUTReader> es_diff_slope_L1_ME21_even_;
171  std::unique_ptr<CSCLUTReader> es_diff_slope_L2_ME21_even_;
172 
173  std::unique_ptr<CSCLUTReader> es_diff_slope_L1_ME21_odd_;
174  std::unique_ptr<CSCLUTReader> es_diff_slope_L2_ME21_odd_;
175 };
176 
177 #endif
CSCGEMMatcher::bestClusterBXLoc
void bestClusterBXLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalCluster &best) const
Definition: CSCGEMMatcher.cc:372
CSCGEMMatcher::gem_csc_slope_cosi_2to1_L1_ME11_even_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_2to1_L1_ME11_even_
Definition: CSCGEMMatcher.h:143
CSCGEMMatcher::CSCGEMSlopeCorrector
int CSCGEMSlopeCorrector(const bool isL1orCopad, const int cscSlope) const
Definition: CSCGEMMatcher.cc:478
CSCGEMMatcher::maxDeltaHsEven_
unsigned maxDeltaHsEven_
Definition: CSCGEMMatcher.h:126
CSCGEMMatcher::maxDeltaBXCLCTGEM_
unsigned maxDeltaBXCLCTGEM_
Definition: CSCGEMMatcher.h:122
CSCGEMMatcher::mitigatedSlopeByConsistency
uint16_t mitigatedSlopeByConsistency(const CSCCLCTDigi &clct) const
Definition: CSCGEMMatcher.cc:414
relativeConstraints.station
station
Definition: relativeConstraints.py:67
CSCGEMMatcher::gem_csc_slope_corr_L1_ME11_even_
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L1_ME11_even_
Definition: CSCGEMMatcher.h:148
CSCGEMMatcher::es_diff_slope_L1_ME21_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME21_odd_
Definition: CSCGEMMatcher.h:173
CSCGEMMatcher::maxDeltaBXALCTGEM_
unsigned maxDeltaBXALCTGEM_
Definition: CSCGEMMatcher.h:121
CSCLUTReader
Definition: CSCLUTReader.h:14
CSCGEMMatcher::matchingClustersBXLoc
void matchingClustersBXLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
Definition: CSCGEMMatcher.cc:328
CSCGEMMatcher::chamber_
unsigned chamber_
Definition: CSCGEMMatcher.h:118
CSCGEMMatcher::gem_csc_slope_corr_L2_ME11_even_
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L2_ME11_even_
Definition: CSCGEMMatcher.h:149
CSCGEMMatcher::es_diff_slope_L1_ME21_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME21_even_
Definition: CSCGEMMatcher.h:170
CSCGEMMatcher::gemCscSlopeCorrectionFiles_
std::vector< std::string > gemCscSlopeCorrectionFiles_
Definition: CSCGEMMatcher.h:135
CSCGEMMatcher::es_diff_slope_L2_ME1b_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1b_even_
Definition: CSCGEMMatcher.h:159
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCGEMMatcher::gemCscSlopeCosiCorrectionFiles_
std::vector< std::string > gemCscSlopeCosiCorrectionFiles_
Definition: CSCGEMMatcher.h:137
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCGEMMatcher::maxDeltaHsEvenME1a_
unsigned maxDeltaHsEvenME1a_
Definition: CSCGEMMatcher.h:128
CSCGEMMatcher::endcap_
unsigned endcap_
Definition: CSCGEMMatcher.h:115
CSCGEMMatcher::isEven_
bool isEven_
Definition: CSCGEMMatcher.h:119
CSCGEMMatcher::CSCGEMMatcher
CSCGEMMatcher(int endcap, unsigned station, unsigned chamber, const edm::ParameterSet &tmbParams, const edm::ParameterSet &luts)
Definition: CSCGEMMatcher.cc:12
CSCGEMMatcher::es_diff_slope_L2_ME21_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME21_even_
Definition: CSCGEMMatcher.h:171
CSCGEMMatcher::es_diff_slope_L2_ME1a_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1a_even_
Definition: CSCGEMMatcher.h:165
CSCGEMMatcher::gemCscSlopeCosiFiles_
std::vector< std::string > gemCscSlopeCosiFiles_
Definition: CSCGEMMatcher.h:136
CSCGEMMatcher::gem_csc_slope_cosi_corr_L1_ME11_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L1_ME11_odd_
Definition: CSCGEMMatcher.h:155
tmbParams
Definition: tmbParams.py:1
CSCGEMMatcher::matchedClusterLocHS
bool matchedClusterLocHS(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
Definition: CSCGEMMatcher.cc:222
CSCGEMMatcher::gem_csc_slope_cosi_corr_L1_ME11_even_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L1_ME11_even_
Definition: CSCGEMMatcher.h:153
CSCGEMMatcher::gem_csc_slope_cosi_corr_L2_ME11_even_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L2_ME11_even_
Definition: CSCGEMMatcher.h:154
CSCGEMMatcher::es_diff_slope_L1_ME1b_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1b_odd_
Definition: CSCGEMMatcher.h:161
CSCGEMMatcher::gem_csc_slope_cosi_corr_L2_ME11_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L2_ME11_odd_
Definition: CSCGEMMatcher.h:156
CSCGEMMatcher::es_diff_slope_L2_ME21_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME21_odd_
Definition: CSCGEMMatcher.h:174
CSCGEMMatcher::maxDeltaHsOdd_
unsigned maxDeltaHsOdd_
Definition: CSCGEMMatcher.h:127
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
CSCGEMMatcher::calculateGEMCSCBending
unsigned calculateGEMCSCBending(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
Definition: CSCGEMMatcher.cc:83
edm::ParameterSet
Definition: ParameterSet.h:47
CSCGEMMatcher::ring_
unsigned ring_
Definition: CSCGEMMatcher.h:117
CSCGEMMatcher
Definition: CSCGEMMatcher.h:23
CSCGEMMatcher::station_
unsigned station_
Definition: CSCGEMMatcher.h:116
CSCGEMMatcher::matchWithHS_
bool matchWithHS_
Definition: CSCGEMMatcher.h:124
CSCGEMMatcher::gem_csc_slope_cosi_3to1_L1_ME11_even_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_3to1_L1_ME11_even_
Definition: CSCGEMMatcher.h:144
CSCGEMMatcher::mitigateSlopeByCosi_
bool mitigateSlopeByCosi_
Definition: CSCGEMMatcher.h:132
CSCGEMMatcher::esDiffToSlopeME1aFiles_
std::vector< std::string > esDiffToSlopeME1aFiles_
Definition: CSCGEMMatcher.h:138
CSCGEMMatcher::es_diff_slope_L2_ME1b_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1b_odd_
Definition: CSCGEMMatcher.h:162
CSCGEMMatcher::matchedClusterLocES
bool matchedClusterLocES(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
Definition: CSCGEMMatcher.cc:259
CSCGEMMatcher::gem_csc_slope_corr_L2_ME11_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L2_ME11_odd_
Definition: CSCGEMMatcher.h:151
CSCGEMMatcher::assign_gem_csc_bending_
bool assign_gem_csc_bending_
Definition: CSCGEMMatcher.h:131
Frameworkfwd.h
CSCGEMMatcher::gem_csc_slope_cosi_2to1_L1_ME11_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_2to1_L1_ME11_odd_
Definition: CSCGEMMatcher.h:145
CSCGEMMatcher::matchingClustersLoc
void matchingClustersLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
Definition: CSCGEMMatcher.cc:189
CSCGEMMatcher::es_diff_slope_L1_ME1a_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1a_even_
Definition: CSCGEMMatcher.h:164
CSCALCTDigi
Definition: CSCALCTDigi.h:17
CSCGEMMatcher::maxDeltaHsOddME1a_
unsigned maxDeltaHsOddME1a_
Definition: CSCGEMMatcher.h:129
CSCGEMMatcher::matchingClustersBX
void matchingClustersBX(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
Definition: CSCGEMMatcher.cc:136
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
GEMInternalCluster
Definition: GEMInternalCluster.h:18
CSCGEMMatcher::esDiffToSlopeME21Files_
std::vector< std::string > esDiffToSlopeME21Files_
Definition: CSCGEMMatcher.h:140
ParameterSet.h
CSCGEMMatcher::es_diff_slope_L2_ME1a_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1a_odd_
Definition: CSCGEMMatcher.h:168
CSCGEMMatcher::es_diff_slope_L1_ME1b_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1b_even_
Definition: CSCGEMMatcher.h:158
CSCGEMMatcher::gem_csc_slope_cosi_3to1_L1_ME11_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_3to1_L1_ME11_odd_
Definition: CSCGEMMatcher.h:146
CSCGEMMatcher::GEMInternalClusters
std::vector< GEMInternalCluster > GEMInternalClusters
Definition: CSCGEMMatcher.h:25
CSCGEMMatcher::esDiffToSlopeME1bFiles_
std::vector< std::string > esDiffToSlopeME1bFiles_
Definition: CSCGEMMatcher.h:139
CSCGEMMatcher::es_diff_slope_L1_ME1a_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1a_odd_
Definition: CSCGEMMatcher.h:167
CSCGEMMatcher::gem_csc_slope_corr_L1_ME11_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L1_ME11_odd_
Definition: CSCGEMMatcher.h:150