51 <<
"+++ trying to instantiate TMB of illegal CSC id [" 52 <<
" endcap = " << endc <<
" station = " <<
stat <<
" sector = " << sect <<
" subsector = " << subs
53 <<
" chamber = " <<
cham <<
"]; skipping it... +++\n";
61 if (isSLHC_ and ring == 1 and
stat == 1 and runME11Up_ and !
runME11ILT_)
62 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1].reset(
64 else if (isSLHC_ and ring == 1 and
stat == 1 and runME11Up_ and
runME11ILT_)
65 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1].reset(
68 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1].reset(
71 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1].reset(
74 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1].reset(
77 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1].reset(
107 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1]->setConfigParameters(conf);
166 LogTrace(
"CSCTriggerPrimitivesBuilder")
167 <<
"CSCTriggerPrimitivesBuilder::build in E:" << endc <<
" S:" <<
stat <<
" R:" <<
ring;
168 tmb11->
run(wiredc, compdc);
173 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11->
readoutLCTs1b();
174 const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11->
readoutLCTs1a();
175 const std::vector<CSCALCTDigi>& alctV = tmb11->
alctProc->readoutALCTs();
176 const std::vector<CSCCLCTDigi>& clctV = tmb11->
clctProc->readoutCLCTsME1b();
177 const std::vector<int> preTriggerBXs = tmb11->
clctProc->preTriggerBXs();
178 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11->
clctProc->preTriggerDigisME1b();
179 const std::vector<CSCCLCTDigi>& clctV1a = tmb11->
clctProc->readoutCLCTsME1a();
180 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11->
clctProc->preTriggerDigisME1a();
181 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb11->
alctProc->preTriggerDigis();
184 LogTrace(
"CSCTriggerPrimitivesBuilder")
185 <<
"CSCTriggerPrimitivesBuilder:: a=" << alctV.size() <<
" c=" << clctV.size()
186 <<
" l=" << lctV.size() <<
" c=" << clctV1a.size() <<
" l=" << lctV1a.size();
190 if (!(lctV.empty() && alctV.empty() && clctV.empty()) and
infoV > 1) {
191 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " << detid;
195 put(lctV, oc_lct, detid,
" ME1b LCT digi");
196 put(alctV, oc_alct, detid,
" ME1b ALCT digi");
197 put(clctV, oc_clct, detid,
" ME1b CLCT digi");
198 put(pretriggerV, oc_pretrigger, detid,
" ME1b CLCT pre-trigger digi");
199 put(preTriggerBXs, oc_pretrig, detid,
" ME1b CLCT pre-trigger BX");
200 put(alctpretriggerV, oc_alctpretrigger, detid,
" ME1b ALCT pre-trigger digi");
209 if (!(lctV1a.empty() && clctV1a.empty()) and
infoV > 1) {
210 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " << detid1a;
214 put(lctV1a, oc_lct, detid,
" ME1a LCT digi");
215 put(clctV1a, oc_clct, detid,
" ME1a CLCT digi");
216 put(pretriggerV1a, oc_pretrigger, detid,
" ME1a CLCT pre-trigger digi");
226 LogTrace(
"CSCTriggerPrimitivesBuilder")
227 <<
"CSCTriggerPrimitivesBuilder::build in E:" << endc <<
" S:" <<
stat <<
" R:" <<
ring;
228 tmb11GEM->
run(wiredc, compdc, gemPads);
234 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11GEM->
readoutLCTs1b();
235 const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11GEM->
readoutLCTs1a();
236 const std::vector<CSCALCTDigi>& alctV = tmb11GEM->
alctProc->readoutALCTs();
237 const std::vector<CSCCLCTDigi>& clctV = tmb11GEM->
clctProc->readoutCLCTsME1b();
238 const std::vector<int>& preTriggerBXs = tmb11GEM->
clctProc->preTriggerBXs();
239 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11GEM->
clctProc->preTriggerDigisME1b();
240 const std::vector<CSCCLCTDigi>& clctV1a = tmb11GEM->
clctProc->readoutCLCTsME1a();
241 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11GEM->
clctProc->preTriggerDigisME1a();
242 const std::vector<GEMCoPadDigi>& copads = tmb11GEM->
coPadProcessor->readoutCoPads();
243 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb11GEM->
alctProc->preTriggerDigis();
246 if (!(lctV.empty() && alctV.empty() && clctV.empty()) and
infoV > 1) {
247 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " << detid;
251 put(lctV, oc_lct, detid,
" ME1b LCT digi");
252 put(alctV, oc_alct, detid,
" ME1b ALCT digi");
253 put(clctV, oc_clct, detid,
" ME1b CLCT digi");
254 put(pretriggerV, oc_pretrigger, detid,
" ME1b CLCT pre-trigger digi");
255 put(preTriggerBXs, oc_pretrig, detid,
" ME1b CLCT pre-trigger BX");
256 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
257 put(alctpretriggerV, oc_alctpretrigger, detid,
" ME1b ALCT pre-trigger digi");
265 if (!(lctV1a.empty() && clctV1a.empty()) and
infoV > 1) {
266 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " << detid1a;
270 put(lctV1a, oc_lct, detid,
" ME1a LCT digi");
271 put(clctV1a, oc_clct, detid,
" ME1a CLCT digi");
272 put(pretriggerV1a, oc_pretrigger, detid,
" ME1a CLCT pre-trigger digi");
281 tmb21GEM->
run(wiredc, compdc, gemPads);
287 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb21GEM->
readoutLCTs();
288 const std::vector<CSCALCTDigi>& alctV = tmb21GEM->
alctProc->readoutALCTs();
289 const std::vector<CSCCLCTDigi>& clctV = tmb21GEM->
clctProc->readoutCLCTs();
290 const std::vector<int>& preTriggerBXs = tmb21GEM->
clctProc->preTriggerBXs();
291 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb21GEM->
clctProc->preTriggerDigis();
292 const std::vector<GEMCoPadDigi>& copads = tmb21GEM->
coPadProcessor->readoutCoPads();
293 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb21GEM->
alctProc->preTriggerDigis();
295 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
296 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder got results in " << detid;
300 put(lctV, oc_lct, detid,
" ME21 LCT digi");
301 put(alctV, oc_alct, detid,
" ME21 ALCT digi");
302 put(clctV, oc_clct, detid,
" ME21 CLCT digi");
303 put(pretriggerV, oc_pretrigger, detid,
" ME21 CLCT pre-trigger digi");
304 put(preTriggerBXs, oc_pretrig, detid,
" ME21 CLCT pre-trigger BX");
305 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
306 put(alctpretriggerV, oc_alctpretrigger, detid,
" ME21 ALCT pre-trigger digi");
313 utmb->
run(wiredc, compdc);
316 const std::vector<CSCCorrelatedLCTDigi>& lctV = utmb->
readoutLCTs();
317 const std::vector<CSCALCTDigi>& alctV = utmb->
alctProc->readoutALCTs();
318 const std::vector<CSCCLCTDigi>& clctV = utmb->
clctProc->readoutCLCTs();
319 const std::vector<int>& preTriggerBXs = utmb->
clctProc->preTriggerBXs();
320 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = utmb->
clctProc->preTriggerDigis();
321 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = utmb->
alctProc->preTriggerDigis();
323 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
324 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder got results in " << detid;
328 put(lctV, oc_lct, detid,
" LCT digi");
329 put(alctV, oc_alct, detid,
" ALCT digi");
330 put(clctV, oc_clct, detid,
" CLCT digi");
331 put(pretriggerV, oc_pretrigger, detid,
" CLCT pre-trigger digi");
332 put(preTriggerBXs, oc_pretrig, detid,
" CLCT pre-trigger BX");
333 put(alctpretriggerV, oc_alctpretrigger, detid,
" ALCT pre-trigger digi");
339 tmb->
run(wiredc, compdc);
342 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->
readoutLCTs();
343 const std::vector<CSCALCTDigi>& alctV = tmb->
alctProc->readoutALCTs();
344 const std::vector<CSCCLCTDigi>& clctV = tmb->
clctProc->readoutCLCTs();
345 const std::vector<int>& preTriggerBXs = tmb->
clctProc->preTriggerBXs();
346 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->
clctProc->preTriggerDigis();
347 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb->
alctProc->preTriggerDigis();
349 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
350 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder got results in " << detid;
355 put(alctV, oc_alct, detid, tmb->
getCSCName() +
" ALCT digi");
356 put(clctV, oc_clct, detid, tmb->
getCSCName() +
" CLCT digi");
357 put(pretriggerV, oc_pretrigger, detid, tmb->
getCSCName() +
" CLCT pre-trigger digi");
358 put(preTriggerBXs, oc_pretrig, detid, tmb->
getCSCName() +
" CLCT pre-trigger BX");
359 put(alctpretriggerV, oc_alctpretrigger, detid, tmb->
getCSCName() +
" ALCT pre-trigger digi");
372 std::vector<csctf::TrackStub>
result;
378 std::vector<csctf::TrackStub> subs1, subs2;
381 result.insert(result.end(), subs1.begin(), subs1.end());
382 result.insert(result.end(), subs2.begin(), subs2.end());
384 std::vector<csctf::TrackStub> sector;
386 result.insert(result.end(), sector.begin(), sector.end());
392 std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
393 for (; itr != result.end(); itr++) {
394 oc_sorted_lct.insertDigi(
CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
396 LogDebug(
"L1CSCTrigger") <<
"MPC " << *(itr->getDigi()) <<
" found in ME" << ((itr->endcap() == 1) ?
"+" :
"-")
397 << itr->station() <<
"/" <<
CSCDetId(itr->getDetId().rawId()).
ring() <<
"/" 398 <<
CSCDetId(itr->getDetId().rawId()).
chamber() <<
" (sector " << itr->sector()
399 <<
" trig id. " << itr->cscid() <<
")"
static const int min_station
T getParameter(std::string const &) const
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
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
static const int max_station
static int maxStationId()
static int minTriggerSectorId()
static const int min_subsector
static int ringFromTriggerLabels(int station, int triggerCSCID)
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
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 run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override
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::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
std::string getCSCName() const
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
static const int min_sector
short int zendcap() const
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const override
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)
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads, const GEMPadDigiClusterCollection *gemPadClusters, CSCALCTDigiCollection &oc_alct, CSCCLCTDigiCollection &oc_clct, CSCALCTPreTriggerDigiCollection &oc_alctpretrigger, CSCCLCTPreTriggerDigiCollection &oc_clctpretrigger, CSCCLCTPreTriggerCollection &oc_pretrig, CSCCorrelatedLCTDigiCollection &oc_lct, CSCCorrelatedLCTDigiCollection &oc_sorted_lct, GEMCoPadDigiCollection &oc_gemcopad)
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const override
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
void setCSCGeometry(const CSCGeometry *g)
std::unique_ptr< CSCMuonPortCard > m_muonportcard
static int minTriggerCscId()
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
virtual 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
A container for a generic type of digis indexed by some index, implemented with a map<IndexType...