5 unsigned sector,
unsigned subsector,
9 , maxDeltaBXPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXPad"))
10 , maxDeltaBXCoPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXCoPad"))
11 , useOldLCTDataFormat_(tmbParams_.getParameter<
bool>(
"useOldLCTDataFormat"))
12 , promoteALCTGEMpattern_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMpattern"))
13 , promoteALCTGEMquality_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMquality"))
14 , doLCTGhostBustingWithGEMs_(tmbParams_.getParameter<
bool>(
"doLCTGhostBustingWithGEMs"))
51 run(wiredc, compdc, gemPads.get());
59 for (
const auto& ch : superChamber->chambers()) {
60 for (
const auto& roll : ch->etaPartitions()) {
62 auto pads_in_det = gemPads->get(roll_id);
63 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
67 pads_[bx].emplace_back(roll_id.rawId(), *pad);
126 int pattern = 0,
quality = 0, bx = 0, keyStrip = 0, keyWG = 0, bend = 0;
162 keyStrip = mymap1[gem2.
pad(2)];
176 keyWG = mymap2[gem2.
roll()];
210 for (
unsigned i=0;
i<mymap.size();
i++) {
212 if ((
i < 10)
or (
i > 15))
continue;
213 if ((mymap[
i].
first <= roll) and (roll <= mymap[
i].
second))
return true;
241 return p.second.roll();
257 return 0.5*(p.
pad(1) + p.
pad(2));
274 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------" << std::endl;
275 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger pads: " << std::endl;
277 for (
int bx = bx_start; bx <= bx_stop; bx++) {
278 const auto& in_pads =
pads_[bx];
279 LogTrace(
"CSCGEMMotherboard") <<
"N(pads) BX " << bx <<
" : " << in_pads.size() << std::endl;
281 for (
const auto& pad : in_pads){
282 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
283 const auto& roll_id(
GEMDetId(pad.first));
286 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
288 LogTrace(
"CSCGEMMotherboard") << std::endl;
296 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------" << std::endl;
297 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger coincidence pads: " << std::endl;
299 for (
int bx = bx_start; bx <= bx_stop; bx++) {
300 const auto& in_pads =
coPads_[bx];
301 LogTrace(
"CSCGEMMotherboard") <<
"N(copads) BX " << bx <<
" : " << in_pads.size() << std::endl;
303 for (
const auto& pad : in_pads){
304 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
305 const auto& roll_id(
GEMDetId(pad.first));
308 else LogTrace(
"CSCGEMMotherboard") << std::endl;
322 return LCT_Quality::NO_CLCT;
326 return LCT_Quality::NO_ALCT;
338 return LCT_Quality::CLCT_LAYER_TRIGGER;
358 return LCT_Quality::MARGINAL_ANODE_CATHODE;
362 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
366 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
369 else if ( a4 && c4) {
372 return LCT_Quality::HQ_ACCEL_ALCT;
380 return LCT_Quality::HQ_PATTERN_2_3;
383 return LCT_Quality::HQ_PATTERN_4_5;
386 return LCT_Quality::HQ_PATTERN_6_7;
389 return LCT_Quality::HQ_PATTERN_8_9;
392 return LCT_Quality::HQ_PATTERN_10;
396 <<
"+++ findQuality: Unexpected CLCT pattern id = " 408 template <>
const matchesBX<GEMPadDigi>&
409 CSCGEMMotherboard::getPads<GEMPadDigi>()
const 414 template <>
const matchesBX<GEMCoPadDigi>&
415 CSCGEMMotherboard::getPads<GEMCoPadDigi>()
const 421 int CSCGEMMotherboard::getMaxDeltaBX<GEMPadDigi>()
const 427 int CSCGEMMotherboard::getMaxDeltaBX<GEMCoPadDigi>()
const 433 int CSCGEMMotherboard::getLctTrigEnable<CSCALCTDigi>()
const 439 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_
const unsigned theTrigChamber
bool isValid() const
check ALCT validity (1 - valid ALCT)
GEMCoPadDigiIdsBX coPads_
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, enum CSCPart, int i) const
std::vector< int > get_gem_roll_to_csc_wg(Parity par, int layer=1) const
int getBX(const GEMPadDigi &p) const
int getStripType() const
return striptype
std::vector< GEMCoPadDigi > gemCoPadV
int getBend() const
return bend
bool promoteALCTGEMpattern_
uint32_t rawId() const
get the raw id
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)
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
edm::ParameterSet tmbParams_
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 encodePattern(const int ptn, const int highPt) const
unsigned int alct_trig_enable
virtual const CSCGEMMotherboardLUT * getLUT() const =0
std::unique_ptr< CSCAnodeLCTProcessor > alct
std::unique_ptr< CSCCathodeLCTProcessor > clct
~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