CMS 3D CMS Logo

CSCUpgradeCathodeLCTProcessor.cc
Go to the documentation of this file.
2 
3 #include <iomanip>
4 #include <iostream>
5 
7  unsigned station,
8  unsigned sector,
9  unsigned subsector,
10  unsigned chamber,
11  const edm::ParameterSet& conf)
12  : CSCCathodeLCTProcessor(endcap, station, sector, subsector, chamber, conf) {
13  if (!runPhase2_)
14  edm::LogError("CSCUpgradeCathodeLCTProcessor|ConfigError")
15  << "+++ Upgrade CSCUpgradeCathodeLCTProcessor constructed while runPhase2_ is not set! +++\n";
16 
17  // use of localized dead-time zones
18  use_dead_time_zoning = clctParams_.getParameter<bool>("useDeadTimeZoning");
19  clct_state_machine_zone = clctParams_.getParameter<unsigned int>("clctStateMachineZone");
20 
21  // how far away may trigger happen from pretrigger
22  pretrig_trig_zone = clctParams_.getParameter<unsigned int>("clctPretriggerTriggerZone");
23 
24  // whether to calculate bx as corrected_bx instead of pretrigger one
25  use_corrected_bx = clctParams_.getParameter<bool>("clctUseCorrectedBx");
26 }
27 
29  if (!runPhase2_)
30  edm::LogError("CSCUpgradeCathodeLCTProcessor|ConfigError")
31  << "+++ Upgrade CSCUpgradeCathodeLCTProcessor constructed while runPhase2_ is not set! +++\n";
32 }
33 
34 // --------------------------------------------------------------------------
35 // The code below is for Phase2 studies of the CLCT algorithm (half-strips only).
36 // --------------------------------------------------------------------------
37 
38 // Phase2 version, add the feature of localized dead time zone for pretrigger
39 bool CSCUpgradeCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int start_bx, int& first_bx) {
41  return CSCCathodeLCTProcessor::preTrigger(pulse, start_bx, first_bx);
42  }
43 
44  if (infoV > 1)
45  LogTrace("CSCUpgradeCathodeLCTProcessor")
46  << "....................PreTrigger, Phase2 version with localized dead time zone...........................";
47 
48  int nPreTriggers = 0;
49 
50  bool pre_trig = false;
51  int delta_hs = clct_state_machine_zone; //dead time zone
52 
53  // Now do a loop over bx times to see (if/when) track goes over threshold
54  for (unsigned int bx_time = start_bx; bx_time < fifo_tbins; bx_time++) {
55  // For any given bunch-crossing, start at the lowest keystrip and look for
56  // the number of separate layers in the pattern for that keystrip that have
57  // pulses at that bunch-crossing time. Do the same for the next keystrip,
58  // etc. Then do the entire process again for the next bunch-crossing, etc
59  // until you find a pre-trigger.
60  std::map<int, std::map<int, CSCCLCTDigi::ComparatorContainer> > hits_in_patterns;
61  hits_in_patterns.clear();
62 
63  bool hits_in_time = patternFinding(pulse, bx_time, hits_in_patterns);
64  if (hits_in_time) {
65  for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) {
66  if (infoV > 1) {
67  if (nhits[hstrip] > 0) {
68  LogTrace("CSCUpgradeCathodeLCTProcessor")
69  << " bx = " << std::setw(2) << bx_time << " --->"
70  << " halfstrip = " << std::setw(3) << hstrip << " best pid = " << std::setw(2) << best_pid[hstrip]
71  << " nhits = " << nhits[hstrip];
72  }
73  }
74  //ispretrig[hstrip] = false; it is initialzed in findLCT
75  if (nhits[hstrip] >= nplanes_hit_pretrig && best_pid[hstrip] >= pid_thresh_pretrig &&
76  !busyMap[hstrip][bx_time]) {
77  pre_trig = true;
78  ispretrig[hstrip] = true;
79 
80  // write each pre-trigger to output
81  nPreTriggers++;
82  const int bend =
84  const int halfstrip = hstrip % CSCConstants::NUM_HALF_STRIPS_PER_CFEB;
85  const int cfeb = hstrip / CSCConstants::NUM_HALF_STRIPS_PER_CFEB;
87  1, nhits[hstrip], best_pid[hstrip], 1, bend, halfstrip, cfeb, bx_time, nPreTriggers, 0));
88 
89  } else if (nhits[hstrip] >= nplanes_hit_pretrig &&
90  best_pid[hstrip] >= pid_thresh_pretrig) { //busy zone, keep pretriggering,ignore this
91  ispretrig[hstrip] = true;
92  if (infoV > 1)
93  LogTrace("CSCUpgradeCathodeLCTProcessor")
94  << " halfstrip " << std::setw(3) << hstrip << " in dead zone and is pretriggerred";
95  } else if (nhits[hstrip] < nplanes_hit_pretrig || best_pid[hstrip] < pid_thresh_pretrig) {
96  // not pretriggered anyone, release dead zone
97  ispretrig[hstrip] = false;
98  }
99  } // find all pretriggers
100 
101  //update dead zone
102  for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) {
103  if (ispretrig[hstrip]) {
104  int min_hstrip = hstrip - delta_hs; //only fixed localized dead time zone is implemented
105  int max_hstrip = hstrip + delta_hs;
106  if (min_hstrip < stagger[CSCConstants::KEY_CLCT_LAYER - 1])
107  min_hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1];
108  if (max_hstrip >= numHalfStrips_)
109  max_hstrip = numHalfStrips_ - 1;
110  for (int hs = min_hstrip; hs <= max_hstrip; hs++)
111  busyMap[hs][bx_time + 1] = true;
112  if (infoV > 1)
113  LogTrace("CSCUpgradeCathodeLCTProcessor")
114  << " marked zone around pretriggerred halfstrip " << hstrip << " as dead zone for pretriggering at bx"
115  << bx_time + 1 << " halfstrip: [" << min_hstrip << "," << max_hstrip << "]";
116  }
117  }
118  if (pre_trig) {
119  first_bx = bx_time; // bx at time of pretrigger
120  return true;
121  }
122  } else //no pattern found, remove all dead time zone
123  for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) {
124  if (ispretrig[hstrip])
125  ispretrig[hstrip] = false; //dead zone is gone by default
126  }
127 
128  } // end loop over bx times
129 
130  if (infoV > 1)
131  LogTrace("CSCUpgradeCathodeLCTProcessor") << "no pretrigger, returning \n";
132  first_bx = fifo_tbins;
133  return false;
134 } // preTrigger -- Phase2 version.
135 
136 // Phase2 version.
138  const std::vector<int> halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) {
139  // run the original algorithm in case we do not use dead time zoning
140  if (runPhase2_ and !use_dead_time_zoning) {
141  return CSCCathodeLCTProcessor::findLCTs(halfstrip);
142  }
143 
144  std::vector<CSCCLCTDigi> lctList;
145 
146  // initialize the ispretrig before doing pretriggering
147  for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) {
148  ispretrig[hstrip] = false;
149  }
150 
151  if (infoV > 1)
152  dumpDigis(halfstrip);
153 
154  // keeps dead-time zones around key halfstrips of triggered CLCTs
155  for (int i = 0; i < CSCConstants::NUM_HALF_STRIPS_7CFEBS; i++) {
156  for (int j = 0; j < CSCConstants::MAX_CLCT_TBINS; j++) {
157  busyMap[i][j] = false;
158  }
159  }
160 
161  std::vector<CSCCLCTDigi> lctListBX;
162 
164 
165  // Fire half-strip one-shots for hit_persist bx's (4 bx's by default).
166  pulseExtension(halfstrip, pulse);
167 
168  unsigned int start_bx = start_bx_shift;
169  // Stop drift_delay bx's short of fifo_tbins since at later bx's we will
170  // not have a full set of hits to start pattern search anyway.
171  unsigned int stop_bx = fifo_tbins - drift_delay;
172 
173  // Allow for more than one pass over the hits in the time window.
174  // Do search in every BX
175  while (start_bx < stop_bx) {
176  lctListBX.clear();
177 
178  // All half-strip pattern envelopes are evaluated simultaneously, on every clock cycle.
179  int first_bx = 999;
180  bool pre_trig = CSCUpgradeCathodeLCTProcessor::preTrigger(pulse, start_bx, first_bx);
181 
182  // If any of half-strip envelopes has enough layers hit in it, TMB
183  // will pre-trigger.
184  if (pre_trig) {
185  if (infoV > 1)
186  LogTrace("CSCUpgradeCathodeLCTProcessor")
187  << "..... pretrigger at bx = " << first_bx << "; waiting drift delay .....";
188 
189  // TMB latches LCTs drift_delay clocks after pretrigger.
190  int latch_bx = first_bx + drift_delay;
191 
192  std::map<int, std::map<int, CSCCLCTDigi::ComparatorContainer> > hits_in_patterns;
193  hits_in_patterns.clear();
194 
195  bool hits_in_time = patternFinding(pulse, latch_bx, hits_in_patterns);
196  if (infoV > 1) {
197  if (hits_in_time) {
198  for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) {
199  if (nhits[hstrip] > 0) {
200  LogTrace("CSCUpgradeCathodeLCTProcessor")
201  << " bx = " << std::setw(2) << latch_bx << " --->"
202  << " halfstrip = " << std::setw(3) << hstrip << " best pid = " << std::setw(2) << best_pid[hstrip]
203  << " nhits = " << nhits[hstrip];
204  }
205  }
206  }
207  }
208 
209  // 2 possible LCTs per CSC x 7 LCT quantities per BX
211 
212  // Quality for sorting.
215  for (int ilct = 0; ilct < CSCConstants::MAX_CLCTS_PER_PROCESSOR; ilct++) {
216  best_halfstrip[ilct] = -1;
217  best_quality[ilct] = 0;
218  }
219 
220  bool pretrig_zone[CSCConstants::NUM_HALF_STRIPS_7CFEBS];
221 
222  // Calculate quality from pattern id and number of hits, and
223  // simultaneously select best-quality LCT.
224  if (hits_in_time) {
225  // first, mark half-strip zones around pretriggers
226  // that happened at the current first_bx
227  for (int hstrip = 0; hstrip < CSCConstants::NUM_HALF_STRIPS_7CFEBS; hstrip++)
228  pretrig_zone[hstrip] = false;
229  for (int hstrip = 0; hstrip < CSCConstants::NUM_HALF_STRIPS_7CFEBS; hstrip++) {
230  if (ispretrig[hstrip]) {
231  int min_hs = hstrip - pretrig_trig_zone;
232  int max_hs = hstrip + pretrig_trig_zone;
233  if (min_hs < 0)
234  min_hs = 0;
235  if (max_hs > CSCConstants::NUM_HALF_STRIPS_7CFEBS - 1)
237  for (int hs = min_hs; hs <= max_hs; hs++)
238  pretrig_zone[hs] = true;
239  if (infoV > 1)
240  LogTrace("CSCUpgradeCathodeLCTProcessor")
241  << " marked pretrigger halfstrip zone [" << min_hs << "," << max_hs << "]";
242  }
243  }
244 
245  for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) {
246  // The bend-direction bit pid[0] is ignored (left and right bends have equal quality).
247  quality[hstrip] = (best_pid[hstrip] & 14) | (nhits[hstrip] << 5);
248  // do not consider halfstrips:
249  // - out of pretrigger-trigger zones
250  // - in busy zones from previous trigger
251  if (quality[hstrip] > best_quality[0] && pretrig_zone[hstrip] && !busyMap[hstrip][first_bx])
253  {
254  best_halfstrip[0] = hstrip;
255  best_quality[0] = quality[hstrip];
256  if (infoV > 1) {
257  LogTrace("CSCUpgradeCathodeLCTProcessor")
258  << " 1st CLCT: halfstrip = " << std::setw(3) << hstrip << " quality = " << std::setw(3)
259  << quality[hstrip] << " best halfstrip = " << std::setw(3) << best_halfstrip[0]
260  << " best quality = " << std::setw(3) << best_quality[0];
261  }
262  }
263  }
264  }
265 
266  // If 1st best CLCT is found, look for the 2nd best.
267  if (best_halfstrip[0] >= 0) {
268  // Mark keys near best CLCT as busy by setting their quality to zero, and repeat the search.
269  markBusyKeys(best_halfstrip[0], best_pid[best_halfstrip[0]], quality);
270 
271  for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) {
272  if (quality[hstrip] > best_quality[1] && pretrig_zone[hstrip] && !busyMap[hstrip][first_bx])
274  {
275  best_halfstrip[1] = hstrip;
276  best_quality[1] = quality[hstrip];
277  if (infoV > 1) {
278  LogTrace("CSCUpgradeCathodeLCTProcessor")
279  << " 2nd CLCT: halfstrip = " << std::setw(3) << hstrip << " quality = " << std::setw(3)
280  << quality[hstrip] << " best halfstrip = " << std::setw(3) << best_halfstrip[1]
281  << " best quality = " << std::setw(3) << best_quality[1];
282  }
283  }
284  }
285 
286  // Pattern finder.
287  //bool ptn_trig = false;
288  for (int ilct = 0; ilct < CSCConstants::MAX_CLCTS_PER_PROCESSOR; ilct++) {
289  int best_hs = best_halfstrip[ilct];
290  if (best_hs >= 0 && nhits[best_hs] >= nplanes_hit_pattern) {
291  int bx = first_bx;
292  int fbx = first_bx_corrected[best_hs];
293  if (use_corrected_bx) {
294  bx = fbx;
295  fbx = first_bx;
296  }
297  //ptn_trig = true;
298  keystrip_data[ilct][CLCT_PATTERN] = best_pid[best_hs];
299  keystrip_data[ilct][CLCT_BEND] =
301  // Remove stagger if any.
302  keystrip_data[ilct][CLCT_STRIP] = best_hs - stagger[CSCConstants::KEY_CLCT_LAYER - 1];
303  keystrip_data[ilct][CLCT_BX] = bx;
304  keystrip_data[ilct][CLCT_STRIP_TYPE] = 1; // obsolete
305  keystrip_data[ilct][CLCT_QUALITY] = nhits[best_hs];
306  keystrip_data[ilct][CLCT_CFEB] = keystrip_data[ilct][CLCT_STRIP] / CSCConstants::NUM_HALF_STRIPS_PER_CFEB;
307  int halfstrip_in_cfeb = keystrip_data[ilct][CLCT_STRIP] -
308  CSCConstants::NUM_HALF_STRIPS_PER_CFEB * keystrip_data[ilct][CLCT_CFEB];
309 
310  CSCCLCTDigi thisLCT(1,
311  keystrip_data[ilct][CLCT_QUALITY],
312  keystrip_data[ilct][CLCT_PATTERN],
313  keystrip_data[ilct][CLCT_STRIP_TYPE],
314  keystrip_data[ilct][CLCT_BEND],
315  halfstrip_in_cfeb,
316  keystrip_data[ilct][CLCT_CFEB],
317  keystrip_data[ilct][CLCT_BX]);
318  if (infoV > 1) {
319  LogTrace("CSCCathodeLCTProcessor") << " Final selection: ilct " << ilct << " " << thisLCT << std::endl;
320  }
321  thisLCT.setFullBX(fbx);
322 
323  // get the comparator hits for this pattern
324  const auto& compHits = hits_in_patterns[best_hs][keystrip_data[ilct][CLCT_PATTERN]];
325 
326  // set the hit collection
327  thisLCT.setHits(compHits);
328 
329  // do the CCLUT procedures
330  if (runCCLUT_) {
331  runCCLUT(thisLCT);
332  }
333 
334  // purge the comparator digi collection from the obsolete "65535" entries...
335  cleanComparatorContainer(thisLCT);
336 
337  // put the CLCT into the collection
338  lctList.push_back(thisLCT);
339  lctListBX.push_back(thisLCT);
340  }
341  }
342 
343  } //find CLCT, end of best_halfstrip[0] >= 0
344  } //pre_trig
345  // The pattern finder runs continuously, so another pre-trigger
346  // could occur already at the next bx.
347  start_bx = first_bx + 1;
348  }
349 
350  return lctList;
351 } // findLCTs -- Phase2 version.
CSCCathodeLCTProcessor::markBusyKeys
void markBusyKeys(const int best_hstrip, const int best_patid, int quality[CSCConstants::NUM_HALF_STRIPS_7CFEBS])
Definition: CSCCathodeLCTProcessor.cc:1016
mps_fire.i
i
Definition: mps_fire.py:428
CSCBaseboard::clctParams_
edm::ParameterSet clctParams_
Definition: CSCBaseboard.h:78
CSCCathodeLCTProcessor::stagger
int stagger[CSCConstants::NUM_LAYERS]
Definition: CSCCathodeLCTProcessor.h:199
CSCCathodeLCTProcessor
Definition: CSCCathodeLCTProcessor.h:44
CSCUpgradeCathodeLCTProcessor::pretrig_trig_zone
unsigned int pretrig_trig_zone
Definition: CSCUpgradeCathodeLCTProcessor.h:47
relativeConstraints.station
station
Definition: relativeConstraints.py:67
CSCCathodeLCTProcessor::fifo_tbins
unsigned int fifo_tbins
Definition: CSCCathodeLCTProcessor.h:206
CSCUpgradeCathodeLCTProcessor::preTrigger
bool preTrigger(const PulseArray pulse, const int start_bx, int &first_bx) override
Definition: CSCUpgradeCathodeLCTProcessor.cc:39
CSCCathodeLCTProcessor::dumpDigis
void dumpDigis(const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) const
Definition: CSCCathodeLCTProcessor.cc:1062
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
pulse
double pulse(double x, double y, double z, double t)
Definition: SiStripPulseShape.cc:49
CSCCathodeLCTProcessor::CLCT_PATTERN
Definition: CSCCathodeLCTProcessor.h:183
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCCathodeLCTProcessor::patternFinding
bool patternFinding(const PulseArray pulse, const unsigned int bx_time, std::map< int, std::map< int, CSCCLCTDigi::ComparatorContainer > > &hits_in_patterns)
Definition: CSCCathodeLCTProcessor.cc:870
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCConstants::MAX_CLCTS_PER_PROCESSOR
Definition: CSCConstants.h:69
quality
const uint32_t *__restrict__ Quality * quality
Definition: CAHitNtupletGeneratorKernelsImpl.h:109
CSCUpgradeCathodeLCTProcessor::busyMap
bool busyMap[CSCConstants::NUM_HALF_STRIPS_7CFEBS][CSCConstants::MAX_CLCT_TBINS]
Definition: CSCUpgradeCathodeLCTProcessor.h:39
CSCCathodeLCTProcessor::thePreTriggerDigis
std::vector< CSCCLCTPreTriggerDigi > thePreTriggerDigis
Definition: CSCCathodeLCTProcessor.h:203
CSCCathodeLCTProcessor::ispretrig
bool ispretrig[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
Definition: CSCCathodeLCTProcessor.h:175
CSCCathodeLCTProcessor::findLCTs
virtual std::vector< CSCCLCTDigi > findLCTs(const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS])
Definition: CSCCathodeLCTProcessor.cc:547
CSCUpgradeCathodeLCTProcessor::use_dead_time_zoning
bool use_dead_time_zoning
Definition: CSCUpgradeCathodeLCTProcessor.h:43
CSCCathodeLCTProcessor::numHalfStrips_
int numHalfStrips_
Definition: CSCCathodeLCTProcessor.h:196
CSCConstants::NUM_LAYERS
Definition: CSCConstants.h:46
CSCCathodeLCTProcessor::first_bx_corrected
int first_bx_corrected[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
Definition: CSCCathodeLCTProcessor.h:172
CSCCLCTPreTriggerDigi
Definition: CSCCLCTPreTriggerDigi.h:15
CSCCathodeLCTProcessor::preTrigger
virtual bool preTrigger(const PulseArray pulse, const int start_bx, int &first_bx)
Definition: CSCCathodeLCTProcessor.cc:811
CSCCathodeLCTProcessor::nhits
unsigned int nhits[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
Definition: CSCCathodeLCTProcessor.h:170
CSCUpgradeCathodeLCTProcessor::findLCTs
std::vector< CSCCLCTDigi > findLCTs(const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) override
Definition: CSCUpgradeCathodeLCTProcessor.cc:137
CSCBaseboard::runPhase2_
bool runPhase2_
Definition: CSCBaseboard.h:84
CSCCathodeLCTProcessor::CLCT_CFEB
Definition: CSCCathodeLCTProcessor.h:189
CSCCathodeLCTProcessor::CLCT_STRIP
Definition: CSCCathodeLCTProcessor.h:185
edm::ParameterSet
Definition: ParameterSet.h:47
CSCCathodeLCTProcessor::CLCT_BEND
Definition: CSCCathodeLCTProcessor.h:184
CSCCathodeLCTProcessor::CLCT_QUALITY
Definition: CSCCathodeLCTProcessor.h:188
CSCCathodeLCTProcessor::cleanComparatorContainer
void cleanComparatorContainer(CSCCLCTDigi &lct) const
Definition: CSCCathodeLCTProcessor.cc:1029
CSCUpgradeCathodeLCTProcessor.h
CSCUpgradeCathodeLCTProcessor::CSCUpgradeCathodeLCTProcessor
CSCUpgradeCathodeLCTProcessor()
Definition: CSCUpgradeCathodeLCTProcessor.cc:28
CSCUpgradeCathodeLCTProcessor::clct_state_machine_zone
unsigned int clct_state_machine_zone
Definition: CSCUpgradeCathodeLCTProcessor.h:44
CSCCLCTDigi::setHits
void setHits(const ComparatorContainer &hits)
Definition: CSCCLCTDigi.h:178
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
CSCCLCTDigi::setFullBX
void setFullBX(const uint16_t fullbx)
Set 12-bit full BX.
Definition: CSCCLCTDigi.h:168
CSCCathodeLCTProcessor::pid_thresh_pretrig
unsigned int pid_thresh_pretrig
Definition: CSCCathodeLCTProcessor.h:209
CSCCathodeLCTProcessor::best_pid
unsigned int best_pid[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
Definition: CSCCathodeLCTProcessor.h:167
CSCCathodeLCTProcessor::start_bx_shift
int start_bx_shift
Definition: CSCCathodeLCTProcessor.h:213
CSCCathodeLCTProcessor::pulseExtension
void pulseExtension(const std::vector< int > time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], PulseArray pulse)
Definition: CSCCathodeLCTProcessor.cc:767
trklet::bend
double bend(double r, double rinv, double stripPitch)
Definition: Util.h:166
CSCUpgradeCathodeLCTProcessor::use_corrected_bx
bool use_corrected_bx
Definition: CSCUpgradeCathodeLCTProcessor.h:50
CSCCathodeLCTProcessor::nplanes_hit_pretrig
unsigned int nplanes_hit_pretrig
Definition: CSCCathodeLCTProcessor.h:208
CSCConstants::KEY_CLCT_LAYER
Definition: CSCConstants.h:46
CSCConstants::MAX_CLCT_TBINS
Definition: CSCConstants.h:63
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
CSCConstants::NUM_HALF_STRIPS_7CFEBS
Definition: CSCConstants.h:28
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
CSCCathodeLCTProcessor::runCCLUT
void runCCLUT(CSCCLCTDigi &digi) const
Definition: CSCCathodeLCTProcessor.cc:1347
CSCConstants::CLCT_PATTERN_WIDTH
Definition: CSCConstants.h:53
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
CSCConstants::NUM_HALF_STRIPS_PER_CFEB
Definition: CSCConstants.h:32
CSCCathodeLCTProcessor::CLCT_STRIP_TYPE
Definition: CSCCathodeLCTProcessor.h:187
CSCCathodeLCTProcessor::drift_delay
unsigned int drift_delay
Definition: CSCCathodeLCTProcessor.h:207
CSCCathodeLCTProcessor::nplanes_hit_pattern
unsigned int nplanes_hit_pattern
Definition: CSCCathodeLCTProcessor.h:208
CSCCathodeLCTProcessor::CLCT_BX
Definition: CSCCathodeLCTProcessor.h:186
CSCBaseboard::runCCLUT_
bool runCCLUT_
Definition: CSCBaseboard.h:102
CSCCathodeLCTProcessor::clct_pattern_
CSCPatternBank::LCTPatterns clct_pattern_
Definition: CSCCathodeLCTProcessor.h:178
CSCCathodeLCTProcessor::CLCT_NUM_QUANTITIES
Definition: CSCCathodeLCTProcessor.h:190
CSCBaseboard::infoV
int infoV
Definition: CSCBaseboard.h:63