|
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 |
|
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, 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(), CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, LogTrace, ME11, 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;
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()];
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
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 326 of file CSCGEMMotherboard.cc.
References CSCALCTDigi::getAccelerator(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getQuality(), CSCALCTDigi::getQuality(), CSCBaseboard::infoV, cond::time::INVALID, CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), or, listBenchmarks::pattern, and CSCBaseboard::theStation.
Referenced by constructLCTsGEM(), and setGEMGeometry().
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 = " int getQuality() const
return quality of a pattern (number of layers hit!)
bool isValid() const
check ALCT validity (1 - valid ALCT)
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 290 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.
295 if (not clct.isValid())
return;
300 int keyStrip = clct.getKeyStrip();
304 const int lowPad(mymap[keyStrip].
first);
305 const int highPad(mymap[keyStrip].
second);
308 const matchesBX<T>&
lut = getPads<T>();
311 if (lut.count(clct.getBX())==0)
return;
313 for (
const auto&
p: lut.at(clct.getBX())){
317 if (
std::abs(clct.getBX()-pad_bx)>getMaxDeltaBX<T>())
continue;
320 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
void CSCGEMMotherboard::setGEMGeometry |
( |
const GEMGeometry * |
g | ) |
|
|
inline |
set CSC and GEM geometries for the matching needs
Definition at line 65 of file CSCGEMMotherboard.h.
References bestMatchingPad(), 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