46 <<
"+++ trying to instantiate TMB of illegal CSC id ["
47 <<
" endcap = " << endc <<
" station = " <<
stat <<
" sector = " << sect <<
" subsector = " << subs
48 <<
" chamber = " <<
cham <<
"]; skipping it... +++\n";
55 const bool upgrade = runPhase2_ and ring == 1;
56 const bool upgradeGE11 = upgrade and
stat == 1 and runME11Up_ and
runME11ILT_;
57 const bool upgradeGE21 = upgrade and stat == 2 and runME21Up_ and
runME21ILT_;
60 if (upgradeGE11
or upgradeGE21)
61 tmb_[endc - 1][stat - 1][sect - 1][subs - 1][
cham - 1] =
62 std::make_unique<CSCGEMMotherboard>(endc,
stat, sect, subs,
cham, conf);
65 tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1] =
66 std::make_unique<CSCMotherboard>(endc,
stat, sect, subs,
cham, conf);
70 mpc_[endc - 1][
stat - 1][sect - 1] = std::make_unique<CSCMuonPortCard>(endc,
stat, sect, conf);
90 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1]->setConfigParameters(conf);
106 tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1]->setESLookupTables(conf);
121 if (
tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1]->
id().isME11())
137 if (
tmb_[endc - 1][
stat - 1][sect - 1][subs - 1][
cham - 1]->
id().isME21())
194 const bool upgrade =
runPhase2_ and ring == 1;
199 if (upgradeGE11
or upgradeGE21) {
204 tmbGEM->
run(wiredc, compdc, gemClusters);
208 const std::vector<GEMCoPadDigi>& copads = tmbGEM->
clusterProc()->readoutCoPads();
209 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
214 tmb->
run(wiredc, compdc);
220 const std::vector<CSCALCTDigi>& alctV = tmb->
alctProc->readoutALCTs();
221 const std::vector<CSCCLCTDigi>& clctV = tmb->
clctProc->readoutCLCTs();
222 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->
readoutLCTs();
225 const std::vector<int>& preTriggerBXs = tmb->
clctProc->preTriggerBXs();
226 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->
clctProc->preTriggerDigis();
227 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb->
alctProc->preTriggerDigis();
234 put(alctV, oc_alct, detid, tmb->
getCSCName() +
" ALCT digi");
235 put(clctV, oc_clct, detid, tmb->
getCSCName() +
" CLCT digi");
238 put(preTriggerBXs, oc_pretrig, detid, tmb->
getCSCName() +
" CLCT pre-trigger BX");
239 put(pretriggerV, oc_pretrigger, detid, tmb->
getCSCName() +
" CLCT pre-trigger digi");
240 put(alctpretriggerV, oc_alctpretrigger, detid, tmb->
getCSCName() +
" ALCT pre-trigger digi");
245 oc_shower_anode.
insertDigi(detid, anodeShower);
247 oc_shower_cathode.
insertDigi(detid, cathodeShower);
249 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
250 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder got results in " << detid;
263 auto mpc =
mpc_[endc - 1][
stat - 1][sect - 1].get();
266 mpc->loadLCTs(oc_lct);
272 const auto&
result = mpc->getLCTs();
276 for (
const auto& lct :
result) {
277 oc_sorted_lct.insertDigi(
CSCDetId(lct.getDetId().rawId()), *(lct.getDigi()));
279 LogDebug(
"CSCTriggerPrimitivesBuilder")
280 <<
"MPC " << *(lct.getDigi()) <<
" found in ME" << ((lct.endcap() == 1) ?
"+" :
"-") << lct.station()
281 <<
"/" <<
CSCDetId(lct.getDetId().rawId()).
ring() <<
"/" <<
CSCDetId(lct.getDetId().rawId()).chamber()
282 <<
" (sector " << lct.sector() <<
" trig id. " << lct.cscid() <<
")"
static const int min_station
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, 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, CSCShowerDigiCollection &oc_shower_anode, CSCShowerDigiCollection &oc_shower_cathode, CSCShowerDigiCollection &oc_shower, GEMCoPadDigiCollection &oc_gemcopad)
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
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
static const int max_subsector
static int maxTriggerCscId()
void setGEMGeometry(const GEMGeometry *g)
static int maxTriggerSectorId()
std::unique_ptr< CSCMuonPortCard > mpc_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS]
bool isValid() const
data
static const int min_endcap
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
void insertDigi(const IndexType &index, const DigiType &digi)
insert a digi for a given DetUnit
static const int max_station
Log< level::Error, false > LogError
std::shared_ptr< GEMClusterProcessor > clusterProc() const
static int maxStationId()
static int minTriggerSectorId()
static const int min_subsector
static int ringFromTriggerLabels(int station, int triggerCSCID)
const GEMGeometry * gem_g
CSCShowerDigi readoutShower() const
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
~CSCTriggerPrimitivesBuilder()
static const int max_endcap
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
static int minStationId()
void setESLookupTables(const CSCL1TPLookupTableCCLUT *conf)
std::string getCSCName() 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.
T getParameter(std::string const &) const
void put(const T &, S &, const CSCDetId &, std::string comment)
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads)
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
void setCSCGeometry(const CSCGeometry *g)
static int minTriggerCscId()
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
A container for a generic type of digis indexed by some index, implemented with a map<IndexType...