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->
coPadProcessor->readoutCoPads();
341 std::vector<CSCALCTDigi> tmpV(alctV);
343 for (
unsigned int al=0; al < tmpV.size(); al++)
345 if (tmpV[al].getKeyWG()<=15) alctV1a.push_back(tmpV[al]);
346 if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
353 if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
355 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
361 <<
"Put " << lctV.size() <<
" ME1b LCT digi" 362 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
363 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
367 if (!alctV.empty()) {
369 <<
"Put " << alctV.size() <<
" ME1b ALCT digi" 370 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
371 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
375 if (!clctV.empty()) {
377 <<
"Put " << clctV.size() <<
" ME1b CLCT digi" 378 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
379 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
383 if (!preTriggerBXs.empty()) {
385 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 386 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
387 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
393 if (!copads.empty()) {
395 <<
"Put " << copads.size() <<
" GEM coincidence pad" 396 << ((copads.size() > 1) ?
"s " :
" ") <<
"in collection\n";
397 oc_gemcopad.put(std::make_pair(copads.begin(),copads.end()), gemId);
406 if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
407 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
411 if (!lctV1a.empty()) {
413 <<
"Put " << lctV1a.size() <<
" ME1a LCT digi" 414 << ((lctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
415 oc_lct.put(std::make_pair(lctV1a.begin(),lctV1a.end()), detid1a);
419 if (!alctV1a.empty()) {
421 <<
"Put " << alctV1a.size() <<
" ME1a ALCT digi" 422 << ((alctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
423 oc_alct.put(std::make_pair(alctV1a.begin(),alctV1a.end()), detid1a);
427 if (!clctV1a.empty()) {
429 <<
"Put " << clctV1a.size() <<
" ME1a CLCT digi" 430 << ((clctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
431 oc_clct.put(std::make_pair(clctV1a.begin(),clctV1a.end()), detid1a);
435 if (!preTriggerBXs1a.empty()) {
437 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 438 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
439 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
449 tmb21GEM->
run(wiredc, compdc, gemPads);
450 std::vector<CSCCorrelatedLCTDigi> lctV = tmb21GEM->
readoutLCTs();
451 std::vector<CSCALCTDigi> alctV = tmb21GEM->
alct->readoutALCTs();
452 std::vector<CSCCLCTDigi> clctV = tmb21GEM->
clct->readoutCLCTs();
453 std::vector<int> preTriggerBXs = tmb21GEM->
clct->preTriggerBXs();
455 std::vector<GEMCoPadDigi> copads = tmb21GEM->
coPadProcessor->readoutCoPads();
457 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
459 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
465 <<
"Put " << lctV.size() <<
" LCT digi" 466 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
467 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
471 if (!alctV.empty()) {
473 <<
"Put " << alctV.size() <<
" ALCT digi" 474 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
475 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
479 if (!clctV.empty()) {
481 <<
"Put " << clctV.size() <<
" CLCT digi" 482 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
483 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
487 if (!preTriggerBXs.empty()) {
489 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 490 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
491 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
498 if (!copads.empty()) {
500 <<
"Put " << copads.size() <<
" GEM coincidence pad" 501 << ((copads.size() > 1) ?
"s " :
" ") <<
"in collection\n";
502 oc_gemcopad.put(std::make_pair(copads.begin(),copads.end()), gemId);
511 tmb3141RPC->
run(wiredc, compdc, rpcDigis);
512 std::vector<CSCCorrelatedLCTDigi> lctV = tmb3141RPC->
readoutLCTs();
513 std::vector<CSCALCTDigi> alctV = tmb3141RPC->
alct->readoutALCTs();
514 std::vector<CSCCLCTDigi> clctV = tmb3141RPC->
clct->readoutCLCTs();
515 std::vector<int> preTriggerBXs = tmb3141RPC->
clct->preTriggerBXs();
517 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
519 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
525 <<
"Put " << lctV.size() <<
" LCT digi" 526 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
527 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
530 if (!alctV.empty()) {
532 <<
"Put " << alctV.size() <<
" ALCT digi" 533 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
534 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
538 if (!clctV.empty()) {
540 <<
"Put " << clctV.size() <<
" CLCT digi" 541 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
542 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
546 if (!preTriggerBXs.empty()) {
548 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 549 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
550 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
557 tmb->
run(wiredc,compdc);
559 std::vector<CSCCorrelatedLCTDigi> lctV = tmb->
readoutLCTs();
560 std::vector<CSCALCTDigi> alctV = tmb->
alct->readoutALCTs();
561 std::vector<CSCCLCTDigi> clctV = tmb->
clct->readoutCLCTs();
562 std::vector<int> preTriggerBXs = tmb->
clct->preTriggerBXs();
564 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
566 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
584 <<
"Put " << lctV.size() <<
" LCT digi" 585 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
586 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
590 if (!alctV.empty()) {
592 <<
"Put " << alctV.size() <<
" ALCT digi" 593 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
594 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
598 if (!clctV.empty()) {
600 <<
"Put " << clctV.size() <<
" CLCT digi" 601 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
602 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
606 if (!preTriggerBXs.empty()) {
608 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger" 609 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
610 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
628 std::vector<csctf::TrackStub>
result;
636 std::vector<csctf::TrackStub> subs1, subs2;
639 result.insert(result.end(), subs1.begin(), subs1.end());
640 result.insert(result.end(), subs2.begin(), subs2.end());
644 std::vector<csctf::TrackStub> sector;
646 result.insert(result.end(), sector.begin(), sector.end());
650 std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
651 for (; itr != result.end(); itr++)
653 oc_sorted_lct.insertDigi(
CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
655 <<
"MPC " << *(itr->getDigi()) <<
" found in ME" 656 << ((itr->endcap() == 1) ?
"+" :
"-") << itr->station() <<
"/" 659 <<
" (sector " << itr->sector()
660 <<
" trig id. " << itr->cscid() <<
")" <<
"\n";
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::unique_ptr< GEMCoPadProcessor > coPadProcessor
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])
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
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)
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