|
|
Go to the documentation of this file.
46 <<
"+++ trying to instantiate TMB of illegal CSC id ["
47 <<
" endcap = " << endc <<
" station = " <<
stat <<
" sector = " << sect <<
" subsector = " << subs
48 <<
" chamber = " <<
cham <<
"]; skipping it... +++\n";
60 if (upgradeGE11
or upgradeGE21)
62 std::make_unique<CSCGEMMotherboard>(endc,
stat, sect, subs,
cham, conf);
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);
150 if (upgradeGE11
or upgradeGE21) {
155 tmbGEM->
run(wiredc, compdc, gemClusters);
159 const std::vector<GEMCoPadDigi>& copads = tmbGEM->
clusterProc()->readoutCoPads();
160 put(copads, oc_gemcopad, gemId,
" GEM coincidence pad");
165 tmb->
run(wiredc, compdc);
171 const std::vector<CSCALCTDigi>& alctV = tmb->
alctProc->readoutALCTs();
172 const std::vector<CSCCLCTDigi>& clctV = tmb->
clctProc->readoutCLCTs();
173 const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->
readoutLCTs();
176 const std::vector<int>& preTriggerBXs = tmb->
clctProc->preTriggerBXs();
177 const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->
clctProc->preTriggerDigis();
178 const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb->
alctProc->preTriggerDigis();
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");
197 if (!(alctV.empty() && clctV.empty() && lctV.empty()) and
infoV > 1) {
198 LogTrace(
"L1CSCTrigger") <<
"CSCTriggerPrimitivesBuilder got results in " << detid;
211 auto mpc =
mpc_[endc - 1][
stat - 1][sect - 1].get();
214 mpc->loadLCTs(oc_lct);
220 const auto&
result = mpc->getLCTs();
224 for (
const auto& lct :
result) {
225 oc_sorted_lct.insertDigi(
CSCDetId(lct.getDetId().rawId()), *(lct.getDigi()));
227 LogDebug(
"CSCTriggerPrimitivesBuilder")
228 <<
"MPC " << *(lct.getDigi()) <<
" found in ME" << ((lct.endcap() == 1) ?
"+" :
"-") << lct.station()
230 <<
" (sector " << lct.sector() <<
" trig id. " << lct.cscid() <<
")"
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
static const int max_sector
static int maxStationId()
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
static const int max_endcap
CSCShowerDigi readoutShower() const
static const int max_chamber
void put(const T &, S &, const CSCDetId &, std::string comment)
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
static const int min_subsector
short int zendcap() const
A container for a generic type of digis indexed by some index, implemented with a map<IndexType,...
static const int max_subsector
std::unique_ptr< CSCMuonPortCard > mpc_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS]
anodeShower
settings for anode showers (counting CSCWireDigi)
void setGEMGeometry(const GEMGeometry *g)
static int maxTriggerSectorId()
static int minStationId()
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
void setConfigParameters(const CSCDBL1TPParameters *conf)
void setCSCGeometry(const CSCGeometry *g)
static const int min_sector
~CSCTriggerPrimitivesBuilder()
std::string getCSCName() const
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 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, CSCShowerDigiCollection &oc_shower_anode, GEMCoPadDigiCollection &oc_gemcopad)
static int minTriggerCscId()
static int minTriggerSubSectorId()
const GEMGeometry * gem_g
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
static int minTriggerSectorId()
static int maxTriggerSubSectorId()
static int ringFromTriggerLabels(int station, int triggerCSCID)
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
Log< level::Error, false > LogError
virtual std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads)
static const int min_chamber
const CSCGeometry * csc_g
std::shared_ptr< GEMClusterProcessor > clusterProc() const
static const int min_station
void insertDigi(const IndexType &index, const DigiType &digi)
insert a digi for a given DetUnit
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
T getParameter(std::string const &) const
static int maxTriggerCscId()
static const int min_endcap
static const int max_station
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.