48 <<
"+++ trying to instantiate TMB of illegal CSC id [" 49 <<
" endcap = " << endc <<
" station = " <<
stat <<
" sector = " << sect <<
" subsector = " << subs
50 <<
" chamber = " <<
cham <<
"]; skipping it... +++\n";
62 if (upgradeGE11
or upgradeGE21)
64 std::make_unique<CSCGEMMotherboard>(endc,
stat, sect, subs,
cham, baseparams);
68 std::make_unique<CSCMotherboard>(endc,
stat, sect, subs,
cham, baseparams);
72 mpc_[endc - 1][
stat - 1][sect - 1] = std::make_unique<CSCMuonPortCard>(endc,
stat, sect, conf);
125 if (tmb ==
nullptr ||
context.cscgeom_->chamber(detid) ==
nullptr)
145 if (upgradeGE11
or upgradeGE21) {
154 tmbGEM->
run(wiredc, compdc, gemClusters,
c);
158 const std::vector<GEMCoPadDigi>& copads = tmbGEM->
clusterProc()->readoutCoPads();
159 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
164 tmb->
run(wiredc, compdc, mbcontext);
170 const std::vector<CSCALCTDigi>& alctV = tmb->
alctProc->readoutALCTs();
171 const std::vector<CSCCLCTDigi>& clctV = tmb->
clctProc->readoutCLCTs();
172 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->
readoutLCTs();
175 const std::vector<int>& preTriggerBXs = tmb->
clctProc->preTriggerBXs();
176 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->
clctProc->preTriggerDigis();
177 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb->
alctProc->preTriggerDigis();
180 const std::vector<CSCShowerDigi>& shower = tmb->
readoutShower();
184 put(alctV, oc_alct, detid, tmb->
getCSCName() +
" ALCT digi");
185 put(clctV, oc_clct, detid, tmb->
getCSCName() +
" CLCT digi");
188 put(preTriggerBXs, oc_pretrig, detid, tmb->
getCSCName() +
" CLCT pre-trigger BX");
189 put(pretriggerV, oc_pretrigger, detid, tmb->
getCSCName() +
" CLCT pre-trigger digi");
190 put(alctpretriggerV, oc_alctpretrigger, detid, tmb->
getCSCName() +
" ALCT pre-trigger digi");
192 put(shower, oc_shower, detid, tmb->
getCSCName() +
"TMB shower");
202 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
203 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder got results in " << detid;
216 auto mpc =
mpc_[endc - 1][
stat - 1][sect - 1].get();
219 mpc->loadLCTs(oc_lct);
225 const auto&
result = mpc->getLCTs();
229 for (
const auto& lct :
result) {
230 oc_sorted_lct.insertDigi(
CSCDetId(lct.getDetId().rawId()), *(lct.getDigi()));
232 LogDebug(
"CSCTriggerPrimitivesBuilder")
233 <<
"MPC " << *(lct.getDigi()) <<
" found in ME" << ((lct.endcap() == 1) ?
"+" :
"-") << lct.station()
235 <<
" (sector " << lct.sector() <<
" trig id. " << lct.cscid() <<
")"
static const int min_station
T getParameter(std::string const &) const
virtual std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
short int zendcap() const
static const int max_subsector
static std::string chamberName(int endcap, int station, int ring, int chamber)
static int maxTriggerCscId()
static int maxTriggerSectorId()
std::unique_ptr< CSCMuonPortCard > mpc_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS]
anodeShower
settings for anode showers (counting CSCWireDigi)
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads, RunContext const &)
static const int min_endcap
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
std::vector< std::string > selectedChambers_
static const int max_station
Log< level::Error, false > LogError
static int maxStationId()
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
static int minTriggerSectorId()
static const int min_subsector
static int ringFromTriggerLabels(int station, int triggerCSCID)
static const int max_chamber
static const int max_sector
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const RunContext &)
~CSCTriggerPrimitivesBuilder()
static const int max_endcap
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
std::string getCSCName() const
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
static const int min_sector
static int minTriggerSubSectorId()
void put(const T &, S &, const CSCDetId &, std::string comment)
bool isInBadChamber(IndexType ichamber) const
Is the chamber with index 'ichamber' flagged as bad?
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
cathodeShower
settings for cathode showers (counting CSCComparatorDigi)
std::vector< CSCShowerDigi > readoutShower() const
static int minTriggerCscId()
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
static int maxTriggerSubSectorId()
std::shared_ptr< GEMClusterProcessor > clusterProc() const
static const int min_chamber
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPadClusters, const BuildContext &context, 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)
A container for a generic type of digis indexed by some index, implemented with a map<IndexType...