|
template<class S > |
S | bestMatchingPad (const CSCALCTDigi &alct1, const matches< S > &pads) const |
|
template<class S > |
S | bestMatchingPad (const CSCCLCTDigi &clct, const matches< S > &pads) const |
|
template<class S > |
S | bestMatchingPad (const CSCALCTDigi &alct1, const CSCCLCTDigi &clct1, const matches< S > &pads) const |
|
void | clear () |
|
| CSCGEMMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
| CSCGEMMotherboard () |
|
virtual void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)=0 |
|
void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads) |
|
void | setGEMGeometry (const GEMGeometry *g) |
| set CSC and GEM geometries for the matching needs More...
|
|
| ~CSCGEMMotherboard () override |
|
void | clear () |
|
template<class S > |
bool | compare (const S &p, const S &q) const |
|
| CSCUpgradeMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
| CSCUpgradeMotherboard () |
|
void | debugLUTs () |
|
enum CSCPart | getCSCPart (int keystrip) const |
|
template<class S > |
void | intersection (const S &d1, const S &d2, S &result) const |
|
std::vector< CSCCorrelatedLCTDigi > | readoutLCTs () const override |
|
void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override |
|
void | setupGeometry () |
|
void | sortLCTs (std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const |
|
| ~CSCUpgradeMotherboard () override |
|
void | clear () |
|
| CSCMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
| CSCMotherboard () |
|
std::vector< CSCCorrelatedLCTDigi > | getLCTs () const |
|
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
|
| ~CSCMotherboard () override=default |
|
| CSCBaseboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
| CSCBaseboard () |
|
std::string | getCSCName () const |
|
void | setCSCGeometry (const CSCGeometry *g) |
|
virtual | ~CSCBaseboard ()=default |
|
|
template<class T > |
T | bestMatchingPad (const CSCALCTDigi &, const matches< T > &) const |
|
template<class T > |
T | bestMatchingPad (const CSCCLCTDigi &, const matches< T > &) const |
|
template<class T > |
T | bestMatchingPad (const CSCALCTDigi &, const CSCCLCTDigi &, const matches< T > &) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCCLCTDigi &clct, const GEMCoPadDigi &gem, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const CSCCLCTDigi &clct, const GEMCoPadDigi &gem, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const CSCCLCTDigi &clct, const GEMPadDigi &gem, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const CSCCLCTDigi &clct, const GEMPadDigi &gem1, const GEMCoPadDigi &gem2, int i) const |
|
template<class T > |
void | correlateLCTsGEM (const T &best, const T &second, const GEMCoPadDigiIds &coPads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const |
|
template<class T > |
void | correlateLCTsGEM (const T &best, const T &second, const GEMCoPadDigi &, const GEMCoPadDigi &, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const |
|
virtual bool | doesWiregroupCrossStrip (int key_wg, int key_strip) const |
|
unsigned int | findQualityGEM (const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const |
|
int | getBX (const GEMPadDigi &p) const |
|
int | getBX (const GEMCoPadDigi &p) const |
|
virtual const CSCGEMMotherboardLUT * | getLUT () const =0 |
|
float | getPad (const GEMPadDigi &) const |
|
float | getPad (const GEMCoPadDigi &) const |
|
float | getPad (const CSCCLCTDigi &, enum CSCPart par) const |
|
int | getRoll (const GEMPadDigiId &p) const |
|
int | getRoll (const GEMCoPadDigiId &p) const |
|
std::pair< int, int > | getRolls (const CSCALCTDigi &) const |
|
bool | isGEMDetId (unsigned int) const |
|
bool | isPadInOverlap (int roll) const |
|
template<class T > |
void | matchingPads (const CSCALCTDigi &alct, matches< T > &) const |
|
template<class T > |
void | matchingPads (const CSCCLCTDigi &alct, matches< T > &) const |
|
template<class S , class T > |
void | matchingPads (const S &d1, const S &d2, matches< T > &) const |
|
template<class T > |
void | matchingPads (const CSCCLCTDigi &clct1, const CSCALCTDigi &alct1, matches< T > &) const |
|
template<class T > |
void | matchingPads (const CSCCLCTDigi &clct1, const CSCCLCTDigi &clct2, const CSCALCTDigi &alct1, const CSCALCTDigi &alct2, matches< T > &) const |
|
void | printGEMTriggerCoPads (int bx_start, int bx_stop, enum CSCPart) |
|
void | printGEMTriggerPads (int bx_start, int bx_stop, enum CSCPart) |
|
void | retrieveGEMCoPads () |
|
void | retrieveGEMPads (const GEMPadDigiCollection *pads, unsigned id) |
|
void | setupGeometry () |
|
void | correlateLCTs (const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const |
|
void | setPrefIndex () |
|
void | checkConfigParameters () |
|
CSCCorrelatedLCTDigi | constructLCTs (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const |
|
void | correlateLCTs (const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type) |
|
void | dumpConfigParams () const |
|
unsigned int | encodePattern (const int clctPattern) const |
|
unsigned int | findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const |
|
CSCALCTDigi | getBXShiftedALCT (const CSCALCTDigi &) const |
|
CSCCLCTDigi | getBXShiftedCLCT (const CSCCLCTDigi &) const |
|
|
static bool | sortLCTsByGEMDphi (const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &) |
|
static bool | sortLCTsByQuality (const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &) |
|
enum | LCT_Quality {
INVALID = 0,
NO_CLCT = 1,
NO_ALCT = 2,
CLCT_LAYER_TRIGGER = 3,
LOW_QUALITY = 4,
MARGINAL_ANODE_CATHODE = 5,
HQ_ANODE_MARGINAL_CATHODE = 6,
HQ_CATHODE_MARGINAL_ANODE = 7,
HQ_ACCEL_ALCT = 8,
HQ_RESERVED_1 = 9,
HQ_RESERVED_2 = 10,
HQ_PATTERN_2_3 = 11,
HQ_PATTERN_4_5 = 12,
HQ_PATTERN_6_7 = 13,
HQ_PATTERN_8_9 = 14,
HQ_PATTERN_10 = 15
} |
|
static const unsigned int | def_alct_trig_enable = 0 |
|
static const unsigned int | def_clct_trig_enable = 0 |
|
static const unsigned int | def_match_trig_enable = 1 |
|
static const unsigned int | def_match_trig_window_size = 7 |
|
static const unsigned int | def_mpc_block_me1a = 1 |
|
static const unsigned int | def_tmb_l1a_window_size = 7 |
|
Base class for TMBs for the GEM-CSC integrated local trigger. Inherits from CSCUpgradeMotherboard. Provides common functionality to match ALCT/CLCT to GEM pads or copads. Matching functions are templated so they work both for GEMPadDigi and GEMCoPadDigi
- Author
- Sven Dildick (TAMU)
Definition at line 29 of file CSCGEMMotherboard.h.
Definition at line 100 of file CSCGEMMotherboard.cc.
References CSCCorrelatedLCTDigi::ALCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCTGEM, l1GtPatternGenerator_cfi::bx, GEMCoPadDigi::bx(), CSCCorrelatedLCTDigi::CLCT2GEM, CSCBaseboard::cscId_, doesWiregroupCrossStrip(), CSCMotherboard::encodePattern(), findQualityGEM(), GEMCoPadDigi::first(), CSCGEMMotherboardLUT::get_gem_pad_to_csc_hs(), CSCGEMMotherboardLUT::get_gem_roll_to_csc_wg(), CSCCLCTDigi::getBend(), CSCALCTDigi::getBX(), CSCMotherboard::getBXShiftedALCT(), CSCMotherboard::getBXShiftedCLCT(), CSCUpgradeMotherboard::getCSCPart(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), getLUT(), CSCCLCTDigi::getPattern(), GEMCoPadDigi::isValid(), GEMPadDigi::isValid(), CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, LogTrace, CSCConstants::MAX_HALF_STRIP_ME1B, ME11, ME1A, ME1B, AlCaHLTBitMon_ParallelJobs::p, GEMCoPadDigi::pad(), topSingleLeptonDQM_PU_cfi::pattern, promoteALCTGEMpattern_, promoteALCTGEMquality_, promoteCLCTGEMquality_, qcdUeDQM_cfi::quality, GEMCoPadDigi::roll(), GEMCoPadDigi::second(), CSCCorrelatedLCTDigi::setALCT(), CSCCorrelatedLCTDigi::setBend(), CSCCorrelatedLCTDigi::setBX(), CSCCorrelatedLCTDigi::setBX0(), CSCCorrelatedLCTDigi::setCLCT(), CSCCorrelatedLCTDigi::setCSCID(), CSCCorrelatedLCTDigi::setGEM1(), CSCCorrelatedLCTDigi::setGEM2(), CSCCorrelatedLCTDigi::setMPCLink(), CSCCorrelatedLCTDigi::setPattern(), CSCCorrelatedLCTDigi::setQuality(), CSCCorrelatedLCTDigi::setStrip(), CSCCorrelatedLCTDigi::setSyncErr(), CSCCorrelatedLCTDigi::setTrknmb(), CSCCorrelatedLCTDigi::setType(), CSCCorrelatedLCTDigi::setValid(), CSCCorrelatedLCTDigi::setWireGroup(), CSCUpgradeMotherboard::theParity, CSCBaseboard::theTrigChamber, and validateGeometry_cfg::valid.
110 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! either ALCT or CLCT not valid, return invalid LCT \n";
159 keyStrip = mymap1[gem2.
pad(2) - 1];
186 keyWG = mymap2[gem2.
roll()];
196 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! wiregroup and strip pair are not crossing each other" 197 <<
" detid " <<
cscId_ <<
" with wiregroup " << keyWG <<
"keyStrip " << keyStrip
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
bool isValid() const
check ALCT validity (1 - valid ALCT)
virtual bool doesWiregroupCrossStrip(int key_wg, int key_strip) const
int getBend() const
return bend
bool promoteALCTGEMpattern_
bool promoteALCTGEMquality_
const unsigned theTrigChamber
bool promoteCLCTGEMquality_
unsigned int findQualityGEM(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
std::vector< int > get_gem_roll_to_csc_wg(Parity par) const
unsigned int encodePattern(const int clctPattern) const
bool isValid() const
check CLCT validity (1 - valid CLCT)
int getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
virtual std::vector< int > get_gem_pad_to_csc_hs(Parity par, enum CSCPart) const =0
int getPattern() const
return pattern
GEMPadDigi second() const
virtual const CSCGEMMotherboardLUT * getLUT() const =0
int getKeyWG() const
return key wire group
enum CSCPart getCSCPart(int keystrip) const
unsigned int CSCGEMMotherboard::findQualityGEM |
( |
const CSCALCTDigi & |
aLCT, |
|
|
const CSCCLCTDigi & |
cLCT, |
|
|
int |
gemlayer |
|
) |
| const |
|
protected |
Definition at line 314 of file CSCGEMMotherboard.cc.
References CSCALCTDigi::getAccelerator(), CSCCLCTDigi::getPattern(), CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), CSCBaseboard::infoV, cond::time::INVALID, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), or, topSingleLeptonDQM_PU_cfi::pattern, and CSCBaseboard::theStation.
Referenced by constructLCTsGEM(), and doesWiregroupCrossStrip().
319 return LCT_Quality::NO_CLCT;
323 return LCT_Quality::NO_ALCT;
335 return LCT_Quality::CLCT_LAYER_TRIGGER;
357 return LCT_Quality::MARGINAL_ANODE_CATHODE;
361 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
365 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
370 return LCT_Quality::HQ_ACCEL_ALCT;
378 return LCT_Quality::HQ_PATTERN_2_3;
381 return LCT_Quality::HQ_PATTERN_4_5;
384 return LCT_Quality::HQ_PATTERN_6_7;
387 return LCT_Quality::HQ_PATTERN_8_9;
390 return LCT_Quality::HQ_PATTERN_10;
395 <<
"+++ findQuality: Unexpected CLCT pattern id = " <<
pattern <<
"+++\n";
int getQuality() const
return quality of a pattern (number of layers hit!)
bool isValid() const
check ALCT validity (1 - valid ALCT)
static constexpr TimeType INVALID
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
bool isValid() const
check CLCT validity (1 - valid CLCT)
int getQuality() const
return quality of a pattern
int getAccelerator() const
int getPattern() const
return pattern
const unsigned theStation
template<class T >
void CSCGEMMotherboard::matchingPads |
( |
const CSCALCTDigi & |
alct, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
Definition at line 243 of file CSCGEMMotherboard.h.
References funct::abs(), DEFAULT_MATCHING_VALUE, dumpMFGeometry_cfg::delta, CSCGEMMotherboardLUT::get_csc_wg_to_gem_roll(), CSCALCTDigi::getBX(), getBX(), CSCALCTDigi::getKeyWG(), getLUT(), getRoll(), CSCALCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, or, AlCaHLTBitMon_ParallelJobs::p, GEMDetId::station(), and CSCUpgradeMotherboard::theParity.
Referenced by doesWiregroupCrossStrip().
253 const matchesBX<T>& lut = getPads<T>();
256 if (lut.count(alct.
getBX()) == 0)
259 for (
const auto&
p : lut.at(alct.
getBX())) {
285 (alctRoll.first - delta > padRoll
or padRoll > alctRoll.second))
bool isValid() const
check ALCT validity (1 - valid ALCT)
int getBX(const GEMPadDigi &p) const
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
Abs< T >::type abs(const T &t)
int getRoll(const GEMPadDigiId &p) const
int getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
virtual const CSCGEMMotherboardLUT * getLUT() const =0
int getKeyWG() const
return key wire group
std::vector< std::pair< int, int > > get_csc_wg_to_gem_roll(Parity par, int layer=1) const
template<class T >
void CSCGEMMotherboard::matchingPads |
( |
const CSCCLCTDigi & |
alct, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
Definition at line 292 of file CSCGEMMotherboard.h.
References funct::abs(), dqmdumpme::first, CSCGEMMotherboardLUT::get_csc_hs_to_gem_pad(), CSCCLCTDigi::getBX(), getBX(), CSCUpgradeMotherboard::getCSCPart(), CSCCLCTDigi::getKeyStrip(), getLUT(), getPad(), CSCCLCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, CSCConstants::MAX_HALF_STRIP_ME1B, maxDeltaPadL1_, ME1A, or, AlCaHLTBitMon_ParallelJobs::p, edm::second(), and CSCUpgradeMotherboard::theParity.
295 if (not clct.isValid())
301 int keyStrip = clct.getKeyStrip();
305 const int lowPad(mymap[keyStrip].
first);
306 const int highPad(mymap[keyStrip].
second);
309 const matchesBX<T>& lut = getPads<T>();
312 if (lut.count(clct.getBX()) == 0)
315 for (
const auto&
p : lut.at(clct.getBX())) {
318 if (
std::abs(clct.getBX() - pad_bx) > getMaxDeltaBX<T>())
322 int padNumber(
getPad(
p.second));
int getBX(const GEMPadDigi &p) const
U second(std::pair< T, U > const &p)
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
Abs< T >::type abs(const T &t)
float getPad(const GEMPadDigi &) const
virtual const CSCGEMMotherboardLUT * getLUT() const =0
virtual std::vector< std::pair< int, int > > get_csc_hs_to_gem_pad(Parity par, enum CSCPart) const =0
enum CSCPart getCSCPart(int keystrip) const