|
template<class S > |
S | bestMatchingPad (const CSCALCTDigi &alct1, const matches< S > &pads, enum CSCPart) const |
|
template<class S > |
S | bestMatchingPad (const CSCCLCTDigi &clct, const matches< S > &pads, enum CSCPart part) const |
|
template<class S > |
S | bestMatchingPad (const CSCALCTDigi &alct1, const CSCCLCTDigi &clct1, const matches< S > &pads, enum CSCPart part) 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 |
|
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 () |
|
template<class S > |
void | intersection (const S &d1, const S &d2, S &result) const |
|
void | setCSCGeometry (const CSCGeometry *g) |
|
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 |
|
std::vector< CSCCorrelatedLCTDigi > | readoutLCTs () const |
|
void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) |
|
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
|
void | setCSCGeometry (const CSCGeometry *g) |
|
virtual | ~CSCMotherboard ()=default |
|
|
template<class T > |
T | bestMatchingPad (const CSCALCTDigi &, const matches< T > &, enum CSCPart) const |
|
template<class T > |
T | bestMatchingPad (const CSCCLCTDigi &, const matches< T > &, enum CSCPart) const |
|
template<class T > |
T | bestMatchingPad (const CSCALCTDigi &, const CSCCLCTDigi &, const matches< T > &, enum CSCPart) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const GEMCoPadDigi &gem, enum CSCPart, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCCLCTDigi &clct, const GEMCoPadDigi &gem, enum CSCPart, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const CSCCLCTDigi &clct, const GEMCoPadDigi &gem, enum CSCPart p, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const CSCCLCTDigi &clct, const GEMPadDigi &gem, enum CSCPart p, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const CSCCLCTDigi &clct, const GEMPadDigi &gem1, const GEMCoPadDigi &gem2, enum CSCPart p, int i) const |
|
template<class T > |
void | correlateLCTsGEM (T &best, T &second, const GEMCoPadDigiIds &coPads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2, enum CSCPart) const |
|
template<class T > |
void | correlateLCTsGEM (const T &best, const T &second, const GEMCoPadDigi &, const GEMCoPadDigi &, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2, enum CSCPart) 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 part) 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, enum CSCPart part, matches< T > &) const |
|
template<class T > |
void | matchingPads (const CSCCLCTDigi &alct, enum CSCPart part, matches< T > &) const |
|
template<class S , class T > |
void | matchingPads (const S &d1, const S &d2, enum CSCPart part, matches< T > &) const |
|
template<class T > |
void | matchingPads (const CSCCLCTDigi &clct1, const CSCALCTDigi &alct1, enum CSCPart part, matches< T > &) const |
|
template<class T > |
void | matchingPads (const CSCCLCTDigi &clct1, const CSCCLCTDigi &clct2, const CSCALCTDigi &alct1, const CSCALCTDigi &alct2, enum CSCPart part, 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 | 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 ptn, const int highPt) const |
|
unsigned int | findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const |
|
CSCALCTDigi | getBXShiftedALCT (const CSCALCTDigi &) const |
|
void | testLCT () |
|
|
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 120 of file CSCGEMMotherboard.cc.
References CSCCorrelatedLCTDigi::ALCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCTGEM, GEMCoPadDigi::bx(), CSCCorrelatedLCTDigi::CLCT2GEM, 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(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), getLUT(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getStripType(), GEMPadDigi::isValid(), GEMCoPadDigi::isValid(), CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, LogTrace, GEMCoPadDigi::pad(), CSCUpgradeMotherboard::par, 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(), and CSCMotherboard::theTrigChamber.
126 int pattern = 0,
quality = 0, bx = 0, keyStrip = 0, keyWG = 0, bend = 0;
131 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! either ALCT or CLCT not valid, return invalid LCT \n";
167 keyStrip = mymap1[gem2.
pad(2) - 1];
181 keyWG = mymap2[gem2.
roll()];
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
const unsigned theTrigChamber
bool isValid() const
check ALCT validity (1 - valid ALCT)
std::vector< int > get_gem_roll_to_csc_wg(Parity par, int layer=1) const
int getStripType() const
return striptype
int getBend() const
return bend
bool promoteALCTGEMpattern_
bool promoteALCTGEMquality_
bool promoteCLCTGEMquality_
unsigned int findQualityGEM(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) 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
unsigned int encodePattern(const int ptn, const int highPt) const
virtual const CSCGEMMotherboardLUT * getLUT() const =0
int getKeyWG() const
return key wire group
unsigned int CSCGEMMotherboard::findQualityGEM |
( |
const CSCALCTDigi & |
aLCT, |
|
|
const CSCCLCTDigi & |
cLCT, |
|
|
int |
gemlayer |
|
) |
| const |
|
protected |
Definition at line 319 of file CSCGEMMotherboard.cc.
References CSCALCTDigi::getAccelerator(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getQuality(), CSCALCTDigi::getQuality(), CSCMotherboard::infoV, cond::time::INVALID, CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), or, listBenchmarks::pattern, and CSCMotherboard::theStation.
Referenced by constructLCTsGEM(), and setGEMGeometry().
327 return LCT_Quality::NO_CLCT;
331 return LCT_Quality::NO_ALCT;
343 return LCT_Quality::CLCT_LAYER_TRIGGER;
363 return LCT_Quality::MARGINAL_ANODE_CATHODE;
367 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
371 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
374 else if ( a4 && c4) {
377 return LCT_Quality::HQ_ACCEL_ALCT;
385 return LCT_Quality::HQ_PATTERN_2_3;
388 return LCT_Quality::HQ_PATTERN_4_5;
391 return LCT_Quality::HQ_PATTERN_6_7;
394 return LCT_Quality::HQ_PATTERN_8_9;
397 return LCT_Quality::HQ_PATTERN_10;
401 <<
"+++ 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)
const unsigned theStation
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
template<class T >
void CSCGEMMotherboard::matchingPads |
( |
const CSCALCTDigi & |
alct, |
|
|
enum CSCPart |
part, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
Definition at line 253 of file CSCGEMMotherboard.h.
References funct::abs(), DEFAULT_MATCHING_VALUE, CSCGEMMotherboardLUT::get_csc_wg_to_gem_roll(), CSCALCTDigi::getBX(), getBX(), CSCALCTDigi::getKeyWG(), getLUT(), getRoll(), isPadInOverlap(), CSCALCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, lumiPlot::lut, ME1A, or, AlCaHLTBitMon_ParallelJobs::p, and CSCUpgradeMotherboard::par.
Referenced by setGEMGeometry().
259 if (not alct.
isValid())
return;
262 std::pair<int,int> alctRoll =
266 const matchesBX<T>&
lut = getPads<T>();
269 if (lut.count(alct.
getBX())==0)
return;
271 for (
const auto&
p: lut.at(alct.
getBX())){
279 if (
std::abs(alct.
getBX()-pad_bx)>getMaxDeltaBX<T>())
continue;
286 padRoll > alctRoll.second)
continue;
289 padRoll < alctRoll.first)
continue;
293 (alctRoll.first > padRoll
or padRoll > alctRoll.second))
continue;
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
bool isPadInOverlap(int roll) const
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
void CSCGEMMotherboard::setGEMGeometry |
( |
const GEMGeometry * |
g | ) |
|
|
inline |
set CSC and GEM geometries for the matching needs
Definition at line 62 of file CSCGEMMotherboard.h.
References CSCMotherboard::alct, bestMatchingPad(), CSCMotherboard::clct, constructLCTsGEM(), correlateLCTsGEM(), findQualityGEM(), g, gem_g, getBX(), getLUT(), getPad(), getRoll(), mps_fire::i, isGEMDetId(), isPadInOverlap(), matchingPads(), AlCaHLTBitMon_ParallelJobs::p, printGEMTriggerCoPads(), printGEMTriggerPads(), retrieveGEMCoPads(), retrieveGEMPads(), edm::second(), and setupGeometry().
Referenced by CSCTriggerPrimitivesBuilder::build().
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 g
const GEMGeometry * gem_g