83 <<
"+++ trying to instantiate TMB of illegal CSC id [" 84 <<
" endcap = " << endc <<
" station = " <<
stat 85 <<
" sector = " << sect <<
" subsector = " << subs
86 <<
" chamber = " <<
cham <<
"]; skipping it... +++\n";
92 if (
stat==1 && ring==1 && smartME1aME1b && !runME11ILT_)
94 else if (
stat==1 && ring==1 && smartME1aME1b && runME11ILT_)
142 tmb_[endc-1][
stat-1][sect-1][subs-1][
cham-1]->setConfigParameters(conf);
201 if (tmb ==
nullptr ||
csc_g->
chamber(detid) ==
nullptr)
continue;
213 LogTrace(
"CSCTriggerPrimitivesBuilder")<<
"CSCTriggerPrimitivesBuilder::build in E:"<<endc<<
" S:"<<
stat<<
" R:"<<
ring;
214 tmb11->
run(wiredc,compdc);
217 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11->
readoutLCTs1b();
218 const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11->
readoutLCTs1a();
219 std::vector<CSCALCTDigi> alctV1a, alctV = tmb11->
alct->readoutALCTs();
220 const std::vector<CSCCLCTDigi>& clctV = tmb11->
clct->readoutCLCTs();
221 const std::vector<int> preTriggerBXs = tmb11->
clct->preTriggerBXs();
222 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11->
clct->preTriggerDigis();
223 const std::vector<CSCCLCTDigi>& clctV1a = tmb11->
clct1a->readoutCLCTs();
224 const std::vector<int> preTriggerBXs1a = tmb11->
clct1a->preTriggerBXs();
225 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11->
clct1a->preTriggerDigis();
229 std::vector<CSCALCTDigi> tmpV(alctV);
231 for (
unsigned int al=0; al < tmpV.size(); al++)
233 if (tmpV[al].getKeyWG()<=15) alctV1a.push_back(tmpV[al]);
234 if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
237 LogTrace(
"CSCTriggerPrimitivesBuilder")<<
"CSCTriggerPrimitivesBuilder:: a="<<alctV.size()<<
" c="<<clctV.size()<<
" l="<<lctV.size()
238 <<
" 1a: a="<<alctV1a.size()<<
" c="<<clctV1a.size()<<
" l="<<lctV1a.size();
242 if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
244 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
248 put(lctV, oc_lct, detid,
" ME1b LCT digi");
249 put(alctV, oc_alct, detid,
" ME1b ALCT digi");
250 put(clctV, oc_clct, detid,
" ME1b CLCT digi");
251 put(pretriggerV, oc_pretrigger, detid,
" ME1b CLCT pre-trigger digi");
252 put(preTriggerBXs, oc_pretrig, detid,
" ME1b CLCT pre-trigger BX");
260 if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
261 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
265 put(lctV1a, oc_lct, detid1a,
" ME1a LCT digi");
266 put(alctV1a, oc_alct, detid1a,
" ME1a ALCT digi");
267 put(clctV1a, oc_clct, detid1a,
" ME1a CLCT digi");
268 put(pretriggerV1a, oc_pretrigger, detid1a,
" ME1a CLCT pre-trigger digi");
269 put(preTriggerBXs1a, oc_pretrig, detid1a,
" ME1a CLCT pre-trigger BX");
279 LogTrace(
"CSCTriggerPrimitivesBuilder")<<
"CSCTriggerPrimitivesBuilder::build in E:"<<endc<<
" S:"<<
stat<<
" R:"<<
ring;
280 tmb11GEM->
run(wiredc, compdc, gemPads);
286 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11GEM->
readoutLCTs1b();
287 const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11GEM->
readoutLCTs1a();
288 std::vector<CSCALCTDigi> alctV1a, alctV = tmb11GEM->
alct->readoutALCTs();
289 const std::vector<CSCCLCTDigi>& clctV = tmb11GEM->
clct->readoutCLCTs();
290 const std::vector<int>& preTriggerBXs = tmb11GEM->
clct->preTriggerBXs();
291 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11GEM->
clct->preTriggerDigis();
292 const std::vector<CSCCLCTDigi>& clctV1a = tmb11GEM->
clct1a->readoutCLCTs();
293 const std::vector<int>& preTriggerBXs1a = tmb11GEM->
clct1a->preTriggerBXs();
294 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11GEM->
clct1a->preTriggerDigis();
295 const std::vector<GEMCoPadDigi>& copads = tmb11GEM->
coPadProcessor->readoutCoPads();
299 std::vector<CSCALCTDigi> tmpV(alctV);
301 for (
unsigned int al=0; al < tmpV.size(); al++)
303 if (tmpV[al].getKeyWG()<=15) alctV1a.push_back(tmpV[al]);
304 if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
310 if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
312 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
316 put(lctV, oc_lct, detid,
" ME1b LCT digi");
317 put(alctV, oc_alct, detid,
" ME1b ALCT digi");
318 put(clctV, oc_clct, detid,
" ME1b CLCT digi");
319 put(pretriggerV, oc_pretrigger, detid,
" ME1b CLCT pre-trigger digi");
320 put(preTriggerBXs, oc_pretrig, detid,
" ME1b CLCT pre-trigger BX");
321 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
328 if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
329 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
333 put(lctV1a, oc_lct, detid1a,
" ME1a LCT digi");
334 put(alctV1a, oc_alct, detid1a,
" ME1a ALCT digi");
335 put(clctV1a, oc_clct, detid1a,
" ME1a CLCT digi");
336 put(pretriggerV1a, oc_pretrigger, detid1a,
" ME1a CLCT pre-trigger digi");
337 put(preTriggerBXs1a, oc_pretrig, detid1a,
" ME1a CLCT pre-trigger BX");
347 tmb21GEM->
run(wiredc, compdc, gemPads);
353 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb21GEM->
readoutLCTs();
354 const std::vector<CSCALCTDigi>& alctV = tmb21GEM->
alct->readoutALCTs();
355 const std::vector<CSCCLCTDigi>& clctV = tmb21GEM->
clct->readoutCLCTs();
356 const std::vector<int>& preTriggerBXs = tmb21GEM->
clct->preTriggerBXs();
357 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb21GEM->
clct->preTriggerDigis();
358 const std::vector<GEMCoPadDigi>& copads = tmb21GEM->
coPadProcessor->readoutCoPads();
360 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
362 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
366 put(lctV, oc_lct, detid,
" ME21 LCT digi");
367 put(alctV, oc_alct, detid,
" ME21 ALCT digi");
368 put(clctV, oc_clct, detid,
" ME21 CLCT digi");
369 put(pretriggerV, oc_pretrigger, detid,
" ME21 CLCT pre-trigger digi");
370 put(preTriggerBXs, oc_pretrig, detid,
" ME21 CLCT pre-trigger BX");
371 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
379 tmb3141->
run(wiredc, compdc);
382 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb3141->
readoutLCTs();
383 const std::vector<CSCALCTDigi>& alctV = tmb3141->
alct->readoutALCTs();
384 const std::vector<CSCCLCTDigi>& clctV = tmb3141->
clct->readoutCLCTs();
385 const std::vector<int>& preTriggerBXs = tmb3141->
clct->preTriggerBXs();
386 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb3141->
clct->preTriggerDigis();
388 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
390 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
394 put(lctV, oc_lct, detid,
" ME21 LCT digi");
395 put(alctV, oc_alct, detid,
" ME21 ALCT digi");
396 put(clctV, oc_clct, detid,
" ME21 CLCT digi");
397 put(pretriggerV, oc_pretrigger, detid,
" ME21 CLCT pre-trigger digi");
398 put(preTriggerBXs, oc_pretrig, detid,
" ME21 CLCT pre-trigger BX");
405 tmb->
run(wiredc,compdc);
408 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->
readoutLCTs();
409 const std::vector<CSCALCTDigi>& alctV = tmb->
alct->readoutALCTs();
410 const std::vector<CSCCLCTDigi>& clctV = tmb->
clct->readoutCLCTs();
411 const std::vector<int>& preTriggerBXs = tmb->
clct->preTriggerBXs();
412 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->
clct->preTriggerDigis();
414 if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
416 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
420 const std::string chamberString(
"ME" + std::to_string(
stat) +
"" + std::to_string(ring) +
" ");
421 put(lctV, oc_lct, detid, chamberString +
" LCT digi");
422 put(alctV, oc_alct, detid, chamberString +
" ALCT digi");
423 put(clctV, oc_clct, detid, chamberString +
" CLCT digi");
424 put(pretriggerV, oc_pretrigger, detid, chamberString +
" CLCT pre-trigger digi");
425 put(preTriggerBXs, oc_pretrig, detid, chamberString +
" CLCT pre-trigger BX");
438 std::vector<csctf::TrackStub>
result;
446 std::vector<csctf::TrackStub> subs1, subs2;
449 result.insert(result.end(), subs1.begin(), subs1.end());
450 result.insert(result.end(), subs2.begin(), subs2.end());
454 std::vector<csctf::TrackStub> sector;
456 result.insert(result.end(), sector.begin(), sector.end());
462 std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
463 for (; itr != result.end(); itr++)
465 oc_sorted_lct.insertDigi(
CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
467 <<
"MPC " << *(itr->getDigi()) <<
" found in ME" 468 << ((itr->endcap() == 1) ?
"+" :
"-") << itr->station() <<
"/" 471 <<
" (sector " << itr->sector()
472 <<
" trig id. " << itr->cscid() <<
")" <<
"\n";
static const int min_station
T getParameter(std::string const &) const
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
void setCSCGeometry(const CSCGeometry *g)
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads) override
static const int max_subsector
static int maxTriggerCscId()
void setGEMGeometry(const GEMGeometry *g)
set CSC and GEM geometries for the matching needs
static int maxTriggerSectorId()
static const int min_endcap
static const int max_station
static int maxStationId()
void setCSCGeometry(const CSCGeometry *g)
static int minTriggerSectorId()
static const int min_subsector
static int ringFromTriggerLabels(int station, int triggerCSCID)
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
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?
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads, const GEMPadDigiClusterCollection *gemPadClusters, CSCALCTDigiCollection &oc_alct, CSCCLCTDigiCollection &oc_clct, CSCCLCTPreTriggerDigiCollection &oc_clctpretrigger, CSCCLCTPreTriggerCollection &oc_pretrig, CSCCorrelatedLCTDigiCollection &oc_lct, CSCCorrelatedLCTDigiCollection &oc_sorted_lct, GEMCoPadDigiCollection &oc_gemcopad)
static const int max_sector
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
~CSCTriggerPrimitivesBuilder()
static const int max_endcap
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
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
std::unique_ptr< CSCCathodeLCTProcessor > clct1a
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
static const int min_sector
short int zendcap() const
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
const CSCGeometry * csc_g
static int minTriggerSubSectorId()
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
void put(const T &, S &, const CSCDetId &, std::string comment)
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
std::unique_ptr< CSCAnodeLCTProcessor > alct
std::unique_ptr< CSCCathodeLCTProcessor > clct
std::unique_ptr< CSCMuonPortCard > m_muonportcard
static int minTriggerCscId()
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
static int maxTriggerSubSectorId()
static const int min_chamber
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads) override