60 <<
"+++ trying to instantiate TMB of illegal CSC id [" 61 <<
" endcap = " << endc <<
" station = " <<
stat 62 <<
" sector = " << sect <<
" subsector = " << subs
63 <<
" chamber = " <<
cham <<
"]; skipping it... +++\n";
73 else if (isSLHC_ and ring == 1 and
stat==1 and runME11Up_ and
runME11ILT_)
119 tmb_[endc-1][
stat-1][sect-1][subs-1][
cham-1]->setConfigParameters(conf);
169 if (tmb ==
nullptr ||
csc_g->
chamber(detid) ==
nullptr)
continue;
182 LogTrace(
"CSCTriggerPrimitivesBuilder")<<
"CSCTriggerPrimitivesBuilder::build in E:"<<endc<<
" S:"<<
stat<<
" R:"<<
ring;
183 tmb11->
run(wiredc,compdc);
188 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11->
readoutLCTs1b();
189 const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11->
readoutLCTs1a();
190 const std::vector<CSCALCTDigi>& alctV = tmb11->
alctProc->readoutALCTs();
191 const std::vector<CSCCLCTDigi>& clctV = tmb11->
clctProc->readoutCLCTsME1b();
192 const std::vector<int> preTriggerBXs = tmb11->
clctProc->preTriggerBXs();
193 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11->
clctProc->preTriggerDigisME1b();
194 const std::vector<CSCCLCTDigi>& clctV1a = tmb11->
clctProc->readoutCLCTsME1a();
195 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11->
clctProc->preTriggerDigisME1a();
198 LogTrace(
"CSCTriggerPrimitivesBuilder")<<
"CSCTriggerPrimitivesBuilder:: a="<<alctV.size()<<
" c="<<clctV.size()<<
" l="<<lctV.size()
199 <<
" c="<<clctV1a.size()<<
" l="<<lctV1a.size();
203 if (!(lctV.empty()&&alctV.empty()&&clctV.empty()) and
infoV > 1) {
205 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
209 put(lctV, oc_lct, detid,
" ME1b LCT digi");
210 put(alctV, oc_alct, detid,
" ME1b ALCT digi");
211 put(clctV, oc_clct, detid,
" ME1b CLCT digi");
212 put(pretriggerV, oc_pretrigger, detid,
" ME1b CLCT pre-trigger digi");
213 put(preTriggerBXs, oc_pretrig, detid,
" ME1b CLCT pre-trigger BX");
221 if (!(lctV1a.empty() && clctV1a.empty()) and
infoV > 1){
222 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
226 put(lctV1a, oc_lct, detid,
" ME1a LCT digi");
227 put(clctV1a, oc_clct, detid,
" ME1a CLCT digi");
228 put(pretriggerV1a, oc_pretrigger, detid,
" ME1a CLCT pre-trigger digi");
239 LogTrace(
"CSCTriggerPrimitivesBuilder")<<
"CSCTriggerPrimitivesBuilder::build in E:"<<endc<<
" S:"<<
stat<<
" R:"<<
ring;
240 tmb11GEM->
run(wiredc, compdc, gemPads);
246 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11GEM->
readoutLCTs1b();
247 const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11GEM->
readoutLCTs1a();
248 const std::vector<CSCALCTDigi>& alctV = tmb11GEM->
alctProc->readoutALCTs();
249 const std::vector<CSCCLCTDigi>& clctV = tmb11GEM->
clctProc->readoutCLCTsME1b();
250 const std::vector<int>& preTriggerBXs = tmb11GEM->
clctProc->preTriggerBXs();
251 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11GEM->
clctProc->preTriggerDigisME1b();
252 const std::vector<CSCCLCTDigi>& clctV1a = tmb11GEM->
clctProc->readoutCLCTsME1a();
253 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11GEM->
clctProc->preTriggerDigisME1a();
254 const std::vector<GEMCoPadDigi>& copads = tmb11GEM->
coPadProcessor->readoutCoPads();
257 if (!(lctV.empty()&&alctV.empty()&&clctV.empty()) and
infoV > 1) {
259 <<
"CSCTriggerPrimitivesBuilder results in " <<detid;
263 put(lctV, oc_lct, detid,
" ME1b LCT digi");
264 put(alctV, oc_alct, detid,
" ME1b ALCT digi");
265 put(clctV, oc_clct, detid,
" ME1b CLCT digi");
266 put(pretriggerV, oc_pretrigger, detid,
" ME1b CLCT pre-trigger digi");
267 put(preTriggerBXs, oc_pretrig, detid,
" ME1b CLCT pre-trigger BX");
268 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
275 if (!(lctV1a.empty() && clctV1a.empty()) and
infoV > 1){
276 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder results in " <<detid1a;
280 put(lctV1a, oc_lct, detid,
" ME1a LCT digi");
281 put(clctV1a, oc_clct, detid,
" ME1a CLCT digi");
282 put(pretriggerV1a, oc_pretrigger, detid,
" ME1a CLCT pre-trigger digi");
292 tmb21GEM->
run(wiredc, compdc, gemPads);
298 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb21GEM->
readoutLCTs();
299 const std::vector<CSCALCTDigi>& alctV = tmb21GEM->
alctProc->readoutALCTs();
300 const std::vector<CSCCLCTDigi>& clctV = tmb21GEM->
clctProc->readoutCLCTs();
301 const std::vector<int>& preTriggerBXs = tmb21GEM->
clctProc->preTriggerBXs();
302 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb21GEM->
clctProc->preTriggerDigis();
303 const std::vector<GEMCoPadDigi>& copads = tmb21GEM->
coPadProcessor->readoutCoPads();
305 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
307 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
311 put(lctV, oc_lct, detid,
" ME21 LCT digi");
312 put(alctV, oc_alct, detid,
" ME21 ALCT digi");
313 put(clctV, oc_clct, detid,
" ME21 CLCT digi");
314 put(pretriggerV, oc_pretrigger, detid,
" ME21 CLCT pre-trigger digi");
315 put(preTriggerBXs, oc_pretrig, detid,
" ME21 CLCT pre-trigger BX");
316 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
324 utmb->
run(wiredc, compdc);
327 const std::vector<CSCCorrelatedLCTDigi>& lctV = utmb->
readoutLCTs();
328 const std::vector<CSCALCTDigi>& alctV = utmb->
alctProc->readoutALCTs();
329 const std::vector<CSCCLCTDigi>& clctV = utmb->
clctProc->readoutCLCTs();
330 const std::vector<int>& preTriggerBXs = utmb->
clctProc->preTriggerBXs();
331 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = utmb->
clctProc->preTriggerDigis();
333 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
335 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
339 put(lctV, oc_lct, detid,
" LCT digi");
340 put(alctV, oc_alct, detid,
" ALCT digi");
341 put(clctV, oc_clct, detid,
" CLCT digi");
342 put(pretriggerV, oc_pretrigger, detid,
" CLCT pre-trigger digi");
343 put(preTriggerBXs, oc_pretrig, detid,
" CLCT pre-trigger BX");
350 tmb->
run(wiredc,compdc);
353 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->
readoutLCTs();
354 const std::vector<CSCALCTDigi>& alctV = tmb->
alctProc->readoutALCTs();
355 const std::vector<CSCCLCTDigi>& clctV = tmb->
clctProc->readoutCLCTs();
356 const std::vector<int>& preTriggerBXs = tmb->
clctProc->preTriggerBXs();
357 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->
clctProc->preTriggerDigis();
359 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
361 <<
"CSCTriggerPrimitivesBuilder got results in " <<detid;
366 put(alctV, oc_alct, detid, tmb->
getCSCName() +
" ALCT digi");
367 put(clctV, oc_clct, detid, tmb->
getCSCName() +
" CLCT digi");
368 put(pretriggerV, oc_pretrigger, detid, tmb->
getCSCName() +
" CLCT pre-trigger digi");
369 put(preTriggerBXs, oc_pretrig, detid, tmb->
getCSCName() +
" CLCT pre-trigger BX");
382 std::vector<csctf::TrackStub>
result;
390 std::vector<csctf::TrackStub> subs1, subs2;
393 result.insert(result.end(), subs1.begin(), subs1.end());
394 result.insert(result.end(), subs2.begin(), subs2.end());
398 std::vector<csctf::TrackStub> sector;
400 result.insert(result.end(), sector.begin(), sector.end());
406 std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
407 for (; itr != result.end(); itr++)
409 oc_sorted_lct.insertDigi(
CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
412 <<
"MPC " << *(itr->getDigi()) <<
" found in ME" 413 << ((itr->endcap() == 1) ?
"+" :
"-") << itr->station() <<
"/" 416 <<
" (sector " << itr->sector()
417 <<
" trig id. " << itr->cscid() <<
")" <<
"\n";
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 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)
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)
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...