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);
195 if (tmb == 0 || theGeom->
chamber(endc, stat, sect, subs,
cham) == 0)
continue;
200 CSCDetId detid(endc, stat, ring, chid, 0);
214 tmb11->
run(wiredc,compdc);
215 std::vector<CSCCorrelatedLCTDigi> lctV = tmb11->
readoutLCTs1b();
216 std::vector<CSCCorrelatedLCTDigi> lctV1a = tmb11->
readoutLCTs1a();
218 std::vector<CSCALCTDigi> alctV1a, alctV = tmb11->
alct->readoutALCTs();
220 std::vector<CSCCLCTDigi> clctV = tmb11->
clct->readoutCLCTs();
221 std::vector<int> preTriggerBXs = tmb11->
clct->preTriggerBXs();
222 std::vector<CSCCLCTDigi> clctV1a = tmb11->
clct1a->readoutCLCTs();
223 std::vector<int> preTriggerBXs1a = tmb11->
clct1a->preTriggerBXs();
227 std::vector<CSCALCTDigi> tmpV(alctV);
229 for (
unsigned int al=0; al < tmpV.size(); al++)
231 if (tmpV[al].getKeyWG()<=15) alctV1a.push_back(tmpV[al]);
232 if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
239 if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
241 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
247 <<
"Put " << lctV.size() <<
" ME1b LCT digi"
248 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
249 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
253 if (!alctV.empty()) {
255 <<
"Put " << alctV.size() <<
" ME1b ALCT digi"
256 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
257 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
261 if (!clctV.empty()) {
263 <<
"Put " << clctV.size() <<
" ME1b CLCT digi"
264 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
265 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
269 if (!preTriggerBXs.empty()) {
271 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger"
272 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
273 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
280 CSCDetId detid1a(endc, stat, 4, chid, 0);
282 if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
283 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
287 if (!lctV1a.empty()) {
289 <<
"Put " << lctV1a.size() <<
" ME1a LCT digi"
290 << ((lctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
291 oc_lct.put(std::make_pair(lctV1a.begin(),lctV1a.end()), detid1a);
295 if (!alctV1a.empty()) {
297 <<
"Put " << alctV1a.size() <<
" ME1a ALCT digi"
298 << ((alctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
299 oc_alct.put(std::make_pair(alctV1a.begin(),alctV1a.end()), detid1a);
303 if (!clctV1a.empty()) {
305 <<
"Put " << clctV1a.size() <<
" ME1a CLCT digi"
306 << ((clctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
307 oc_clct.put(std::make_pair(clctV1a.begin(),clctV1a.end()), detid1a);
311 if (!preTriggerBXs1a.empty()) {
313 <<
"Put " << preTriggerBXs1a.size() <<
" CLCT pretrigger"
314 << ((preTriggerBXs1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
315 oc_pretrig.put(std::make_pair(preTriggerBXs1a.begin(),preTriggerBXs1a.end()), detid1a);
327 tmb11GEM->
run(wiredc, compdc, gemPads);
329 std::vector<CSCCorrelatedLCTDigi> lctV = tmb11GEM->
readoutLCTs1b();
330 std::vector<CSCCorrelatedLCTDigi> lctV1a = tmb11GEM->
readoutLCTs1a();
332 std::vector<CSCALCTDigi> alctV1a, alctV = tmb11GEM->
alct->readoutALCTs();
334 std::vector<CSCCLCTDigi> clctV = tmb11GEM->
clct->readoutCLCTs();
335 std::vector<int> preTriggerBXs = tmb11GEM->
clct->preTriggerBXs();
336 std::vector<CSCCLCTDigi> clctV1a = tmb11GEM->
clct1a->readoutCLCTs();
337 std::vector<int> preTriggerBXs1a = tmb11GEM->
clct1a->preTriggerBXs();
339 std::vector<GEMCoPadDigi> copads = tmb11GEM->
readoutCoPads();
343 std::vector<CSCALCTDigi> tmpV(alctV);
345 for (
unsigned int al=0; al < tmpV.size(); al++)
347 if (tmpV[al].getKeyWG()<=15) alctV1a.push_back(tmpV[al]);
348 if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
355 if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
357 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
363 <<
"Put " << lctV.size() <<
" ME1b LCT digi"
364 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
365 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
369 if (!alctV.empty()) {
371 <<
"Put " << alctV.size() <<
" ME1b ALCT digi"
372 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
373 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
377 if (!clctV.empty()) {
379 <<
"Put " << clctV.size() <<
" ME1b CLCT digi"
380 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
381 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
385 if (!preTriggerBXs.empty()) {
387 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger"
388 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
389 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
395 if (!copads.empty()) {
397 <<
"Put " << copads.size() <<
" GEM coincidence pad"
398 << ((copads.size() > 1) ?
"s " :
" ") <<
"in collection\n";
399 oc_gemcopad.put(std::make_pair(copads.begin(),copads.end()), gemId);
406 CSCDetId detid1a(endc, stat, 4, chid, 0);
408 if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
409 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
413 if (!lctV1a.empty()) {
415 <<
"Put " << lctV1a.size() <<
" ME1a LCT digi"
416 << ((lctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
417 oc_lct.put(std::make_pair(lctV1a.begin(),lctV1a.end()), detid1a);
421 if (!alctV1a.empty()) {
423 <<
"Put " << alctV1a.size() <<
" ME1a ALCT digi"
424 << ((alctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
425 oc_alct.put(std::make_pair(alctV1a.begin(),alctV1a.end()), detid1a);
429 if (!clctV1a.empty()) {
431 <<
"Put " << clctV1a.size() <<
" ME1a CLCT digi"
432 << ((clctV1a.size() > 1) ?
"s " :
" ") <<
"in collection\n";
433 oc_clct.put(std::make_pair(clctV1a.begin(),clctV1a.end()), detid1a);
437 if (!preTriggerBXs1a.empty()) {
439 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger"
440 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
441 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
451 tmb21GEM->
run(wiredc, compdc, gemPads);
452 std::vector<CSCCorrelatedLCTDigi> lctV = tmb21GEM->
readoutLCTs();
453 std::vector<CSCALCTDigi> alctV = tmb21GEM->
alct->readoutALCTs();
454 std::vector<CSCCLCTDigi> clctV = tmb21GEM->
clct->readoutCLCTs();
455 std::vector<int> preTriggerBXs = tmb21GEM->
clct->preTriggerBXs();
457 std::vector<GEMCoPadDigi> copads = tmb21GEM->
readoutCoPads();
459 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
461 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
467 <<
"Put " << lctV.size() <<
" LCT digi"
468 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
469 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
473 if (!alctV.empty()) {
475 <<
"Put " << alctV.size() <<
" ALCT digi"
476 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
477 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
481 if (!clctV.empty()) {
483 <<
"Put " << clctV.size() <<
" CLCT digi"
484 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
485 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
489 if (!preTriggerBXs.empty()) {
491 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger"
492 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
493 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
500 if (!copads.empty()) {
502 <<
"Put " << copads.size() <<
" GEM coincidence pad"
503 << ((copads.size() > 1) ?
"s " :
" ") <<
"in collection\n";
504 oc_gemcopad.put(std::make_pair(copads.begin(),copads.end()), gemId);
513 tmb3141RPC->
run(wiredc, compdc, rpcDigis);
514 std::vector<CSCCorrelatedLCTDigi> lctV = tmb3141RPC->
readoutLCTs();
515 std::vector<CSCALCTDigi> alctV = tmb3141RPC->
alct->readoutALCTs();
516 std::vector<CSCCLCTDigi> clctV = tmb3141RPC->
clct->readoutCLCTs();
517 std::vector<int> preTriggerBXs = tmb3141RPC->
clct->preTriggerBXs();
519 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
521 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
527 <<
"Put " << lctV.size() <<
" LCT digi"
528 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
529 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
532 if (!alctV.empty()) {
534 <<
"Put " << alctV.size() <<
" ALCT digi"
535 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
536 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
540 if (!clctV.empty()) {
542 <<
"Put " << clctV.size() <<
" CLCT digi"
543 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
544 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
548 if (!preTriggerBXs.empty()) {
550 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger"
551 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
552 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
559 tmb->
run(wiredc,compdc);
561 std::vector<CSCCorrelatedLCTDigi> lctV = tmb->
readoutLCTs();
562 std::vector<CSCALCTDigi> alctV = tmb->
alct->readoutALCTs();
563 std::vector<CSCCLCTDigi> clctV = tmb->
clct->readoutCLCTs();
564 std::vector<int> preTriggerBXs = tmb->
clct->preTriggerBXs();
566 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
568 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
586 <<
"Put " << lctV.size() <<
" LCT digi"
587 << ((lctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
588 oc_lct.put(std::make_pair(lctV.begin(),lctV.end()), detid);
592 if (!alctV.empty()) {
594 <<
"Put " << alctV.size() <<
" ALCT digi"
595 << ((alctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
596 oc_alct.put(std::make_pair(alctV.begin(),alctV.end()), detid);
600 if (!clctV.empty()) {
602 <<
"Put " << clctV.size() <<
" CLCT digi"
603 << ((clctV.size() > 1) ?
"s " :
" ") <<
"in collection\n";
604 oc_clct.put(std::make_pair(clctV.begin(),clctV.end()), detid);
608 if (!preTriggerBXs.empty()) {
610 <<
"Put " << preTriggerBXs.size() <<
" CLCT pretrigger"
611 << ((preTriggerBXs.size() > 1) ?
"s " :
" ") <<
"in collection\n";
612 oc_pretrig.put(std::make_pair(preTriggerBXs.begin(),preTriggerBXs.end()), detid);
630 std::vector<csctf::TrackStub>
result;
638 std::vector<csctf::TrackStub> subs1, subs2;
641 result.insert(result.end(), subs1.begin(), subs1.end());
642 result.insert(result.end(), subs2.begin(), subs2.end());
646 std::vector<csctf::TrackStub> sector;
648 result.insert(result.end(), sector.begin(), sector.end());
652 std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
653 for (; itr != result.end(); itr++)
655 oc_sorted_lct.insertDigi(
CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
657 <<
"MPC " << *(itr->getDigi()) <<
" found in ME"
658 << ((itr->endcap() == 1) ?
"+" :
"-") << itr->station() <<
"/"
660 <<
CSCDetId(itr->getDetId().rawId()).chamber()
661 <<
" (sector " << itr->sector()
662 <<
" 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...
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::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
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()
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 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, GEMCSCLCTDigiCollection &oc_gemcsclct)
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)
const CSCGeometry * csc_g
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