|
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 (T &best, 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 |
|
int | getRoll (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 |
|
|
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 117 of file CSCGEMMotherboard.cc.
References CSCCorrelatedLCTDigi::ALCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCTGEM, 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(), CSCUpgradeMotherboard::getCSCPart(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), getLUT(), CSCCLCTDigi::getPattern(), GEMPadDigi::isValid(), GEMCoPadDigi::isValid(), CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, LogTrace, CSCConstants::MAX_HALF_STRIP_ME1B, ME11, ME1A, ME1B, AlCaHLTBitMon_ParallelJobs::p, GEMCoPadDigi::pad(), listBenchmarks::pattern, promoteALCTGEMpattern_, promoteALCTGEMquality_, promoteCLCTGEMquality_, jets_cff::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, and CSCBaseboard::theTrigChamber.
123 int pattern = 0,
quality = 0, bx = 0, keyStrip = 0, keyWG = 0, bend = 0, valid = 0;
128 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! either ALCT or CLCT not valid, return invalid LCT \n";
177 keyStrip = mymap1[gem2.
pad(2) - 1];
205 keyWG = mymap2[gem2.
roll()];
215 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! wiregroup and strip pair are not crossing each other" 216 <<
" detid "<<
cscId_ <<
" with wiregroup "<< keyWG <<
"keyStrip "<< keyStrip <<
" \n";
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
bool isValid() const
check ALCT validity (1 - valid ALCT)
std::vector< int > get_gem_roll_to_csc_wg(Parity par, int layer=1) const
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
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 353 of file CSCGEMMotherboard.cc.
References CSCALCTDigi::getAccelerator(), CSCCLCTDigi::getPattern(), CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), CSCBaseboard::infoV, cond::time::INVALID, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), or, listBenchmarks::pattern, and CSCBaseboard::theStation.
Referenced by constructLCTsGEM(), and doesWiregroupCrossStrip().
361 return LCT_Quality::NO_CLCT;
365 return LCT_Quality::NO_ALCT;
377 return LCT_Quality::CLCT_LAYER_TRIGGER;
397 return LCT_Quality::MARGINAL_ANODE_CATHODE;
401 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
405 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
408 else if ( a4 && c4) {
411 return LCT_Quality::HQ_ACCEL_ALCT;
419 return LCT_Quality::HQ_PATTERN_2_3;
422 return LCT_Quality::HQ_PATTERN_4_5;
425 return LCT_Quality::HQ_PATTERN_6_7;
428 return LCT_Quality::HQ_PATTERN_8_9;
431 return LCT_Quality::HQ_PATTERN_10;
435 <<
"+++ findQuality: Unexpected CLCT pattern id = " 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 CSCCLCTDigi & |
alct, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
Definition at line 292 of file CSCGEMMotherboard.h.
References funct::abs(), plotBeamSpotDB::first, CSCGEMMotherboardLUT::get_csc_hs_to_gem_pad(), CSCCLCTDigi::getBX(), getBX(), CSCUpgradeMotherboard::getCSCPart(), CSCCLCTDigi::getKeyStrip(), getLUT(), getPad(), CSCCLCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, lumiPlot::lut, CSCConstants::MAX_HALF_STRIP_ME1B, maxDeltaPadL1_, ME1A, or, AlCaHLTBitMon_ParallelJobs::p, edm::second(), and CSCUpgradeMotherboard::theParity.
297 if (not clct.isValid())
return;
302 int keyStrip = clct.getKeyStrip();
306 const int lowPad(mymap[keyStrip].
first);
307 const int highPad(mymap[keyStrip].
second);
310 const matchesBX<T>&
lut = getPads<T>();
313 if (lut.count(clct.getBX())==0)
return;
315 for (
const auto&
p: lut.at(clct.getBX())){
319 if (
std::abs(clct.getBX()-pad_bx)>getMaxDeltaBX<T>())
continue;
322 int padNumber(
getPad(
p.second));
int getBX(const GEMPadDigi &p) const
U second(std::pair< T, U > const &p)
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
Abs< T >::type abs(const T &t)
float getPad(const GEMPadDigi &) const
virtual const CSCGEMMotherboardLUT * getLUT() const =0
enum CSCPart getCSCPart(int keystrip) const