84 <<
"+++ trying to instantiate TMB of illegal CSC id [" 85 <<
" endcap = " << endc <<
" station = " <<
stat 86 <<
" sector = " << sect <<
" subsector = " << subs
87 <<
" chamber = " <<
cham <<
"]; skipping it... +++\n";
93 if (
stat==1 && ring==1 && smartME1aME1b && !runME11ILT_)
95 else if (
stat==1 && ring==1 && smartME1aME1b && runME11ILT_)
143 tmb_[endc-1][
stat-1][sect-1][subs-1][
cham-1]->setConfigParameters(conf);
194 if (tmb == 0 || theGeom->
chamber(endc,
stat, sect, subs,
cham) == 0)
continue;
213 tmb11->
run(wiredc,compdc);
214 std::vector<CSCCorrelatedLCTDigi> lctV = tmb11->
readoutLCTs1b();
215 std::vector<CSCCorrelatedLCTDigi> lctV1a = tmb11->
readoutLCTs1a();
217 std::vector<CSCALCTDigi> alctV1a, alctV = tmb11->
alct->readoutALCTs();
219 std::vector<CSCCLCTDigi> clctV = tmb11->
clct->readoutCLCTs();
220 std::vector<int> preTriggerBXs = tmb11->
clct->preTriggerBXs();
221 std::vector<CSCCLCTDigi> clctV1a = tmb11->
clct1a->readoutCLCTs();
222 std::vector<int> preTriggerBXs1a = tmb11->
clct1a->preTriggerBXs();
226 std::vector<CSCALCTDigi> tmpV(alctV);
228 for (
unsigned int al=0; al < tmpV.size(); al++)
230 if (tmpV[al].getKeyWG()<=15) alctV1a.push_back(tmpV[al]);
231 if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
238 if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
240 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
246 <<
"Put " << lctV.size() <<
" ME1b LCT digi" 247 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
248 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
252 if (!alctV.empty()) {
254 <<
"Put " << alctV.size() <<
" ME1b ALCT digi" 255 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
256 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
260 if (!clctV.empty()) {
262 <<
"Put " << clctV.size() <<
" ME1b CLCT digi" 263 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
264 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
268 if (!preTriggerBXs.empty()) {
270 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 271 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
272 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
281 if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
282 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
286 if (!lctV1a.empty()) {
288 <<
"Put " << lctV1a.size() <<
" ME1a LCT digi" 289 << ((lctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
290 oc_lct.put(std::make_pair(lctV1a.begin(),lctV1a.end()), detid1a);
294 if (!alctV1a.empty()) {
296 <<
"Put " << alctV1a.size() <<
" ME1a ALCT digi" 297 << ((alctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
298 oc_alct.put(std::make_pair(alctV1a.begin(),alctV1a.end()), detid1a);
302 if (!clctV1a.empty()) {
304 <<
"Put " << clctV1a.size() <<
" ME1a CLCT digi" 305 << ((clctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
306 oc_clct.put(std::make_pair(clctV1a.begin(),clctV1a.end()), detid1a);
310 if (!preTriggerBXs1a.empty()) {
312 <<
"Put " << preTriggerBXs1a.size() <<
" CLCT pretrigger" 313 << ((preTriggerBXs1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
314 oc_pretrig.put(std::make_pair(preTriggerBXs1a.begin(),preTriggerBXs1a.end()), detid1a);
326 tmb11GEM->
run(wiredc, compdc, gemPads);
328 std::vector<CSCCorrelatedLCTDigi> lctV = tmb11GEM->
readoutLCTs1b();
329 std::vector<CSCCorrelatedLCTDigi> lctV1a = tmb11GEM->
readoutLCTs1a();
331 std::vector<CSCALCTDigi> alctV1a, alctV = tmb11GEM->
alct->readoutALCTs();
333 std::vector<CSCCLCTDigi> clctV = tmb11GEM->
clct->readoutCLCTs();
334 std::vector<int> preTriggerBXs = tmb11GEM->
clct->preTriggerBXs();
335 std::vector<CSCCLCTDigi> clctV1a = tmb11GEM->
clct1a->readoutCLCTs();
336 std::vector<int> preTriggerBXs1a = tmb11GEM->
clct1a->preTriggerBXs();
338 std::vector<GEMCoPadDigi> copads = tmb11GEM->
readoutCoPads();
342 std::vector<CSCALCTDigi> tmpV(alctV);
344 for (
unsigned int al=0; al < tmpV.size(); al++)
346 if (tmpV[al].getKeyWG()<=15) alctV1a.push_back(tmpV[al]);
347 if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
354 if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
356 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
362 <<
"Put " << lctV.size() <<
" ME1b LCT digi" 363 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
364 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
368 if (!alctV.empty()) {
370 <<
"Put " << alctV.size() <<
" ME1b ALCT digi" 371 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
372 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
376 if (!clctV.empty()) {
378 <<
"Put " << clctV.size() <<
" ME1b CLCT digi" 379 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
380 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
384 if (!preTriggerBXs.empty()) {
386 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 387 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
388 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
394 if (!copads.empty()) {
396 <<
"Put " << copads.size() <<
" GEM coincidence pad" 397 << ((copads.size() > 1) ?
"s " :
" ") <<
"in collection\n";
398 oc_gemcopad.put(std::make_pair(copads.begin(),copads.end()), gemId);
407 if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
408 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
412 if (!lctV1a.empty()) {
414 <<
"Put " << lctV1a.size() <<
" ME1a LCT digi" 415 << ((lctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
416 oc_lct.put(std::make_pair(lctV1a.begin(),lctV1a.end()), detid1a);
420 if (!alctV1a.empty()) {
422 <<
"Put " << alctV1a.size() <<
" ME1a ALCT digi" 423 << ((alctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
424 oc_alct.put(std::make_pair(alctV1a.begin(),alctV1a.end()), detid1a);
428 if (!clctV1a.empty()) {
430 <<
"Put " << clctV1a.size() <<
" ME1a CLCT digi" 431 << ((clctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
432 oc_clct.put(std::make_pair(clctV1a.begin(),clctV1a.end()), detid1a);
436 if (!preTriggerBXs1a.empty()) {
438 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 439 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
440 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
450 tmb21GEM->
run(wiredc, compdc, gemPads);
451 std::vector<CSCCorrelatedLCTDigi> lctV = tmb21GEM->
readoutLCTs();
452 std::vector<CSCALCTDigi> alctV = tmb21GEM->
alct->readoutALCTs();
453 std::vector<CSCCLCTDigi> clctV = tmb21GEM->
clct->readoutCLCTs();
454 std::vector<int> preTriggerBXs = tmb21GEM->
clct->preTriggerBXs();
456 std::vector<GEMCoPadDigi> copads = tmb21GEM->
readoutCoPads();
458 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
460 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
466 <<
"Put " << lctV.size() <<
" LCT digi" 467 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
468 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
472 if (!alctV.empty()) {
474 <<
"Put " << alctV.size() <<
" ALCT digi" 475 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
476 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
480 if (!clctV.empty()) {
482 <<
"Put " << clctV.size() <<
" CLCT digi" 483 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
484 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
488 if (!preTriggerBXs.empty()) {
490 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 491 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
492 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
499 if (!copads.empty()) {
501 <<
"Put " << copads.size() <<
" GEM coincidence pad" 502 << ((copads.size() > 1) ?
"s " :
" ") <<
"in collection\n";
503 oc_gemcopad.put(std::make_pair(copads.begin(),copads.end()), gemId);
512 tmb3141RPC->
run(wiredc, compdc, rpcDigis);
513 std::vector<CSCCorrelatedLCTDigi> lctV = tmb3141RPC->
readoutLCTs();
514 std::vector<CSCALCTDigi> alctV = tmb3141RPC->
alct->readoutALCTs();
515 std::vector<CSCCLCTDigi> clctV = tmb3141RPC->
clct->readoutCLCTs();
516 std::vector<int> preTriggerBXs = tmb3141RPC->
clct->preTriggerBXs();
518 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
520 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
526 <<
"Put " << lctV.size() <<
" LCT digi" 527 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
528 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
531 if (!alctV.empty()) {
533 <<
"Put " << alctV.size() <<
" ALCT digi" 534 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
535 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
539 if (!clctV.empty()) {
541 <<
"Put " << clctV.size() <<
" CLCT digi" 542 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
543 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
547 if (!preTriggerBXs.empty()) {
549 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 550 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
551 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
558 tmb->
run(wiredc,compdc);
560 std::vector<CSCCorrelatedLCTDigi> lctV = tmb->
readoutLCTs();
561 std::vector<CSCALCTDigi> alctV = tmb->
alct->readoutALCTs();
562 std::vector<CSCCLCTDigi> clctV = tmb->
clct->readoutCLCTs();
563 std::vector<int> preTriggerBXs = tmb->
clct->preTriggerBXs();
565 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
567 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
585 <<
"Put " << lctV.size() <<
" LCT digi" 586 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
587 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
591 if (!alctV.empty()) {
593 <<
"Put " << alctV.size() <<
" ALCT digi" 594 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
595 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
599 if (!clctV.empty()) {
601 <<
"Put " << clctV.size() <<
" CLCT digi" 602 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
603 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
607 if (!preTriggerBXs.empty()) {
609 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 610 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
611 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
629 std::vector<csctf::TrackStub>
result;
637 std::vector<csctf::TrackStub> subs1, subs2;
640 result.insert(result.end(), subs1.begin(), subs1.end());
641 result.insert(result.end(), subs2.begin(), subs2.end());
645 std::vector<csctf::TrackStub> sector;
647 result.insert(result.end(), sector.begin(), sector.end());
651 std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
652 for (; itr != result.end(); itr++)
654 oc_sorted_lct.insertDigi(
CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
656 <<
"MPC " << *(itr->getDigi()) <<
" found in ME" 657 << ((itr->endcap() == 1) ?
"+" :
"-") << itr->station() <<
"/" 660 <<
" (sector " << itr->sector()
661 <<
" trig id. " << itr->cscid() <<
")" <<
"\n";
std::vector< GEMCoPadDigi > readoutCoPads()
static const int min_station
T getParameter(std::string const &) const
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
void setCSCGeometry(const CSCGeometry *g)
set CSC and RPC geometries for the matching needs
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
CSCChamber * chamber(unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned tcscid) const
Return the CSCChamber for a corresponding endcap/station/sector/subsector/trigger cscid...
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a()
std::vector< CSCCorrelatedLCTDigi > readoutLCTs()
void setGEMGeometry(const GEMGeometry *g)
static const int max_subsector
static int maxTriggerCscId()
static int maxTriggerSectorId()
static const int min_endcap
std::vector< CSCCorrelatedLCTDigi > readoutLCTs()
static const int max_station
static int maxStationId()
static int minTriggerSectorId()
static const int min_subsector
static int ringFromTriggerLabels(int station, int triggerCSCID)
std::unique_ptr< CSCCathodeLCTProcessor > clct1a
const GEMGeometry * gem_g
static const int max_chamber
void setConfigParameters(const CSCDBL1TPParameters *conf)
bool isInBadChamber(IndexType ichamber) const
Is the chamber with index 'ichamber' flagged as bad?
static const int max_sector
bool runOnData_
temporary flag to run on data
~CSCTriggerPrimitivesBuilder()
static const int max_endcap
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
static CSCTriggerGeomManager * get()
static int minStationId()
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
void setCSCGeometry(const CSCGeometry *g)
set CSC and GEM geometries for the matching needs
void run(const std::vector< int > w_time[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES], const std::vector< int > hs_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const std::vector< int > ds_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS])
static const int min_sector
short int zendcap() const
void setCSCGeometry(const CSCGeometry *g)
set CSC and GEM geometries for the matching needs
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)
const CSCGeometry * csc_g
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads, const RPCDigiCollection *rpcDigis, CSCALCTDigiCollection &oc_alct, CSCCLCTDigiCollection &oc_clct, CSCCLCTPreTriggerCollection &oc_pretrig, CSCCorrelatedLCTDigiCollection &oc_lct, CSCCorrelatedLCTDigiCollection &oc_sorted_lct, GEMCoPadDigiCollection &oc_gemcopad)
static int minTriggerSubSectorId()
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b()
std::unique_ptr< CSCAnodeLCTProcessor > alct
std::unique_ptr< CSCCathodeLCTProcessor > clct
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b()
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)
std::vector< CSCCorrelatedLCTDigi > readoutLCTs()
std::unique_ptr< CSCMuonPortCard > m_muonportcard
void setGEMGeometry(const GEMGeometry *g)
static int minTriggerCscId()
std::unique_ptr< CSCCathodeLCTProcessor > clct1a
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const RPCDigiCollection *rpcDigis)
std::vector< GEMCoPadDigi > readoutCoPads()
void setRPCGeometry(const RPCGeometry *g)
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
static int maxTriggerSubSectorId()
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a()
static const int min_chamber
const RPCGeometry * rpc_g