7 unsigned sector,
unsigned subsector,
11 , allLCTs1b(match_trig_window_size)
12 , allLCTs1a(match_trig_window_size)
14 , smartME1aME1b(commonParams_.getParameter<
bool>(
"smartME1aME1b"))
15 , disableME1a(commonParams_.getParameter<
bool>(
"disableME1a"))
16 , gangedME1a(commonParams_.getParameter<
bool>(
"gangedME1a"))
17 , dropLowQualityCLCTsNoGEMs_ME1a_(tmbParams_.getParameter<
bool>(
"dropLowQualityCLCTsNoGEMs_ME1a"))
18 , dropLowQualityCLCTsNoGEMs_ME1b_(tmbParams_.getParameter<
bool>(
"dropLowQualityCLCTsNoGEMs_ME1b"))
19 , dropLowQualityALCTsNoGEMs_ME1a_(tmbParams_.getParameter<
bool>(
"dropLowQualityALCTsNoGEMs_ME1a"))
20 , dropLowQualityALCTsNoGEMs_ME1b_(tmbParams_.getParameter<
bool>(
"dropLowQualityALCTsNoGEMs_ME1b"))
21 , buildLCTfromALCTandGEM_ME1a_(tmbParams_.getParameter<
bool>(
"buildLCTfromALCTandGEM_ME1a"))
22 , buildLCTfromALCTandGEM_ME1b_(tmbParams_.getParameter<
bool>(
"buildLCTfromALCTandGEM_ME1b"))
23 , buildLCTfromCLCTandGEM_ME1a_(tmbParams_.getParameter<
bool>(
"buildLCTfromCLCTandGEM_ME1a"))
24 , buildLCTfromCLCTandGEM_ME1b_(tmbParams_.getParameter<
bool>(
"buildLCTfromCLCTandGEM_ME1b"))
25 , promoteCLCTGEMquality_ME1a_(tmbParams_.getParameter<
bool>(
"promoteCLCTGEMquality_ME1a"))
26 , promoteCLCTGEMquality_ME1b_(tmbParams_.getParameter<
bool>(
"promoteCLCTGEMquality_ME1b"))
29 <<
"+++ Upgrade CSCGEMMotherboardME11 constructed while smartME1aME1b is not set! +++\n";
82 if (
gem_g !=
nullptr) {
84 <<
"+++ run() called for GEM-CSC integrated trigger! +++ \n";
91 <<
"+++ run() called for GEM-CSC integrated trigger without valid GEM geometry! +++ \n";
99 <<
"+++ run() called for non-existing ALCT/CLCT processor! +++ \n";
114 int used_clct_mask[20], used_clct_mask_1a[20];
115 for (
int b=0;
b<20;
b++)
116 used_clct_mask[
b] = used_clct_mask_1a[
b] = 0;
125 const bool hasPads(!
pads_.empty());
126 const bool hasCoPads(hasPads and !
coPads_.empty());
131 if (
alct->bestALCT[bx_alct].isValid())
139 LogTrace(
"CSCGEMCMotherboardME11") <<
"========================================================================" << std::endl
140 <<
"ALCT-CLCT matching in ME1/1 chamber: " <<
cscChamber->
id() << std::endl
141 <<
"------------------------------------------------------------------------" << std::endl
142 <<
"+++ Best ALCT Details: " <<
alct->bestALCT[bx_alct] << std::endl
143 <<
"+++ Second ALCT Details: " <<
alct->secondALCT[bx_alct] << std::endl;
148 LogTrace(
"CSCGEMCMotherboardME11") <<
"------------------------------------------------------------------------" << std::endl
149 <<
"Attempt ALCT-CLCT matching in ME1/b in bx range: [" << bx_clct_start <<
"," << bx_clct_stop <<
"]" << std::endl;
153 int nSuccesFulMatches = 0;
154 for (
int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++)
158 if (
clct->bestCLCT[bx_clct].isValid())
160 const int quality(
clct->bestCLCT[bx_clct].getQuality());
164 matches<GEMPadDigi> mPads;
165 matchingPads<GEMPadDigi>(
clct->bestCLCT[bx_clct],
clct->secondCLCT[bx_clct],
166 alct->bestALCT[bx_alct],
alct->secondALCT[bx_alct],
ME1B, mPads);
167 matches<GEMCoPadDigi> mCoPads;
168 matchingPads<GEMCoPadDigi>(
clct->bestCLCT[bx_clct],
clct->secondCLCT[bx_clct],
169 alct->bestALCT[bx_alct],
alct->secondALCT[bx_alct],
ME1B, mCoPads);
173 int nFound(mPads.size());
175 const bool clctInEdge(
clct->bestCLCT[bx_clct].getKeyStrip() < 5
or clct->bestCLCT[bx_clct].getKeyStrip() > 124);
177 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\tInfo: low quality CLCT in CSC chamber edge, don't care about GEM pads" << std::endl;
181 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\tInfo: low quality CLCT with " << nFound <<
" matching GEM trigger pads" << std::endl;
184 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\tWarning: low quality CLCT without matching GEM trigger pad" << std::endl;
193 int mbx = bx_clct-bx_clct_start;
195 clct->bestCLCT[bx_clct],
clct->secondCLCT[bx_clct],
199 LogTrace(
"CSCGEMCMotherboardME11") <<
"Successful ALCT-CLCT match in ME1b: bx_alct = " << bx_alct
200 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop
201 <<
"]; bx_clct = " << bx_clct << std::endl
202 <<
"+++ Best CLCT Details: " <<
clct->bestCLCT[bx_clct] << std::endl
203 <<
"+++ Second CLCT Details: " <<
clct->secondCLCT[bx_clct] << std::endl;
206 if (
allLCTs1b(bx_alct,mbx,0).isValid()) {
207 used_clct_mask[bx_clct] += 1;
214 int nSuccesFulGEMMatches = 0;
216 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"++No valid ALCT-CLCT matches in ME1b" << std::endl;
217 for (
int bx_gem = bx_copad_start; bx_gem <= bx_copad_stop; bx_gem++) {
223 matches<GEMCoPadDigi> copads;
224 matchingPads<CSCALCTDigi, GEMCoPadDigi>(
alct->bestALCT[bx_alct],
alct->secondALCT[bx_alct],
ME1B, copads);
226 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\t++Number of matching GEM CoPads in BX " << bx_alct <<
" : "<< copads.size() << std::endl;
227 if (copads.empty()) {
234 ++nSuccesFulGEMMatches;
238 LogTrace(
"CSCGEMCMotherboardME11") <<
"Successful ALCT-GEM CoPad match in ME1b: bx_alct = " << bx_alct << std::endl << std::endl
239 <<
"------------------------------------------------------------------------" << std::endl << std::endl;
245 LogTrace(
"CSCGEMCMotherboardME11") <<
"========================================================================" << std::endl
246 <<
"Summary: " << std::endl;
247 if (nSuccesFulMatches>1)
248 LogTrace(
"CSCGEMCMotherboardME11") <<
"Too many successful ALCT-CLCT matches in ME1b: " << nSuccesFulMatches
250 <<
", bx_alct = " << bx_alct
251 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
252 else if (nSuccesFulMatches==1)
253 LogTrace(
"CSCGEMCMotherboardME11") <<
"1 successful ALCT-CLCT match in ME1b: " 255 <<
", bx_alct = " << bx_alct
256 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
257 else if (nSuccesFulGEMMatches==1)
258 LogTrace(
"CSCGEMCMotherboardME11") <<
"1 successful ALCT-GEM match in ME1b: " 260 <<
", bx_alct = " << bx_alct
261 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
263 LogTrace(
"CSCGEMCMotherboardME11") <<
"Unsuccessful ALCT-CLCT match in ME1b: " 265 <<
", bx_alct = " << bx_alct
266 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
268 LogTrace(
"CSCGEMCMotherboardME11") <<
"------------------------------------------------------------------------" << std::endl
269 <<
"Attempt ALCT-CLCT matching in ME1/a in bx range: [" << bx_clct_start <<
"," << bx_clct_stop <<
"]" << std::endl;
273 nSuccesFulMatches = 0;
274 for (
int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++)
278 if (
clct1a->bestCLCT[bx_clct].isValid())
284 matches<GEMPadDigi> mPads;
285 matchingPads<GEMPadDigi>(
clct1a->bestCLCT[bx_clct],
clct1a->secondCLCT[bx_clct],
286 alct->bestALCT[bx_alct],
alct->secondALCT[bx_alct],
ME1A, mPads);
287 matches<GEMCoPadDigi> mCoPads;
288 matchingPads<GEMCoPadDigi>(
clct1a->bestCLCT[bx_clct],
clct1a->secondCLCT[bx_clct],
289 alct->bestALCT[bx_alct],
alct->secondALCT[bx_alct],
ME1A, mCoPads);
292 int nFound(mPads.size());
293 const bool clctInEdge(
clct1a->bestCLCT[bx_clct].getKeyStrip() < 4
or clct1a->bestCLCT[bx_clct].getKeyStrip() > 93);
295 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\tInfo: low quality CLCT in CSC chamber edge, don't care about GEM pads" << std::endl;
299 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\tInfo: low quality CLCT with " << nFound <<
" matching GEM trigger pads" << std::endl;
302 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\tWarning: low quality CLCT without matching GEM trigger pad" << std::endl;
308 int mbx = bx_clct-bx_clct_start;
314 LogTrace(
"CSCGEMCMotherboardME11") <<
"Successful ALCT-CLCT match in ME1a: bx_alct = " << bx_alct
315 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop
316 <<
"]; bx_clct = " << bx_clct << std::endl
317 <<
"+++ Best CLCT Details: " <<
clct1a->bestCLCT[bx_clct] << std::endl
318 <<
"+++ Second CLCT Details: " <<
clct1a->secondCLCT[bx_clct] << std::endl;
321 used_clct_mask_1a[bx_clct] += 1;
328 nSuccesFulGEMMatches = 0;
330 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"++No valid ALCT-CLCT matches in ME1a" << std::endl;
331 for (
int bx_gem = bx_copad_start; bx_gem <= bx_copad_stop; bx_gem++) {
337 matches<GEMCoPadDigi> copads;
338 matchingPads<CSCALCTDigi, GEMCoPadDigi>(
alct->bestALCT[bx_alct],
alct->secondALCT[bx_alct],
ME1A, copads);
340 if (
debug_matching)
LogTrace(
"CSCGEMCMotherboardME11") <<
"\t++Number of matching GEM CoPads in BX " << bx_alct <<
" : "<< copads.size() << std::endl;
341 if (copads.empty()) {
348 ++nSuccesFulGEMMatches;
352 LogTrace(
"CSCGEMCMotherboardME11") <<
"Successful ALCT-GEM CoPad match in ME1a: bx_alct = " << bx_alct << std::endl << std::endl
353 <<
"------------------------------------------------------------------------" << std::endl << std::endl;
359 LogTrace(
"CSCGEMCMotherboardME11") <<
"========================================================================" << std::endl
360 <<
"Summary: " << std::endl;
361 if (nSuccesFulMatches>1)
362 LogTrace(
"CSCGEMCMotherboardME11") <<
"Too many successful ALCT-CLCT matches in ME1a: " << nSuccesFulMatches
363 <<
", CSCDetId " << cscChamberME1a->id()
364 <<
", bx_alct = " << bx_alct
365 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
366 else if (nSuccesFulMatches==1)
367 LogTrace(
"CSCGEMCMotherboardME11") <<
"1 successful ALCT-CLCT match in ME1a: " 368 <<
" CSCDetId " << cscChamberME1a->id()
369 <<
", bx_alct = " << bx_alct
370 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
371 else if (nSuccesFulGEMMatches==1)
372 LogTrace(
"CSCGEMCMotherboardME11") <<
"1 successful ALCT-GEM match in ME1a: " 373 <<
" CSCDetId " << cscChamberME1a->id()
374 <<
", bx_alct = " << bx_alct
375 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
377 LogTrace(
"CSCGEMCMotherboardME11") <<
"Unsuccessful ALCT-CLCT match in ME1a: " 378 <<
"CSCDetId " << cscChamberME1a->id()
379 <<
", bx_alct = " << bx_alct
380 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop <<
"]" << std::endl;
386 if (!coPads.empty()) {
393 for (
int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++) {
396 if (
clct->bestCLCT[bx_clct].isValid()) {
397 const int quality(
clct->bestCLCT[bx_clct].getQuality());
400 int mbx = bx_clct-bx_clct_start;
405 LogTrace(
"CSCGEMCMotherboardME11") <<
"Successful GEM-CLCT match in ME1b: bx_alct = " << bx_alct
406 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop
407 <<
"]; bx_clct = " << bx_clct << std::endl
408 <<
"+++ Best CLCT Details: " <<
clct->bestCLCT[bx_clct] << std::endl
409 <<
"+++ Second CLCT Details: " <<
clct->secondCLCT[bx_clct] << std::endl;
411 if (
allLCTs1b(bx_alct,mbx,0).isValid()) {
412 used_clct_mask[bx_clct] += 1;
421 for (
int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++) {
424 if (
clct1a->bestCLCT[bx_clct].isValid()){
428 int mbx = bx_clct-bx_clct_start;
433 LogTrace(
"CSCGEMCMotherboardME11") <<
"Successful GEM-CLCT match in ME1a: bx_alct = " << bx_alct
434 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop
435 <<
"]; bx_clct = " << bx_clct << std::endl
436 <<
"+++ Best CLCT Details: " <<
clct1a->bestCLCT[bx_clct] << std::endl
437 <<
"+++ Second CLCT Details: " <<
clct1a->secondCLCT[bx_clct] << std::endl;
440 used_clct_mask_1a[bx_clct] += 1;
451 LogTrace(
"CSCGEMCMotherboardME11") <<
"========================================================================" << std::endl
452 <<
"Counting the LCTs" << std::endl
453 <<
"========================================================================" << std::endl;
460 unsigned int n1a=0, n1b=0;
464 int cbx = bx + mbx - match_trig_window_size/2;
469 <<
"1b LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs1b(bx,mbx,
i)<<std::endl;
475 <<
"1a LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs1a(bx,mbx,
i)<<std::endl;
478 if (
infoV > 0 and n1a+n1b>0)
LogDebug(
"CSCGEMMotherboardME11")
479 <<
"bx "<<bx<<
" nLCT:"<<n1a<<
" "<<n1b<<
" "<<n1a+n1b<<std::endl;
504 int cbx = bx + mbx - match_trig_window_size/2;
509 <<
"1b LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs1b(bx,mbx,
i)<< std::endl;
515 <<
"1a LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs1a(bx,mbx,
i)<< std::endl;
518 if (
infoV > 0 and n1a+n1b>0)
LogDebug(
"CSCGEMMotherboardME11")
519 <<
"bx "<<bx<<
" nnLCT:"<<n1a<<
" "<<n1b<<
" "<<n1a+n1b<<std::endl;
527 unsigned int nLCT=n1b;
538 <<
"bx "<<bx<<
" nnnLCT: "<<n1a<<
" "<<n1b<<
" "<<n1a+n1b<< std::endl;
542 unsigned int n1b=0, n1a=0;
543 LogTrace(
"CSCGEMCMotherboardME11") <<
"========================================================================" << std::endl
544 <<
"Counting the final LCTs" << std::endl
545 <<
"========================================================================" << std::endl
551 LogTrace(
"CSCGEMCMotherboardME11") <<
"1b LCT "<<n1b<<
" " <<
p <<std::endl;
557 LogTrace(
"CSCGEMCMotherboardME11") <<
"1a LCT "<<n1a<<
" " <<
p <<std::endl;
578 std::vector<CSCCorrelatedLCTDigi> tmpV;
594 std::vector<CSCCorrelatedLCTDigi> all_lcts;
607 default:
LogTrace(
"CSCGEMCMotherboardME11")<<
"tmb_cross_bx_algo error" <<std::endl;
610 for (
const auto& lct: all_lcts)
612 if (!lct.isValid())
continue;
614 int bx = lct.getBX();
619 if (bx > late_tbins)
continue;
627 if (bx_readout == -1) bx_readout = bx;
629 else tmpV.push_back(lct);
640 allLCTs.getTimeMatched(bx, LCTs);
652 std::vector<CSCCorrelatedLCTDigi> LCTs1a;
653 std::vector<CSCCorrelatedLCTDigi> LCTs1b;
659 std::vector<CSCCorrelatedLCTDigi> LCTs_tmp;
660 LCTs_tmp.insert(LCTs_tmp.begin(), LCTs1b.begin(), LCTs1b.end());
661 LCTs_tmp.insert(LCTs_tmp.end(), LCTs1a.begin(), LCTs1a.end());
670 for (
const auto&
p: LCTs_tmp){
672 if (me==
ME1A and
std::find(LCTs1a.begin(), LCTs1a.end(),
p) != LCTs1a.end()){
673 LCTs_final.push_back(
p);
676 else if(me==
ME1B and
std::find(LCTs1b.begin(), LCTs1b.end(),
p) != LCTs1b.end()){
677 LCTs_final.push_back(
p);
682 if (!LCTs1a.empty() and !LCTs1b.empty() and me==
ME1A)
683 LCTs_final.push_back(*LCTs1a.begin());
684 else if (!LCTs1a.empty() and !LCTs1b.empty() and me==
ME1B)
685 LCTs_final.push_back(*LCTs1b.begin());
686 else if (!LCTs1a.empty() and LCTs1b.empty() and me==
ME1A)
687 LCTs_final.insert(LCTs_final.end(), LCTs1a.begin(), LCTs1a.end());
688 else if (!LCTs1b.empty() and LCTs1a.empty() and me==
ME1B)
689 LCTs_final.insert(LCTs_final.end(), LCTs1b.begin(), LCTs1b.end());
740 if (secondALCT == bestALCT) secondALCT.
clear();
741 if (secondCLCT == bestCLCT) secondCLCT.
clear();
747 const int code = (ok11<<3) | (ok12<<2) | (ok21<<1) | (ok22);
753 if (dbg)
LogTrace(
"CSCGEMMotherboardME11")<<
"debug correlateLCTs in "<<did<<std::endl
754 <<
"ALCT1: "<<bestALCT<<std::endl
755 <<
"ALCT2: "<<secondALCT<<std::endl
756 <<
"CLCT1: "<<bestCLCT<<std::endl
757 <<
"CLCT2: "<<secondCLCT<<std::endl
758 <<
"ok 11 12 21 22 code = "<<ok11<<
" "<<ok12<<
" "<<ok21<<
" "<<ok22<<
" "<<code<<std::endl;
760 if ( code==0 )
return;
784 if (dbg)
LogTrace(
"CSCGEMMotherboardME11")<<
"lut 0 1 = "<<lut[code][0]<<
" "<<lut[code][1]<<std::endl;
787 const GEMCoPadDigi& bb_copad = bestMatchingPad<GEMCoPadDigi>(bestALCT, bestCLCT, copads,
p);
788 const GEMCoPadDigi& bs_copad = bestMatchingPad<GEMCoPadDigi>(bestALCT, secondCLCT, copads,
p);
789 const GEMCoPadDigi& sb_copad = bestMatchingPad<GEMCoPadDigi>(secondALCT, bestCLCT, copads,
p);
790 const GEMCoPadDigi& ss_copad = bestMatchingPad<GEMCoPadDigi>(secondALCT, secondCLCT, copads,
p);
793 const GEMPadDigi& bb_pad = bestMatchingPad<GEMPadDigi>(bestALCT, bestCLCT, pads,
p);
794 const GEMPadDigi& bs_pad = bestMatchingPad<GEMPadDigi>(bestALCT, secondCLCT, pads,
p);
795 const GEMPadDigi& sb_pad = bestMatchingPad<GEMPadDigi>(secondALCT, bestCLCT, pads,
p);
796 const GEMPadDigi& ss_pad = bestMatchingPad<GEMPadDigi>(secondALCT, secondCLCT, pads,
p);
799 const bool ok_bb_copad = ok11==1 and bestALCT.
isValid() and bestCLCT.isValid() and bb_copad.
isValid();
800 const bool ok_bs_copad = ok12==1 and bestALCT.isValid() and secondCLCT.isValid() and bs_copad.isValid();
801 const bool ok_sb_copad = ok21==1 and secondALCT.isValid() and bestCLCT.isValid() and sb_copad.isValid();
802 const bool ok_ss_copad = ok22==1 and secondALCT.isValid() and secondCLCT.isValid() and ss_copad.isValid();
804 const bool ok_bb_pad = (not ok_bb_copad) and ok11==1 and bestALCT.isValid() and bestCLCT.isValid() and bb_pad.isValid();
805 const bool ok_bs_pad = (not ok_bs_copad) and ok12==1 and bestALCT.isValid() and secondCLCT.isValid() and bs_pad.isValid();
806 const bool ok_sb_pad = (not ok_sb_copad) and ok21==1 and secondALCT.isValid() and bestCLCT.isValid() and sb_pad.isValid();
807 const bool ok_ss_pad = (not ok_ss_copad) and ok22==1 and secondALCT.isValid() and secondCLCT.isValid() and ss_pad.isValid();
809 switch (lut[code][0]) {
830 if (dbg)
LogTrace(
"CSCGEMMotherboardME11")<<
"lct1: "<<lct1<<std::endl;
832 switch (lut[code][1]){
849 if (dbg)
LogTrace(
"CSCGEMMotherboardME11")<<
"lct2: "<<lct2<<std::endl;
851 if (dbg)
LogTrace(
"CSCGEMMotherboardME11")<<
"out of correlateLCTs"<<std::endl;
void retrieveGEMPads(const GEMPadDigiCollection *pads, unsigned id)
T getParameter(std::string const &) const
bool gemGeometryAvailable
bool buildLCTfromALCTandGEM_ME1a_
std::vector< CSCCLCTDigi > clctV1b
std::vector< CSCCorrelatedLCTDigi > readoutLCTs()
unsigned int match_trig_window_size
CSCDetId id() const
Get the (concrete) DetId.
const unsigned theTrigChamber
bool isValid() const
check ALCT validity (1 - valid ALCT)
GEMCoPadDigiIdsBX coPads_
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, enum CSCPart, int i) const
bool match_earliest_clct_only
bool doesALCTCrossCLCT(const CSCALCTDigi &a, const CSCCLCTDigi &c, int me) const
void clear()
clear this ALCT
static bool sortLCTsByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
int pref[CSCConstants::MAX_LCT_TBINS]
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
const CSCChamber * cscChamber
matches< GEMCoPadDigi > GEMCoPadDigiIds
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
std::vector< GEMCoPadDigi > gemCoPadV
std::vector< CSCALCTDigi > alctV
unsigned int mpc_block_me1a
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
bool buildLCTfromALCTandGEM_ME1b_
const unsigned theStation
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
const CSCGeometry * csc_g
edm::ParameterSet commonParams_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const unsigned theSubsector
void correlateLCTsGEM(T &best, T &second, const GEMCoPadDigiIds &coPads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2, enum CSCPart) const
~CSCGEMMotherboardME11() override
static bool sortLCTsByGEMDphi(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
void printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart)
unsigned int tmb_l1a_window_size
std::unique_ptr< CSCCathodeLCTProcessor > clct1a
bool isValid() const
check CLCT validity (1 - valid CLCT)
bool dropLowQualityCLCTsNoGEMs_ME1a_
bool dropLowQualityCLCTsNoGEMs_ME1b_
edm::ParameterSet tmbParams_
void getMatched(std::vector< CSCCorrelatedLCTDigi > &) const
std::unique_ptr< CSCGEMMotherboardLUTME11 > tmbLUT_
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &, int bx, enum CSCPart, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
std::vector< CSCCLCTDigi > clctV1a
bool buildLCTfromCLCTandGEM_ME1a_
std::unique_ptr< CSCAnodeLCTProcessor > alct
std::unique_ptr< CSCCathodeLCTProcessor > clct
void clear()
clear this CLCT
matches< GEMPadDigi > GEMPadDigiIds
const GEMGeometry * gem_g
bool buildLCTfromCLCTandGEM_ME1b_
void correlateLCTsGEM(CSCALCTDigi &bestALCT, CSCALCTDigi &secondALCT, CSCCLCTDigi &bestCLCT, CSCCLCTDigi &secondCLCT, const GEMPadDigiIds &pads, const GEMCoPadDigiIds &copads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2, enum CSCPart p) const
unsigned int tmb_cross_bx_algo
int getKeyWG() const
return key wire group
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
void printGEMTriggerPads(int bx_start, int bx_stop, enum CSCPart)
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads) override