|
|
#include <CSCGEMMotherboard.h>
|
void | clear () |
|
| CSCGEMMotherboard () |
|
| CSCGEMMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
std::vector< CSCCorrelatedLCTDigi > | readoutLCTs () const override |
|
void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override |
|
virtual void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads)=0 |
|
virtual void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)=0 |
|
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 () |
|
| CSCUpgradeMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
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 () |
|
| CSCMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
std::vector< CSCCorrelatedLCTDigi > | getLCTs () const |
|
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
|
| ~CSCMotherboard () override=default |
|
| CSCBaseboard () |
|
| CSCBaseboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
std::string | getCSCName () const |
|
void | setCSCGeometry (const CSCGeometry *g) |
|
virtual | ~CSCBaseboard ()=default |
|
|
template<class T > |
T | bestMatchingPad (const CSCALCTDigi &, const CSCCLCTDigi &, const matches< T > &) const |
|
template<class T > |
T | bestMatchingPad (const CSCALCTDigi &, const matches< T > &) const |
|
template<class S > |
S | bestMatchingPad (const CSCALCTDigi &alct1, const CSCCLCTDigi &clct1, const matches< S > &pads) const |
|
template<class S > |
S | bestMatchingPad (const CSCALCTDigi &alct1, const matches< S > &pads) const |
|
template<class T > |
T | bestMatchingPad (const CSCCLCTDigi &, const matches< T > &) const |
|
template<class S > |
S | bestMatchingPad (const CSCCLCTDigi &clct, const matches< S > &pads) 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 |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const |
|
CSCCorrelatedLCTDigi | constructLCTsGEM (const CSCCLCTDigi &clct, const GEMCoPadDigi &gem, int i) const |
|
template<class T > |
void | correlateLCTsGEM (const T &best, const T &second, const GEMCoPadDigi &, const GEMCoPadDigi &, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const |
|
template<class T > |
void | correlateLCTsGEM (const T &best, const T &second, const GEMCoPadDigiIds &coPads, 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 GEMCoPadDigi &p) const |
|
int | getBX (const GEMPadDigi &p) const |
|
virtual const CSCGEMMotherboardLUT * | getLUT () const =0 |
|
float | getPad (const CSCCLCTDigi &, enum CSCPart par) const |
|
float | getPad (const GEMCoPadDigi &) const |
|
float | getPad (const GEMPadDigi &) const |
|
int | getRoll (const GEMCoPadDigiId &p) const |
|
int | getRoll (const GEMPadDigiId &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 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 |
|
template<class S , class T > |
void | matchingPads (const S &d1, const S &d2, matches< T > &) const |
|
int | maxPads () const |
|
int | maxRolls () 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 () |
|
void | checkValid (const CSCCorrelatedLCTDigi &lct) const |
|
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 |
|
void | encodeHighMultiplicityBits (unsigned alctBits) |
|
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 |
|
void | checkConfigParameters (unsigned int &var, const unsigned int var_max, const unsigned int var_def, const std::string &var_str) |
|
|
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.
◆ Default_values
◆ CSCGEMMotherboard() [1/2]
CSCGEMMotherboard::CSCGEMMotherboard |
( |
unsigned |
endcap, |
|
|
unsigned |
station, |
|
|
unsigned |
sector, |
|
|
unsigned |
subsector, |
|
|
unsigned |
chamber, |
|
|
const edm::ParameterSet & |
conf |
|
) |
| |
Definition at line 4 of file CSCGEMMotherboard.cc.
References coPadProcessor, gemId, edm::ParameterSet::getParameter(), maxDeltaPadL1_, maxDeltaPadL2_, DetId::rawId(), relativeConstraints::station, CSCBaseboard::theChamber, CSCUpgradeMotherboard::theParity, CSCBaseboard::theRegion, CSCBaseboard::theStation, and CSCBaseboard::tmbParams_.
◆ CSCGEMMotherboard() [2/2]
CSCGEMMotherboard::CSCGEMMotherboard |
( |
| ) |
|
◆ ~CSCGEMMotherboard()
CSCGEMMotherboard::~CSCGEMMotherboard |
( |
| ) |
|
|
override |
◆ bestMatchingPad() [1/6]
◆ bestMatchingPad() [2/6]
template<class T >
T CSCGEMMotherboard::bestMatchingPad |
( |
const CSCALCTDigi & |
, |
|
|
const matches< T > & |
|
|
) |
| const |
|
protected |
◆ bestMatchingPad() [3/6]
template<class S >
S CSCGEMMotherboard::bestMatchingPad |
( |
const CSCALCTDigi & |
alct1, |
|
|
const CSCCLCTDigi & |
clct1, |
|
|
const matches< S > & |
pads |
|
) |
| const |
|
protected |
Definition at line 430 of file CSCGEMMotherboard.h.
440 float averagePadNumberCSC =
getPad(clct1,
part);
441 float minDeltaPad = 999;
442 for (
const auto&
p : pads) {
447 float averagePadNumberGEM =
getPad(
p.second);
454 if (
std::abs(averagePadNumberCSC - averagePadNumberGEM) < minDeltaPad and
456 minDeltaPad =
std::abs(averagePadNumberCSC - averagePadNumberGEM);
References funct::abs(), dumpMFGeometry_cfg::delta, CSCUpgradeMotherboard::getCSCPart(), CSCCLCTDigi::getKeyStrip(), getPad(), getRoll(), getRolls(), isGEMDetId(), CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), or, AlCaHLTBitMon_ParallelJobs::p, mps_fire::result, and GEMDetId::station().
◆ bestMatchingPad() [4/6]
template<class S >
S CSCGEMMotherboard::bestMatchingPad |
( |
const CSCALCTDigi & |
alct1, |
|
|
const matches< S > & |
pads |
|
) |
| const |
|
protected |
◆ bestMatchingPad() [5/6]
template<class T >
T CSCGEMMotherboard::bestMatchingPad |
( |
const CSCCLCTDigi & |
, |
|
|
const matches< T > & |
|
|
) |
| const |
|
protected |
◆ bestMatchingPad() [6/6]
template<class S >
S CSCGEMMotherboard::bestMatchingPad |
( |
const CSCCLCTDigi & |
clct, |
|
|
const matches< S > & |
pads |
|
) |
| const |
|
protected |
◆ clear()
void CSCGEMMotherboard::clear |
( |
void |
| ) |
|
◆ constructLCTsGEM() [1/5]
◆ constructLCTsGEM() [2/5]
◆ constructLCTsGEM() [3/5]
Definition at line 97 of file CSCGEMMotherboard.cc.
107 edm::LogError(
"CSCGEMCMotherboard") <<
"Warning!!! neither ALCT nor CLCT valid, return invalid LCT";
163 keyStrip = mymap1.at(gem2.
pad(2));
196 keyWG = mymap2.at(gem2.
roll() - 1);
206 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! wiregroup and strip pair are not crossing each other"
207 <<
" detid " <<
cscId_ <<
" with wiregroup " << keyWG <<
"keyStrip " << keyStrip
References CSCCorrelatedLCTDigi::ALCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCTGEM, cms::cuda::assert(), trklet::bend(), GEMCoPadDigi::bx(), simKBmtfDigis_cfi::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(), CSCMotherboard::highMultiplicityBits_, GEMPadDigi::isValid(), GEMCoPadDigi::isValid(), CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, LogTrace, CSCConstants::MAX_HALF_STRIP_ME1B, maxPads(), maxRolls(), ME11, ME1A, ME1B, GEMDetId::minRollId, 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, CSCMotherboard::useHighMultiplicityBits_, and validateGeometry_cfg::valid.
◆ constructLCTsGEM() [4/5]
◆ constructLCTsGEM() [5/5]
◆ correlateLCTsGEM() [1/2]
◆ correlateLCTsGEM() [2/2]
◆ doesWiregroupCrossStrip()
virtual bool CSCGEMMotherboard::doesWiregroupCrossStrip |
( |
int |
key_wg, |
|
|
int |
key_strip |
|
) |
| const |
|
inlineprotectedvirtual |
◆ findQualityGEM()
unsigned int CSCGEMMotherboard::findQualityGEM |
( |
const CSCALCTDigi & |
aLCT, |
|
|
const CSCCLCTDigi & |
cLCT, |
|
|
int |
gemlayer |
|
) |
| const |
|
protected |
Definition at line 332 of file CSCGEMMotherboard.cc.
337 return LCT_Quality::NO_CLCT;
341 return LCT_Quality::NO_ALCT;
353 return LCT_Quality::CLCT_LAYER_TRIGGER;
375 return LCT_Quality::MARGINAL_ANODE_CATHODE;
379 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
383 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
388 return LCT_Quality::HQ_ACCEL_ALCT;
396 return LCT_Quality::HQ_PATTERN_2_3;
399 return LCT_Quality::HQ_PATTERN_4_5;
402 return LCT_Quality::HQ_PATTERN_6_7;
405 return LCT_Quality::HQ_PATTERN_8_9;
408 return LCT_Quality::HQ_PATTERN_10;
413 <<
"+++ findQuality: Unexpected CLCT pattern id = " <<
pattern <<
"+++\n";
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().
◆ getBX() [1/2]
int CSCGEMMotherboard::getBX |
( |
const GEMCoPadDigi & |
p | ) |
const |
|
protected |
◆ getBX() [2/2]
int CSCGEMMotherboard::getBX |
( |
const GEMPadDigi & |
p | ) |
const |
|
protected |
◆ getLctTrigEnable() [1/3]
template<class T >
int CSCGEMMotherboard::getLctTrigEnable |
( |
| ) |
const |
|
private |
◆ getLctTrigEnable() [2/3]
template<>
int CSCGEMMotherboard::getLctTrigEnable |
( |
| ) |
const |
|
private |
◆ getLctTrigEnable() [3/3]
template<>
int CSCGEMMotherboard::getLctTrigEnable |
( |
| ) |
const |
|
private |
◆ getLUT()
◆ getMaxDeltaBX() [1/3]
template<class T >
int CSCGEMMotherboard::getMaxDeltaBX |
( |
| ) |
const |
|
private |
◆ getMaxDeltaBX() [2/3]
template<>
int CSCGEMMotherboard::getMaxDeltaBX |
( |
| ) |
const |
|
private |
◆ getMaxDeltaBX() [3/3]
template<>
int CSCGEMMotherboard::getMaxDeltaBX |
( |
| ) |
const |
|
private |
◆ getPad() [1/3]
◆ getPad() [2/3]
float CSCGEMMotherboard::getPad |
( |
const GEMCoPadDigi & |
p | ) |
const |
|
protected |
◆ getPad() [3/3]
float CSCGEMMotherboard::getPad |
( |
const GEMPadDigi & |
p | ) |
const |
|
protected |
◆ getPads() [1/3]
template<class T >
const matchesBX<T>& CSCGEMMotherboard::getPads |
( |
| ) |
const |
|
private |
◆ getPads() [2/3]
template<>
const matchesBX<GEMPadDigi>& CSCGEMMotherboard::getPads |
( |
| ) |
const |
|
private |
◆ getPads() [3/3]
template<>
const matchesBX<GEMCoPadDigi>& CSCGEMMotherboard::getPads |
( |
| ) |
const |
|
private |
◆ getRoll() [1/2]
◆ getRoll() [2/2]
int CSCGEMMotherboard::getRoll |
( |
const GEMPadDigiId & |
p | ) |
const |
|
protected |
◆ getRolls()
std::pair< int, int > CSCGEMMotherboard::getRolls |
( |
const CSCALCTDigi & |
alct | ) |
const |
|
protected |
◆ isGEMDetId()
bool CSCGEMMotherboard::isGEMDetId |
( |
unsigned int |
p | ) |
const |
|
protected |
◆ isPadInOverlap()
bool CSCGEMMotherboard::isPadInOverlap |
( |
int |
roll | ) |
const |
|
protected |
◆ matchingPads() [1/5]
template<class T >
void CSCGEMMotherboard::matchingPads |
( |
const CSCALCTDigi & |
alct, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
Definition at line 245 of file CSCGEMMotherboard.h.
255 const matchesBX<T>& lut = getPads<T>();
258 if (lut.count(alct.
getBX()) == 0)
261 for (
const auto&
p : lut.at(alct.
getBX())) {
287 (alctRoll.first -
delta > padRoll
or padRoll > alctRoll.second))
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, mps_fire::result, GEMDetId::station(), and CSCUpgradeMotherboard::theParity.
◆ matchingPads() [2/5]
template<class T >
void CSCGEMMotherboard::matchingPads |
( |
const CSCCLCTDigi & |
alct, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
Definition at line 294 of file CSCGEMMotherboard.h.
297 if (not clct.isValid())
303 int keyStrip = clct.getKeyStrip();
307 const int lowPad(mymap[keyStrip].
first);
308 const int highPad(mymap[keyStrip].
second);
311 const matchesBX<T>& lut = getPads<T>();
314 if (lut.count(clct.getBX()) == 0)
317 for (
const auto&
p : lut.at(clct.getBX())) {
320 if (
std::abs(clct.getBX() - pad_bx) > getMaxDeltaBX<T>())
324 int padNumber(
getPad(
p.second));
References funct::abs(), dqmdumpme::first, CSCGEMMotherboardLUT::get_csc_hs_to_gem_pad(), getBX(), CSCCLCTDigi::getBX(), CSCUpgradeMotherboard::getCSCPart(), CSCCLCTDigi::getKeyStrip(), getLUT(), getPad(), CSCCLCTDigi::isValid(), CSCConstants::LCT_CENTRAL_BX, CSCConstants::MAX_HALF_STRIP_ME1B, maxDeltaPadL1_, ME1A, or, AlCaHLTBitMon_ParallelJobs::p, mps_fire::result, edm::second(), and CSCUpgradeMotherboard::theParity.
◆ matchingPads() [3/5]
template<class T >
void CSCGEMMotherboard::matchingPads |
( |
const CSCCLCTDigi & |
clct1, |
|
|
const CSCALCTDigi & |
alct1, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
◆ matchingPads() [4/5]
Definition at line 362 of file CSCGEMMotherboard.h.
367 matches<T> padsClct, padsAlct;
370 matchingPads<CSCCLCTDigi, T>(clct1, clct2, padsClct);
373 matchingPads<CSCALCTDigi, T>(alct1, alct2, padsAlct);
376 result.reserve(padsClct.size() + padsAlct.size());
References begin, end, and mps_fire::result.
◆ matchingPads() [5/5]
template<class S , class T >
void CSCGEMMotherboard::matchingPads |
( |
const S & |
d1, |
|
|
const S & |
d2, |
|
|
matches< T > & |
result |
|
) |
| const |
|
protected |
◆ maxPads()
int CSCGEMMotherboard::maxPads |
( |
| ) |
const |
|
protected |
◆ maxRolls()
int CSCGEMMotherboard::maxRolls |
( |
| ) |
const |
|
protected |
◆ printGEMTriggerCoPads()
void CSCGEMMotherboard::printGEMTriggerCoPads |
( |
int |
bx_start, |
|
|
int |
bx_stop, |
|
|
enum CSCPart |
part |
|
) |
| |
|
protected |
◆ printGEMTriggerPads()
void CSCGEMMotherboard::printGEMTriggerPads |
( |
int |
bx_start, |
|
|
int |
bx_stop, |
|
|
enum CSCPart |
part |
|
) |
| |
|
protected |
◆ readoutLCTs()
◆ retrieveGEMCoPads()
void CSCGEMMotherboard::retrieveGEMCoPads |
( |
| ) |
|
|
protected |
◆ retrieveGEMPads()
◆ run() [1/3]
void CSCUpgradeMotherboard::run |
|
override |
Definition at line 69 of file CSCUpgradeMotherboard.cc.
74 <<
"+++ run() called for non-existing ALCT/CLCT processor! +++ \n";
89 unsigned alctBits =
alctProc->getHighMultiplictyBits();
92 int used_clct_mask[20];
93 for (
int c = 0;
c < 20; ++
c)
94 used_clct_mask[
c] = 0;
98 if (
alctProc->getBestALCT(bx_alct).isValid()) {
104 <<
"========================================================================" << std::endl;
105 LogTrace(
"CSCUpgradeMotherboard") <<
"ALCT-CLCT matching in ME34/1 chamber: " <<
cscId_ << std::endl;
107 <<
"------------------------------------------------------------------------" << std::endl;
108 LogTrace(
"CSCUpgradeMotherboard") <<
"+++ Best ALCT Details: ";
109 alctProc->getBestALCT(bx_alct).print();
110 LogTrace(
"CSCUpgradeMotherboard") <<
"+++ Second ALCT Details: ";
111 alctProc->getSecondALCT(bx_alct).print();
114 <<
"------------------------------------------------------------------------" << std::endl;
115 LogTrace(
"CSCUpgradeMotherboard") <<
"Attempt ALCT-CLCT matching in ME34/13 in bx range: [" << bx_clct_start
116 <<
"," << bx_clct_stop <<
"]" << std::endl;
120 for (
int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++) {
125 if (
clctProc->getBestCLCT(bx_clct).isValid()) {
127 LogTrace(
"CSCUpgradeMotherboard") <<
"++Valid ME21 CLCT: " <<
clctProc->getBestCLCT(bx_clct) << std::endl;
129 int mbx = bx_clct - bx_clct_start;
138 <<
"Successful ALCT-CLCT match in ME21: bx_alct = " << bx_alct <<
"; match window: [" << bx_clct_start
139 <<
"; " << bx_clct_stop <<
"]; bx_clct = " << bx_clct << std::endl;
140 LogTrace(
"CSCUpgradeMotherboard") <<
"+++ Best CLCT Details: ";
141 clctProc->getBestCLCT(bx_clct).print();
142 LogTrace(
"CSCUpgradeMotherboard") <<
"+++ Second CLCT Details: ";
143 clctProc->getSecondCLCT(bx_clct).print();
144 if (
allLCTs(bx_alct, mbx, 0).isValid()) {
145 used_clct_mask[bx_clct] += 1;
198 LogDebug(
"CSCUpgradeMotherboard") <<
"bx " <<
bx <<
" nnLCT:" <<
n <<
" " <<
n << std::endl;
206 LogTrace(
"CSCUpgradeMotherboard") <<
"========================================================================"
208 LogTrace(
"CSCUpgradeMotherboard") <<
"Counting the final LCTs" << std::endl;
209 LogTrace(
"CSCUpgradeMotherboard") <<
"========================================================================"
216 LogTrace(
"CSCUpgradeMotherboard") <<
"LCT " <<
n <<
" " <<
p << std::endl;
◆ run() [2/3]
◆ run() [3/3]
◆ setGEMGeometry()
void CSCGEMMotherboard::setGEMGeometry |
( |
const GEMGeometry * |
g | ) |
|
|
inline |
◆ setupGeometry()
void CSCGEMMotherboard::setupGeometry |
( |
| ) |
|
|
protected |
◆ coPadProcessor
◆ coPads_
◆ doLCTGhostBustingWithGEMs_
bool CSCGEMMotherboard::doLCTGhostBustingWithGEMs_ |
|
protected |
◆ gem_g
◆ gemCoPadV
◆ gemGeometryAvailable
bool CSCGEMMotherboard::gemGeometryAvailable |
|
protected |
◆ gemId
unsigned CSCGEMMotherboard::gemId |
|
protected |
◆ maxDeltaBXCoPad_
int CSCGEMMotherboard::maxDeltaBXCoPad_ |
|
protected |
◆ maxDeltaBXPad_
int CSCGEMMotherboard::maxDeltaBXPad_ |
|
protected |
◆ maxDeltaPadL1_
int CSCGEMMotherboard::maxDeltaPadL1_ |
|
protected |
◆ maxDeltaPadL2_
int CSCGEMMotherboard::maxDeltaPadL2_ |
|
protected |
◆ pads_
◆ promoteALCTGEMpattern_
bool CSCGEMMotherboard::promoteALCTGEMpattern_ |
|
protected |
◆ promoteALCTGEMquality_
bool CSCGEMMotherboard::promoteALCTGEMquality_ |
|
protected |
◆ promoteCLCTGEMquality_
bool CSCGEMMotherboard::promoteCLCTGEMquality_ |
|
protected |
◆ useOldLCTDataFormat_
bool CSCGEMMotherboard::useOldLCTDataFormat_ |
|
protected |
virtual bool doesWiregroupCrossStrip(int key_wg, int key_strip) const
uint16_t getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
bool isPadInOverlap(int roll) const
unsigned int match_trig_window_size
virtual std::vector< int > get_gem_pad_to_csc_hs(Parity par, enum CSCPart) const =0
void checkValid(const CSCCorrelatedLCTDigi &lct) const
const CSCGeometry * cscGeometry_
CSCCorrelatedLCTDigi secondLCT[CSCConstants::MAX_LCT_TBINS]
bool useHighMultiplicityBits_
edm::ParameterSet tmbParams_
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
virtual const CSCGEMMotherboardLUT * getLUT() const =0
const unsigned theStation
void intersection(const S &d1, const S &d2, S &result) const
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const
U second(std::pair< T, U > const &p)
const GEMChamber * chamber(GEMDetId id) const
Return the chamber corresponding to the given id.
bool promoteALCTGEMquality_
bool useOldLCTDataFormat_
GEMCoPadDigiIdsBX coPads_
unsigned int tmb_cross_bx_algo
unsigned int clct_trig_enable
std::vector< CSCCLCTDigi > clctV
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
uint16_t getKeyWG() const
return key wire group
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
void getMatched(std::vector< CSCCorrelatedLCTDigi > &) const
uint16_t getBend() const
return bend
std::vector< CSCALCTDigi > alctV
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const override
void correlateLCTsGEM(const T &best, const T &second, const GEMCoPadDigiIds &coPads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
enum CSCPart getCSCPart(int keystrip) const
uint16_t getKeyStrip(uint16_t n=2) const
bool match_earliest_clct_only
static constexpr TimeType INVALID
unsigned int alctClctOffset_
virtual std::vector< std::pair< int, int > > get_csc_hs_to_gem_pad(Parity par, enum CSCPart) const =0
bool promoteCLCTGEMquality_
uint16_t getQuality() const
return quality of a pattern
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
std::vector< GEMCoPadDigi > gemCoPadV
bool promoteALCTGEMpattern_
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
bool isGEMDetId(unsigned int) const
int getRoll(const GEMPadDigiId &p) const
constexpr int roll() const
std::vector< int > get_gem_roll_to_csc_wg(Parity par) const
bool isValid() const
check CLCT validity (1 - valid CLCT)
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
int pref[CSCConstants::MAX_LCT_TBINS]
GEMPadDigi second() const
std::pair< int, int > getRolls(const CSCALCTDigi &) const
const GEMEtaPartition * etaPartition(GEMDetId id) const
Return the eta partition corresponding to the given id.
void encodeHighMultiplicityBits(unsigned alctBits)
int nEtaPartitions() const
Retunr numbers of eta partitions.
static bool sortLCTsByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
T getParameter(std::string const &) const
unsigned int findQualityGEM(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
std::vector< std::pair< int, int > > get_csc_wg_to_gem_roll(Parity par, int layer=1) const
constexpr uint32_t rawId() const
get the raw id
uint16_t getAccelerator() const
double bend(double r, double rinv, double stripPitch)
unsigned int highMultiplicityBits_
unsigned int alct_trig_enable
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
const unsigned theTrigChamber
static constexpr int32_t minRollId
unsigned int encodePattern(const int clctPattern) const
bool doLCTGhostBustingWithGEMs_
bool isValid() const
check ALCT validity (1 - valid ALCT)
float getPad(const GEMPadDigi &) const
constexpr int station() const
Abs< T >::type abs(const T &t)
unsigned int match_trig_enable
const GEMSuperChamber * superChamber(GEMDetId id) const
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
uint16_t getPattern() const
return pattern
std::unique_ptr< CSCUpgradeMotherboardLUTGenerator > generator_
int getBX(const GEMPadDigi &p) const
static constexpr float d1
const GEMGeometry * gem_g
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