4 unsigned sector,
unsigned subsector,
8 , maxDeltaBXPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXPad"))
9 , maxDeltaBXCoPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXCoPad"))
10 , useOldLCTDataFormat_(tmbParams_.getParameter<
bool>(
"useOldLCTDataFormat"))
11 , promoteALCTGEMpattern_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMpattern"))
12 , promoteALCTGEMquality_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMquality"))
13 , doLCTGhostBustingWithGEMs_(tmbParams_.getParameter<
bool>(
"doLCTGhostBustingWithGEMs"))
52 run(wiredc, compdc, gemPads.get());
60 for (
const auto& ch : superChamber->chambers()) {
61 for (
const auto& roll : ch->etaPartitions()) {
63 auto pads_in_det = gemPads->get(roll_id);
64 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
68 pads_[bx].emplace_back(roll_id.rawId(), *pad);
123 int pattern = 0,
quality = 0, bx = 0, keyStrip = 0, keyWG = 0, bend = 0;
128 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! either ALCT or CLCT not valid, return invalid LCT \n";
173 keyStrip = mymap1[gem2.
pad(2) - 1];
188 keyWG = mymap2[gem2.
roll()];
222 for (
unsigned i=0;
i<mymap.size();
i++) {
224 if ((
i < 10)
or (
i > 15))
continue;
225 if ((mymap[
i].
first <= roll) and (roll <= mymap[
i].
second))
return true;
253 return p.second.roll();
269 return 0.5*(p.
pad(1) + p.
pad(2));
286 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------" << std::endl;
287 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger pads: " << std::endl;
289 for (
int bx = bx_start; bx <= bx_stop; bx++) {
290 const auto& in_pads =
pads_[bx];
291 LogTrace(
"CSCGEMMotherboard") <<
"N(pads) BX " << bx <<
" : " << in_pads.size() << std::endl;
293 for (
const auto& pad : in_pads){
294 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
295 const auto& roll_id(
GEMDetId(pad.first));
298 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
300 LogTrace(
"CSCGEMMotherboard") << std::endl;
308 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------" << std::endl;
309 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger coincidence pads: " << std::endl;
311 for (
int bx = bx_start; bx <= bx_stop; bx++) {
312 const auto& in_pads =
coPads_[bx];
313 LogTrace(
"CSCGEMMotherboard") <<
"N(copads) BX " << bx <<
" : " << in_pads.size() << std::endl;
315 for (
const auto& pad : in_pads){
316 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
317 const auto& roll_id(
GEMDetId(pad.first));
320 else LogTrace(
"CSCGEMMotherboard") << std::endl;
334 return LCT_Quality::NO_CLCT;
338 return LCT_Quality::NO_ALCT;
350 return LCT_Quality::CLCT_LAYER_TRIGGER;
370 return LCT_Quality::MARGINAL_ANODE_CATHODE;
374 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
378 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
381 else if ( a4 && c4) {
384 return LCT_Quality::HQ_ACCEL_ALCT;
392 return LCT_Quality::HQ_PATTERN_2_3;
395 return LCT_Quality::HQ_PATTERN_4_5;
398 return LCT_Quality::HQ_PATTERN_6_7;
401 return LCT_Quality::HQ_PATTERN_8_9;
404 return LCT_Quality::HQ_PATTERN_10;
408 <<
"+++ findQuality: Unexpected CLCT pattern id = " 420 template <>
const matchesBX<GEMPadDigi>&
421 CSCGEMMotherboard::getPads<GEMPadDigi>()
const 426 template <>
const matchesBX<GEMCoPadDigi>&
427 CSCGEMMotherboard::getPads<GEMCoPadDigi>()
const 433 int CSCGEMMotherboard::getMaxDeltaBX<GEMPadDigi>()
const 439 int CSCGEMMotherboard::getMaxDeltaBX<GEMCoPadDigi>()
const 445 int CSCGEMMotherboard::getLctTrigEnable<CSCALCTDigi>()
const 451 int CSCGEMMotherboard::getLctTrigEnable<CSCCLCTDigi>()
const int getQuality() const
return quality of a pattern (number of layers hit!)
void retrieveGEMPads(const GEMPadDigiCollection *pads, unsigned id)
T getParameter(std::string const &) const
match< GEMCoPadDigi > GEMCoPadDigiId
unsigned int clct_trig_enable
std::unique_ptr< CSCUpgradeMotherboardLUTGenerator > generator_
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
const unsigned theTrigChamber
bool isValid() const
check ALCT validity (1 - valid ALCT)
GEMCoPadDigiIdsBX coPads_
constexpr uint32_t rawId() const
get the raw id
std::vector< int > get_gem_roll_to_csc_wg(Parity par, int layer=1) const
int getBX(const GEMPadDigi &p) const
edm::ParameterSet tmbParams_
std::vector< GEMCoPadDigi > gemCoPadV
int getBend() const
return bend
bool promoteALCTGEMpattern_
U second(std::pair< T, U > const &p)
bool promoteALCTGEMquality_
match< GEMPadDigi > GEMPadDigiId
bool promoteCLCTGEMquality_
const unsigned theStation
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)=0
unsigned int findQualityGEM(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
virtual std::vector< std::pair< int, int > > get_csc_hs_to_gem_pad(Parity par, enum CSCPart) const =0
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
void printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart)
unsigned int encodePattern(const int clctPattern) const
bool isValid() const
check CLCT validity (1 - valid CLCT)
int getRoll(const GEMPadDigiId &p) const
bool isGEMDetId(unsigned int) const
const GEMSuperChamber * superChamber(GEMDetId id) const
int getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
bool isPadInOverlap(int roll) const
float getPad(const GEMPadDigi &) const
virtual std::vector< int > get_gem_pad_to_csc_hs(Parity par, enum CSCPart) const =0
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const
int getQuality() const
return quality of a pattern
int getAccelerator() const
int getPattern() const
return pattern
MuonDigiCollection< GEMDetId, GEMPadDigi > GEMPadDigiCollection
GEMPadDigi second() const
unsigned int alct_trig_enable
virtual const CSCGEMMotherboardLUT * getLUT() const =0
~CSCGEMMotherboard() override
const GEMGeometry * gem_g
int getKeyWG() const
return key wire group
void printGEMTriggerPads(int bx_start, int bx_stop, enum CSCPart)
std::vector< std::pair< int, int > > get_csc_wg_to_gem_roll(Parity par, int layer=1) const
enum CSCPart getCSCPart(int keystrip) const