CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
CSCGEMMotherboard Class Referenceabstract

#include <CSCGEMMotherboard.h>

Inheritance diagram for CSCGEMMotherboard:
CSCUpgradeMotherboard CSCMotherboard CSCBaseboard CSCGEMMotherboardME11 CSCGEMMotherboardME21

Public Types

enum  Default_values { DEFAULT_MATCHING_VALUE = -99 }
 

Public Member Functions

void clear ()
 
 CSCGEMMotherboard ()
 
 CSCGEMMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf)
 
std::vector< CSCCorrelatedLCTDigireadoutLCTs () const override
 
void run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override
 
virtual void run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads)=0
 
void setGEMGeometry (const GEMGeometry *g)
 set CSC and GEM geometries for the matching needs More...
 
 ~CSCGEMMotherboard () override
 
- Public Member Functions inherited from CSCUpgradeMotherboard
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)
 
enum CSCPart getCSCPart (int keystrip) const
 
template<class S >
void intersection (const S &d1, const S &d2, S &result) const
 
std::vector< CSCCorrelatedLCTDigireadoutLCTs () const override
 
void run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override
 
void sortLCTs (std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
 
 ~CSCUpgradeMotherboard () override
 
- Public Member Functions inherited from CSCMotherboard
void clear ()
 
 CSCMotherboard ()
 
 CSCMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf)
 
std::vector< CSCCorrelatedLCTDigigetLCTs () const
 
void setConfigParameters (const CSCDBL1TPParameters *conf)
 
 ~CSCMotherboard () override=default
 
- Public Member Functions inherited from CSCBaseboard
 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
 

Public Attributes

std::unique_ptr< GEMCoPadProcessorcoPadProcessor
 
- Public Attributes inherited from CSCMotherboard
std::unique_ptr< CSCAnodeLCTProcessoralctProc
 
std::unique_ptr< CSCCathodeLCTProcessorclctProc
 

Protected Types

enum  LCT_QualityRun3 {
  INVALID = 0, CLCT_2GEM = 3, ALCT_2GEM = 4, ALCTCLCT = 5,
  ALCTCLCT_1GEM = 6, ALCTCLCT_2GEM = 7
}
 
- Protected Types inherited from CSCMotherboard
enum  LCT_Quality : unsigned int {
  LCT_Quality::INVALID = 0, LCT_Quality::NO_CLCT = 1, LCT_Quality::NO_ALCT = 2, LCT_Quality::CLCT_LAYER_TRIGGER = 3,
  LCT_Quality::LOW_QUALITY = 4, LCT_Quality::MARGINAL_ANODE_CATHODE = 5, LCT_Quality::HQ_ANODE_MARGINAL_CATHODE = 6, LCT_Quality::HQ_CATHODE_MARGINAL_ANODE = 7,
  LCT_Quality::HQ_ACCEL_ALCT = 8, LCT_Quality::HQ_RESERVED_1 = 9, LCT_Quality::HQ_RESERVED_2 = 10, LCT_Quality::HQ_PATTERN_2_3 = 11,
  LCT_Quality::HQ_PATTERN_4_5 = 12, LCT_Quality::HQ_PATTERN_6_7 = 13, LCT_Quality::HQ_PATTERN_8_9 = 14, LCT_Quality::HQ_PATTERN_10 = 15
}
 
enum  LCT_QualityRun3 : unsigned int { LCT_QualityRun3::INVALID = 0, LCT_QualityRun3::LowQ = 1, LCT_QualityRun3::MedQ = 2, LCT_QualityRun3::HighQ = 3 }
 

Protected Member Functions

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
 
CSCMotherboard::LCT_Quality findQualityGEMv1 (const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
 
LCT_QualityRun3 findQualityGEMv2 (const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
 
int getBX (const GEMCoPadDigi &p) const
 
int getBX (const GEMPadDigi &p) const
 
virtual const CSCGEMMotherboardLUTgetLUT () 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 processGEMClusters (const GEMPadDigiClusterCollection *pads)
 
void processGEMCoPads ()
 
void processGEMPads (const GEMPadDigiCollection *pads)
 
- Protected Member Functions inherited from CSCUpgradeMotherboard
void correlateLCTs (const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
 
void setPrefIndex ()
 
- Protected Member Functions inherited from CSCMotherboard
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
 
void encodeHighMultiplicityBits (unsigned alctBits)
 
unsigned int encodePattern (const int clctPattern) const
 
LCT_Quality findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
 
LCT_QualityRun3 findQualityRun3 (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
 
CSCALCTDigi getBXShiftedALCT (const CSCALCTDigi &) const
 
CSCCLCTDigi getBXShiftedCLCT (const CSCCLCTDigi &) const
 
- Protected Member Functions inherited from CSCBaseboard
void checkConfigParameters (unsigned int &var, const unsigned int var_max, const unsigned int var_def, const std::string &var_str)
 

Protected Attributes

GEMCoPadDigiIdsBX coPads_
 
const GEMGeometrygem_g
 
std::vector< GEMCoPadDigigemCoPadV
 
bool gemGeometryAvailable
 
unsigned gemId
 
int maxDeltaBXCoPad_
 
int maxDeltaBXPad_
 
int maxDeltaPadL1_
 
int maxDeltaPadL2_
 
GEMPadDigiIdsBX pads_
 
bool promoteALCTGEMpattern_
 
bool promoteALCTGEMquality_
 
bool promoteCLCTGEMquality_
 
- Protected Attributes inherited from CSCUpgradeMotherboard
LCTContainer allLCTs
 
bool debug_luts
 
bool debug_matching
 
bool match_earliest_alct_only
 
bool match_earliest_clct_only
 
unsigned int max_lcts
 
int pref [CSCConstants::MAX_LCT_TBINS]
 
Parity theParity
 
unsigned int tmb_cross_bx_algo
 
- Protected Attributes inherited from CSCMotherboard
unsigned int alct_trig_enable
 
std::vector< CSCALCTDigialctV
 
bool clct_to_alct
 
unsigned int clct_trig_enable
 
std::vector< CSCCLCTDigiclctV
 
bool drop_used_alcts
 
bool drop_used_clcts
 
int early_tbins
 
CSCCorrelatedLCTDigi firstLCT [CSCConstants::MAX_LCT_TBINS]
 
unsigned int highMultiplicityBits_
 
unsigned int match_trig_enable
 
unsigned int match_trig_window_size
 
unsigned int mpc_block_me1a
 
std::unique_ptr< LCTQualityControlqualityControl_
 
bool readout_earliest_2
 
CSCCorrelatedLCTDigi secondLCT [CSCConstants::MAX_LCT_TBINS]
 
unsigned int tmb_l1a_window_size
 
bool useHighMultiplicityBits_
 
- Protected Attributes inherited from CSCBaseboard
edm::ParameterSet alctParams_
 
edm::ParameterSet clctParams_
 
edm::ParameterSet commonParams_
 
const CSCChambercscChamber_
 
const CSCGeometrycscGeometry_
 
CSCDetId cscId_
 
bool disableME1a_
 
bool enableAlctPhase2_
 
bool gangedME1a_
 
int infoV
 
bool isME11_
 
bool isME21_
 
bool isME31_
 
bool isME41_
 
bool runCCLUT_
 
bool runME11ILT_
 
bool runME11Up_
 
bool runME21ILT_
 
bool runME21Up_
 
bool runME31Up_
 
bool runME41Up_
 
bool runPhase2_
 
unsigned theChamber
 
std::string theCSCName_
 
const unsigned theEndcap
 
unsigned theRegion
 
unsigned theRing
 
const unsigned theSector
 
const unsigned theStation
 
const unsigned theSubsector
 
const unsigned theTrigChamber
 
edm::ParameterSet tmbParams_
 

Private Member Functions

template<class T >
int getLctTrigEnable () const
 
template<>
int getLctTrigEnable () const
 
template<>
int getLctTrigEnable () const
 
template<class T >
int getMaxDeltaBX () const
 
template<>
int getMaxDeltaBX () const
 
template<>
int getMaxDeltaBX () const
 
template<class T >
const matchesBX< T > & getPads () const
 
template<>
const matchesBX< GEMCoPadDigi > & getPads () const
 
template<>
const matchesBX< GEMPadDigi > & getPads () const
 

Additional Inherited Members

- Static Public Member Functions inherited from CSCUpgradeMotherboard
static bool sortLCTsByGEMDphi (const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
 
static bool sortLCTsByQuality (const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
 
- Static Protected Attributes inherited from CSCMotherboard
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
 

Detailed Description

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.

Member Enumeration Documentation

◆ Default_values

Enumerator
DEFAULT_MATCHING_VALUE 

Definition at line 31 of file CSCGEMMotherboard.h.

31 { DEFAULT_MATCHING_VALUE = -99 };

◆ LCT_QualityRun3

Enumerator
INVALID 
CLCT_2GEM 
ALCT_2GEM 
ALCTCLCT 
ALCTCLCT_1GEM 
ALCTCLCT_2GEM 

Definition at line 187 of file CSCGEMMotherboard.h.

187  {
188  INVALID = 0,
189  CLCT_2GEM = 3,
190  ALCT_2GEM = 4,
191  ALCTCLCT = 5,
192  ALCTCLCT_1GEM = 6,
193  ALCTCLCT_2GEM = 7,
194  };

Constructor & Destructor Documentation

◆ CSCGEMMotherboard() [1/2]

CSCGEMMotherboard::CSCGEMMotherboard ( unsigned  endcap,
unsigned  station,
unsigned  sector,
unsigned  subsector,
unsigned  chamber,
const edm::ParameterSet conf 
)

Definition at line 5 of file CSCGEMMotherboard.cc.

11  : CSCUpgradeMotherboard(endcap, station, sector, subsector, chamber, conf),
12  maxDeltaBXPad_(tmbParams_.getParameter<int>("maxDeltaBXPad")),
13  maxDeltaBXCoPad_(tmbParams_.getParameter<int>("maxDeltaBXCoPad")),
14  promoteALCTGEMpattern_(tmbParams_.getParameter<bool>("promoteALCTGEMpattern")),
15  promoteALCTGEMquality_(tmbParams_.getParameter<bool>("promoteALCTGEMquality")) {
16  // super chamber has layer=0!
18 
19  const edm::ParameterSet coPadParams(station == 1 ? conf.getParameter<edm::ParameterSet>("copadParamGE11")
20  : conf.getParameter<edm::ParameterSet>("copadParamGE21"));
21  coPadProcessor = std::make_unique<GEMCoPadProcessor>(theRegion, theStation, theChamber, coPadParams);
22 
23  maxDeltaPadL1_ = (theParity ? tmbParams_.getParameter<int>("maxDeltaPadL1Even")
24  : tmbParams_.getParameter<int>("maxDeltaPadL1Odd"));
25  maxDeltaPadL2_ = (theParity ? tmbParams_.getParameter<int>("maxDeltaPadL2Even")
26  : tmbParams_.getParameter<int>("maxDeltaPadL2Odd"));
27 }

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 ( )

Definition at line 29 of file CSCGEMMotherboard.cc.

◆ ~CSCGEMMotherboard()

CSCGEMMotherboard::~CSCGEMMotherboard ( )
override

Definition at line 31 of file CSCGEMMotherboard.cc.

31 {}

Member Function Documentation

◆ bestMatchingPad() [1/6]

template<class T >
T CSCGEMMotherboard::bestMatchingPad ( const CSCALCTDigi ,
const CSCCLCTDigi ,
const matches< T > &   
) const
protected

◆ 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 429 of file CSCGEMMotherboard.h.

429  {
430  S result;
431  // no matching pads for invalid stub
432  if (not alct1.isValid() or not clct1.isValid()) {
433  return result;
434  }
435 
436  auto part(getCSCPart(clct1.getKeyStrip()));
437 
438  // return the pad with the smallest bending angle
439  float averagePadNumberCSC = getPad(clct1, part);
440  float minDeltaPad = 999;
441  for (const auto& p : pads) {
442  // protection against corrupted DetIds
443  if (not isGEMDetId(p.first))
444  continue;
445 
446  float averagePadNumberGEM = getPad(p.second);
447 
448  int delta;
449  if (GEMDetId(p.first).station() == 2)
450  delta = 1;
451 
452  // add another safety to make sure that the deltaPad is not larger than max value!!!
453  if (std::abs(averagePadNumberCSC - averagePadNumberGEM) < minDeltaPad and
454  getRolls(alct1).first - delta <= getRoll(p) and getRoll(p) <= getRolls(alct1).second) {
455  minDeltaPad = std::abs(averagePadNumberCSC - averagePadNumberGEM);
456  result = p.second;
457  }
458  }
459  return result;
460 }

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

Definition at line 381 of file CSCGEMMotherboard.h.

381  {
382  S result;
383  // no matching pads for invalid stub
384  if (not alct1.isValid()) {
385  return result;
386  }
387  // return the first one with the same roll number
388  for (const auto& p : pads) {
389  // protection against corrupted DetIds
390  if (not isGEMDetId(p.first))
391  continue;
392 
393  // roll number of pad and ALCT must match
394  if (getRolls(alct1).first <= getRoll(p) and getRoll(p) <= getRolls(alct1).second) {
395  return p.second;
396  }
397  }
398  return result;
399 }

References getRoll(), getRolls(), isGEMDetId(), CSCALCTDigi::isValid(), AlCaHLTBitMon_ParallelJobs::p, and mps_fire::result.

◆ 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

Definition at line 402 of file CSCGEMMotherboard.h.

402  {
403  S result;
404  // no matching pads for invalid stub
405  if (not clct.isValid())
406  return result;
407 
408  auto part(getCSCPart(clct.getKeyStrip()));
409 
410  // return the pad with the smallest bending angle
411  float averagePadNumberCSC = getPad(clct, part);
412  float minDeltaPad = 999;
413  for (const auto& p : pads) {
414  // protection against corrupted DetIds
415  if (not isGEMDetId(p.first))
416  continue;
417 
418  // best pad is closest to CLCT in number of halfstrips
419  float averagePadNumberGEM = getPad(p.second);
420  if (std::abs(averagePadNumberCSC - averagePadNumberGEM) < minDeltaPad) {
421  minDeltaPad = std::abs(averagePadNumberCSC - averagePadNumberGEM);
422  result = p.second;
423  }
424  }
425  return result;
426 }

References funct::abs(), CSCUpgradeMotherboard::getCSCPart(), CSCCLCTDigi::getKeyStrip(), getPad(), isGEMDetId(), CSCCLCTDigi::isValid(), AlCaHLTBitMon_ParallelJobs::p, and mps_fire::result.

◆ clear()

void CSCGEMMotherboard::clear ( void  )

Definition at line 33 of file CSCGEMMotherboard.cc.

33  {
35  gemCoPadV.clear();
36  coPadProcessor->clear();
37  pads_.clear();
38  coPads_.clear();
39 }

References CSCUpgradeMotherboard::clear(), coPadProcessor, coPads_, gemCoPadV, and pads_.

Referenced by CSCGEMMotherboardME11::run(), and CSCGEMMotherboardME21::run().

◆ constructLCTsGEM() [1/5]

CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM ( const CSCALCTDigi alct,
const CSCCLCTDigi clct,
const GEMCoPadDigi gem,
int  i 
) const
protected

Definition at line 103 of file CSCGEMMotherboard.cc.

106  {
107  return constructLCTsGEM(alct, clct, GEMPadDigi(), gem, trknmb);
108 }

References constructLCTsGEM().

◆ constructLCTsGEM() [2/5]

CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM ( const CSCALCTDigi alct,
const CSCCLCTDigi clct,
const GEMPadDigi gem,
int  i 
) const
protected

Definition at line 110 of file CSCGEMMotherboard.cc.

113  {
114  return constructLCTsGEM(alct, clct, gem, GEMCoPadDigi(), trknmb);
115 }

References constructLCTsGEM().

◆ constructLCTsGEM() [3/5]

CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM ( const CSCALCTDigi alct,
const CSCCLCTDigi clct,
const GEMPadDigi gem1,
const GEMCoPadDigi gem2,
int  i 
) const
protected

Definition at line 117 of file CSCGEMMotherboard.cc.

121  {
122  int pattern = 0, quality = 0, bx = 0, keyStrip = 0, keyWG = 0, bend = 0, valid = 0;
123 
124  // make a new LCT
125  CSCCorrelatedLCTDigi thisLCT;
126  if (!alct.isValid() and !clct.isValid()) {
127  edm::LogError("CSCGEMCMotherboard") << "Warning!!! neither ALCT nor CLCT valid, return invalid LCT";
128  return thisLCT;
129  }
130 
131  // Determine the case and assign properties depending on the LCT dataformat (old/new)
132  if (alct.isValid() and clct.isValid() and gem1.isValid() and not gem2.isValid()) {
133  pattern = encodePattern(clct.getPattern());
134  if (runCCLUT_) {
135  quality = static_cast<unsigned int>(findQualityGEMv2(alct, clct, 1));
136  } else {
137  quality = static_cast<unsigned int>(findQualityGEMv1(alct, clct, 1));
138  }
139  bx = alct.getBX();
140  keyStrip = clct.getKeyStrip();
141  keyWG = alct.getKeyWG();
142  bend = clct.getBend();
143  thisLCT.setALCT(getBXShiftedALCT(alct));
144  thisLCT.setCLCT(getBXShiftedCLCT(clct));
145  thisLCT.setGEM1(gem1);
147  valid = doesWiregroupCrossStrip(keyWG, keyStrip) ? 1 : 0;
148  if (runCCLUT_) {
149  thisLCT.setRun3(true);
150  // 4-bit slope value derived with the CCLUT algorithm
151  thisLCT.setSlope(clct.getSlope());
152  thisLCT.setQuartStrip(clct.getQuartStrip());
153  thisLCT.setEighthStrip(clct.getEighthStrip());
154  thisLCT.setRun3Pattern(clct.getRun3Pattern());
155  }
156  } else if (alct.isValid() and clct.isValid() and not gem1.isValid() and gem2.isValid()) {
157  pattern = encodePattern(clct.getPattern());
158  if (runCCLUT_) {
159  quality = static_cast<unsigned int>(findQualityGEMv2(alct, clct, 2));
160  } else {
161  quality = static_cast<unsigned int>(findQualityGEMv1(alct, clct, 2));
162  }
163  bx = alct.getBX();
164  keyStrip = clct.getKeyStrip();
165  keyWG = alct.getKeyWG();
166  bend = clct.getBend();
167  thisLCT.setALCT(getBXShiftedALCT(alct));
168  thisLCT.setCLCT(getBXShiftedCLCT(clct));
169  thisLCT.setGEM1(gem2.first());
170  thisLCT.setGEM2(gem2.second());
172  valid = doesWiregroupCrossStrip(keyWG, keyStrip) ? 1 : 0;
173  if (runCCLUT_) {
174  thisLCT.setRun3(true);
175  // 4-bit slope value derived with the CCLUT algorithm
176  thisLCT.setSlope(clct.getSlope());
177  thisLCT.setQuartStrip(clct.getQuartStrip());
178  thisLCT.setEighthStrip(clct.getEighthStrip());
179  thisLCT.setRun3Pattern(clct.getRun3Pattern());
180  }
181  } else if (alct.isValid() and gem2.isValid() and not clct.isValid()) {
182  //in ME11
183  //ME1b: keyWG >15,
184  //ME1a and ME1b overlap: 10<=keyWG<=15
185  //ME1a: keyWG < 10
186  //in overlap region, firstly try a match in ME1b
187 
188  auto p(getCSCPart(-1)); //use -1 as fake halfstrip, it returns ME11 if station==1 && (ring==1 or ring==4)
189  if (p == CSCPart::ME11) {
190  if (alct.getKeyWG() >= 10)
191  p = CSCPart::ME1B;
192  else
193  p = CSCPart::ME1A;
194  }
195 
196  // min pad number is always 0
197  // max pad number is 191 or 383, depending on the station
198  assert(gem2.pad(1) >= 0);
199  assert(gem2.pad(2) >= 0);
200  assert(gem2.pad(1) < maxPads());
201  assert(gem2.pad(2) < maxPads());
202 
203  const auto& mymap1 = getLUT()->get_gem_pad_to_csc_hs(theParity, p);
204  // GEM pad number is counting from 1
205  // keyStrip from mymap: for ME1b 0-127 and for ME1a 0-95
206  // keyStrip for CLCT: for ME1b 0-127 and for ME1a 128-223
207  keyStrip = mymap1.at(gem2.pad(2));
208  if (p == CSCPart::ME1A and keyStrip <= CSCConstants::MAX_HALF_STRIP_ME1B) {
209  keyStrip += CSCConstants::MAX_HALF_STRIP_ME1B + 1;
210  }
211  keyWG = alct.getKeyWG();
212 
213  if ((not doesWiregroupCrossStrip(keyWG, keyStrip)) and p == CSCPart::ME1B and keyWG <= 15) {
214  //try ME1A as strip and WG do not cross
215  p = CSCPart::ME1A;
216  const auto& mymap2 = getLUT()->get_gem_pad_to_csc_hs(theParity, p);
217  keyStrip = mymap2.at(gem2.pad(2)) + CSCConstants::MAX_HALF_STRIP_ME1B + 1;
218  }
219 
220  pattern = promoteALCTGEMpattern_ ? 10 : 0;
221  quality = promoteALCTGEMquality_ ? 15 : 11;
222  bx = alct.getBX();
223  thisLCT.setALCT(getBXShiftedALCT(alct));
224  thisLCT.setGEM1(gem2.first());
225  thisLCT.setGEM2(gem2.second());
227  valid = true;
228  } else if (clct.isValid() and gem2.isValid() and not alct.isValid()) {
229  // min roll number is always 1
230  // max roll number is 8 or 16, depending on the station
231  assert(gem2.roll() >= GEMDetId::minRollId);
232  assert(gem2.roll() <= maxRolls());
233 
234  const auto& mymap2 = getLUT()->get_gem_roll_to_csc_wg(theParity);
235  pattern = encodePattern(clct.getPattern());
236  quality = promoteCLCTGEMquality_ ? 15 : 11;
237  bx = gem2.bx(1) + CSCConstants::LCT_CENTRAL_BX;
238  keyStrip = clct.getKeyStrip();
239  // choose the corresponding wire-group in the middle of the partition
240  keyWG = mymap2.at(gem2.roll() - 1);
241  bend = clct.getBend();
242  thisLCT.setCLCT(clct);
243  thisLCT.setGEM1(gem2.first());
244  thisLCT.setGEM2(gem2.second());
246  valid = true;
247  if (runCCLUT_) {
248  thisLCT.setRun3(true);
249  // 4-bit slope value derived with the CCLUT algorithm
250  thisLCT.setSlope(clct.getSlope());
251  thisLCT.setQuartStrip(clct.getQuartStrip());
252  thisLCT.setEighthStrip(clct.getEighthStrip());
253  thisLCT.setRun3Pattern(clct.getRun3Pattern());
254  }
255  }
256 
257  if (valid == 0)
258  LogTrace("CSCGEMCMotherboard") << "Warning!!! wiregroup and strip pair are not crossing each other"
259  << " detid " << cscId_ << " with wiregroup " << keyWG << "keyStrip " << keyStrip
260  << " \n";
261 
262  // fill the rest of the properties
263  thisLCT.setTrknmb(trknmb);
264  thisLCT.setValid(valid);
265  thisLCT.setQuality(quality);
266  thisLCT.setWireGroup(keyWG);
267  thisLCT.setStrip(keyStrip);
268  thisLCT.setPattern(pattern);
269  thisLCT.setBend(bend);
270  thisLCT.setBX(bx);
271  thisLCT.setMPCLink(0);
272  thisLCT.setBX0(0);
273  // Not used in Run-2. Will not be assigned in Run-3
274  thisLCT.setSyncErr(0);
275  thisLCT.setCSCID(theTrigChamber);
276  // in Run-3 we plan to denote the presence of exotic signatures in the chamber
278  thisLCT.setHMT(highMultiplicityBits_);
279 
280  // future work: add a section that produces LCTs according
281  // to the new LCT dataformat (not yet defined)
282 
283  // return new LCT
284  return thisLCT;
285 }

References CSCCorrelatedLCTDigi::ALCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCT2GEM, CSCCorrelatedLCTDigi::ALCTCLCTGEM, cms::cuda::assert(), trklet::bend(), l1GtPatternGenerator_cfi::bx, GEMCoPadDigi::bx(), CSCCorrelatedLCTDigi::CLCT2GEM, CSCBaseboard::cscId_, doesWiregroupCrossStrip(), CSCMotherboard::encodePattern(), findQualityGEMv1(), findQualityGEMv2(), 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::getEighthStrip(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), getLUT(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getQuartStrip(), CSCCLCTDigi::getRun3Pattern(), CSCCLCTDigi::getSlope(), CSCMotherboard::highMultiplicityBits_, GEMCoPadDigi::isValid(), GEMPadDigi::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_, quality, GEMCoPadDigi::roll(), CSCBaseboard::runCCLUT_, GEMCoPadDigi::second(), CSCCorrelatedLCTDigi::setALCT(), CSCCorrelatedLCTDigi::setBend(), CSCCorrelatedLCTDigi::setBX(), CSCCorrelatedLCTDigi::setBX0(), CSCCorrelatedLCTDigi::setCLCT(), CSCCorrelatedLCTDigi::setCSCID(), CSCCorrelatedLCTDigi::setEighthStrip(), CSCCorrelatedLCTDigi::setGEM1(), CSCCorrelatedLCTDigi::setGEM2(), CSCCorrelatedLCTDigi::setHMT(), CSCCorrelatedLCTDigi::setMPCLink(), CSCCorrelatedLCTDigi::setPattern(), CSCCorrelatedLCTDigi::setQuality(), CSCCorrelatedLCTDigi::setQuartStrip(), CSCCorrelatedLCTDigi::setRun3(), CSCCorrelatedLCTDigi::setRun3Pattern(), CSCCorrelatedLCTDigi::setSlope(), CSCCorrelatedLCTDigi::setStrip(), CSCCorrelatedLCTDigi::setSyncErr(), CSCCorrelatedLCTDigi::setTrknmb(), CSCCorrelatedLCTDigi::setType(), CSCCorrelatedLCTDigi::setValid(), CSCCorrelatedLCTDigi::setWireGroup(), CSCUpgradeMotherboard::theParity, CSCBaseboard::theTrigChamber, CSCMotherboard::useHighMultiplicityBits_, and RunInfoPI::valid.

◆ constructLCTsGEM() [4/5]

CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM ( const CSCALCTDigi alct,
const GEMCoPadDigi gem,
int  i 
) const
protected

◆ constructLCTsGEM() [5/5]

CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM ( const CSCCLCTDigi clct,
const GEMCoPadDigi gem,
int  i 
) const
protected

Definition at line 97 of file CSCGEMMotherboard.cc.

99  {
100  return constructLCTsGEM(CSCALCTDigi(), clct, GEMPadDigi(), gem, trknmb);
101 }

References constructLCTsGEM().

◆ correlateLCTsGEM() [1/2]

template<class T >
void CSCGEMMotherboard::correlateLCTsGEM ( const T best,
const T second,
const GEMCoPadDigi bestCoPad,
const GEMCoPadDigi secondCoPad,
CSCCorrelatedLCTDigi lct1,
CSCCorrelatedLCTDigi lct2 
) const
protected

Definition at line 490 of file CSCGEMMotherboard.h.

495  {
496  // construct the first LCT from ALCT(CLCT) and a GEM Copad
497  if ((getLctTrigEnable<T>() and bestLCT.isValid()) or (match_trig_enable and bestLCT.isValid())) {
498  lct1 = constructLCTsGEM(bestLCT, bestCoPad, 1);
499  }
500 
501  // construct the second LCT from ALCT(CLCT) and a GEM Copad
502  if ((getLctTrigEnable<T>() and secondLCT.isValid()) or
503  (match_trig_enable and secondLCT.isValid() and secondLCT != bestLCT)) {
504  lct2 = constructLCTsGEM(secondLCT, secondCoPad, 2);
505  }
506 }

References constructLCTsGEM(), CSCCorrelatedLCTDigi::isValid(), CSCMotherboard::match_trig_enable, or, and CSCMotherboard::secondLCT.

◆ correlateLCTsGEM() [2/2]

template<class T >
void CSCGEMMotherboard::correlateLCTsGEM ( const T best,
const T second,
const GEMCoPadDigiIds coPads,
CSCCorrelatedLCTDigi lct1,
CSCCorrelatedLCTDigi lct2 
) const
protected

Definition at line 463 of file CSCGEMMotherboard.h.

467  {
468  T bestLCT = bLCT;
469  T secondLCT = sLCT;
470 
471  // Check which LCTs are valid
472  bool bestValid = bestLCT.isValid();
473  bool secondValid = secondLCT.isValid();
474 
475  // At this point, set both LCTs valid if they are invalid
476  // Duplicate LCTs are taken into account later
477  if (bestValid and !secondValid)
478  secondLCT = bestLCT;
479  if (!bestValid and secondValid)
480  bestLCT = secondLCT;
481 
482  // get best matching copad1
483  const GEMCoPadDigi& bestCoPad = bestMatchingPad<GEMCoPadDigi>(bestLCT, coPads);
484  const GEMCoPadDigi& secondCoPad = bestMatchingPad<GEMCoPadDigi>(secondLCT, coPads);
485 
486  correlateLCTsGEM(bestLCT, secondLCT, bestCoPad, secondCoPad, lct1, lct2);
487 }

References CSCCorrelatedLCTDigi::isValid(), and CSCMotherboard::secondLCT.

Referenced by CSCGEMMotherboardME11::run(), and CSCGEMMotherboardME21::run().

◆ doesWiregroupCrossStrip()

virtual bool CSCGEMMotherboard::doesWiregroupCrossStrip ( int  key_wg,
int  key_strip 
) const
inlineprotectedvirtual

Reimplemented in CSCGEMMotherboardME21, and CSCGEMMotherboardME11.

Definition at line 67 of file CSCGEMMotherboard.h.

67 { return true; }

Referenced by constructLCTsGEM().

◆ findQualityGEMv1()

CSCMotherboard::LCT_Quality CSCGEMMotherboard::findQualityGEMv1 ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT,
int  gemlayer 
) const
protected

Definition at line 379 of file CSCGEMMotherboard.cc.

381  {
382  // Either ALCT or CLCT is invalid
383  if (!(aLCT.isValid()) || !(cLCT.isValid())) {
384  // No CLCT
385  if (aLCT.isValid() && !(cLCT.isValid()))
386  return LCT_Quality::NO_CLCT;
387 
388  // No ALCT
389  else if (!(aLCT.isValid()) && cLCT.isValid())
390  return LCT_Quality::NO_ALCT;
391 
392  // No ALCT and no CLCT
393  else
394  return LCT_Quality::INVALID;
395  }
396  // Both ALCT and CLCT are valid
397  else {
398  const int pattern(cLCT.getPattern());
399 
400  // Layer-trigger in CLCT
401  if (pattern == 1)
403 
404  // Multi-layer pattern in CLCT
405  else {
406  // ALCT quality is the number of layers hit minus 3.
407  bool a4 = false;
408 
409  // Case of ME11 with GEMs: require 4 layers for ALCT
410  if (theStation == 1)
411  a4 = aLCT.getQuality() >= 1;
412 
413  // Case of ME21 with GEMs: require 4 layers for ALCT+GEM
414  if (theStation == 2)
415  a4 = aLCT.getQuality() + gemlayers >= 1;
416 
417  // CLCT quality is the number of layers hit.
418  const bool c4((cLCT.getQuality() >= 4) or (cLCT.getQuality() >= 3 and gemlayers >= 1));
419 
420  // quality = 4; "reserved for low-quality muons in future"
421 
422  // marginal anode and cathode
423  if (!a4 && !c4)
425 
426  // HQ anode, but marginal cathode
427  else if (a4 && !c4)
429 
430  // HQ cathode, but marginal anode
431  else if (!a4 && c4)
433 
434  // HQ muon, but accelerator ALCT
435  else if (a4 && c4) {
436  if (aLCT.getAccelerator())
438 
439  else {
440  // quality = 9; "reserved for HQ muons with future patterns
441  // quality = 10; "reserved for HQ muons with future patterns
442 
443  // High quality muons are determined by their CLCT pattern
444  if (pattern == 2 || pattern == 3)
446 
447  else if (pattern == 4 || pattern == 5)
449 
450  else if (pattern == 6 || pattern == 7)
452 
453  else if (pattern == 8 || pattern == 9)
455 
456  else if (pattern == 10)
458 
459  else {
460  edm::LogWarning("CSCGEMMotherboard")
461  << "findQualityGEMv1: Unexpected CLCT pattern id = " << pattern << " in " << theCSCName_;
462  return LCT_Quality::INVALID;
463  }
464  }
465  }
466  }
467  }
468  return LCT_Quality::INVALID;
469 }

References CSCMotherboard::CLCT_LAYER_TRIGGER, CSCALCTDigi::getAccelerator(), CSCCLCTDigi::getPattern(), CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), CSCMotherboard::HQ_ACCEL_ALCT, CSCMotherboard::HQ_ANODE_MARGINAL_CATHODE, CSCMotherboard::HQ_CATHODE_MARGINAL_ANODE, CSCMotherboard::HQ_PATTERN_10, CSCMotherboard::HQ_PATTERN_2_3, CSCMotherboard::HQ_PATTERN_4_5, CSCMotherboard::HQ_PATTERN_6_7, CSCMotherboard::HQ_PATTERN_8_9, CSCMotherboard::INVALID, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), CSCMotherboard::MARGINAL_ANODE_CATHODE, CSCMotherboard::NO_ALCT, CSCMotherboard::NO_CLCT, or, topSingleLeptonDQM_PU_cfi::pattern, CSCBaseboard::theCSCName_, and CSCBaseboard::theStation.

Referenced by constructLCTsGEM().

◆ findQualityGEMv2()

CSCGEMMotherboard::LCT_QualityRun3 CSCGEMMotherboard::findQualityGEMv2 ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT,
int  gemlayer 
) const
protected

Definition at line 471 of file CSCGEMMotherboard.cc.

473  {
474  // ALCT and CLCT invalid
475  if (!(aLCT.isValid()) and !(cLCT.isValid())) {
477  } else if (!aLCT.isValid() && cLCT.isValid() and gemlayers == 2) {
478  return LCT_QualityRun3::CLCT_2GEM;
479  } else if (aLCT.isValid() && !cLCT.isValid() and gemlayers == 2) {
480  return LCT_QualityRun3::ALCT_2GEM;
481  } else if (aLCT.isValid() && cLCT.isValid()) {
482  if (gemlayers == 0)
483  return LCT_QualityRun3::ALCTCLCT;
484  else if (gemlayers == 1)
485  return LCT_QualityRun3::ALCTCLCT_1GEM;
486  else if (gemlayers == 2)
487  return LCT_QualityRun3::ALCTCLCT_2GEM;
488  }
490 }

References cond::time::INVALID, CSCALCTDigi::isValid(), and CSCCLCTDigi::isValid().

Referenced by constructLCTsGEM().

◆ getBX() [1/2]

int CSCGEMMotherboard::getBX ( const GEMCoPadDigi p) const
protected

Definition at line 306 of file CSCGEMMotherboard.cc.

306 { return p.bx(1); }

References AlCaHLTBitMon_ParallelJobs::p.

◆ getBX() [2/2]

int CSCGEMMotherboard::getBX ( const GEMPadDigi p) const
protected

Definition at line 304 of file CSCGEMMotherboard.cc.

304 { return p.bx(); }

References AlCaHLTBitMon_ParallelJobs::p.

Referenced by matchingPads().

◆ getLctTrigEnable() [1/3]

template<class T >
int CSCGEMMotherboard::getLctTrigEnable ( ) const
private

◆ getLctTrigEnable() [2/3]

template<>
int CSCGEMMotherboard::getLctTrigEnable ( ) const
private

Definition at line 513 of file CSCGEMMotherboard.cc.

513  {
514  return alct_trig_enable;
515 }

References CSCMotherboard::alct_trig_enable.

◆ getLctTrigEnable() [3/3]

template<>
int CSCGEMMotherboard::getLctTrigEnable ( ) const
private

Definition at line 518 of file CSCGEMMotherboard.cc.

518  {
519  return clct_trig_enable;
520 }

References CSCMotherboard::clct_trig_enable.

◆ getLUT()

virtual const CSCGEMMotherboardLUT* CSCGEMMotherboard::getLUT ( ) const
protectedpure virtual

◆ getMaxDeltaBX() [1/3]

template<class T >
int CSCGEMMotherboard::getMaxDeltaBX ( ) const
private

◆ getMaxDeltaBX() [2/3]

template<>
int CSCGEMMotherboard::getMaxDeltaBX ( ) const
private

Definition at line 503 of file CSCGEMMotherboard.cc.

503  {
504  return maxDeltaBXPad_;
505 }

References maxDeltaBXPad_.

◆ getMaxDeltaBX() [3/3]

template<>
int CSCGEMMotherboard::getMaxDeltaBX ( ) const
private

Definition at line 508 of file CSCGEMMotherboard.cc.

508  {
509  return maxDeltaBXCoPad_;
510 }

References maxDeltaBXCoPad_.

◆ getPad() [1/3]

float CSCGEMMotherboard::getPad ( const CSCCLCTDigi clct,
enum CSCPart  par 
) const
protected

Definition at line 324 of file CSCGEMMotherboard.cc.

324  {
325  const auto& mymap = (getLUT()->get_csc_hs_to_gem_pad(theParity, part));
326  int keyStrip = clct.getKeyStrip();
327  //ME1A part, convert halfstrip from 128-223 to 0-95
329  keyStrip = keyStrip - CSCConstants::MAX_HALF_STRIP_ME1B - 1;
330  return 0.5 * (mymap.at(keyStrip).first + mymap.at(keyStrip).second);
331 }

References CSCGEMMotherboardLUT::get_csc_hs_to_gem_pad(), CSCCLCTDigi::getKeyStrip(), getLUT(), CSCConstants::MAX_HALF_STRIP_ME1B, ME1A, and CSCUpgradeMotherboard::theParity.

◆ getPad() [2/3]

float CSCGEMMotherboard::getPad ( const GEMCoPadDigi p) const
protected

Definition at line 319 of file CSCGEMMotherboard.cc.

319  {
320  // average pad number for a GEMCoPad
321  return 0.5 * (p.pad(1) + p.pad(2));
322 }

References AlCaHLTBitMon_ParallelJobs::p.

◆ getPad() [3/3]

float CSCGEMMotherboard::getPad ( const GEMPadDigi p) const
protected

Definition at line 317 of file CSCGEMMotherboard.cc.

317 { return p.pad(); }

References AlCaHLTBitMon_ParallelJobs::p.

Referenced by bestMatchingPad(), and matchingPads().

◆ getPads() [1/3]

template<class T >
const matchesBX<T>& CSCGEMMotherboard::getPads ( ) const
private

◆ getPads() [2/3]

template<>
const matchesBX<GEMPadDigi>& CSCGEMMotherboard::getPads ( ) const
private

Definition at line 493 of file CSCGEMMotherboard.cc.

493  {
494  return pads_;
495 }

References pads_.

◆ getPads() [3/3]

template<>
const matchesBX<GEMCoPadDigi>& CSCGEMMotherboard::getPads ( ) const
private

Definition at line 498 of file CSCGEMMotherboard.cc.

498  {
499  return coPads_;
500 }

References coPads_.

◆ getRoll() [1/2]

int CSCGEMMotherboard::getRoll ( const GEMCoPadDigiId p) const
protected

Definition at line 310 of file CSCGEMMotherboard.cc.

310 { return p.second.roll(); }

References AlCaHLTBitMon_ParallelJobs::p.

◆ getRoll() [2/2]

int CSCGEMMotherboard::getRoll ( const GEMPadDigiId p) const
protected

Definition at line 308 of file CSCGEMMotherboard.cc.

308 { return GEMDetId(p.first).roll(); }

References AlCaHLTBitMon_ParallelJobs::p, and GEMDetId::roll().

Referenced by bestMatchingPad(), and matchingPads().

◆ getRolls()

std::pair< int, int > CSCGEMMotherboard::getRolls ( const CSCALCTDigi alct) const
protected

Definition at line 312 of file CSCGEMMotherboard.cc.

312  {
313  const auto& mymap(getLUT()->get_csc_wg_to_gem_roll(theParity));
314  return mymap.at(alct.getKeyWG());
315 }

References CSCALCTDigi::getKeyWG(), getLUT(), and CSCUpgradeMotherboard::theParity.

Referenced by bestMatchingPad().

◆ isGEMDetId()

bool CSCGEMMotherboard::isGEMDetId ( unsigned int  p) const
protected

Definition at line 300 of file CSCGEMMotherboard.cc.

300  {
301  return (DetId(p).subdetId() == MuonSubdetId::GEM and DetId(p).det() == DetId::Muon);
302 }

References MuonSubdetId::GEM, DetId::Muon, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by bestMatchingPad().

◆ isPadInOverlap()

bool CSCGEMMotherboard::isPadInOverlap ( int  roll) const
protected

Definition at line 287 of file CSCGEMMotherboard.cc.

287  {
288  // this only works for ME1A!
289  const auto& mymap = (getLUT()->get_csc_wg_to_gem_roll(theParity));
290  for (unsigned i = 0; i < mymap.size(); i++) {
291  // overlap region are WGs 10-15
292  if ((i < 10) or (i > 15))
293  continue;
294  if ((mymap.at(i).first <= roll) and (roll <= mymap.at(i).second))
295  return true;
296  }
297  return false;
298 }

References CSCGEMMotherboardLUT::get_csc_wg_to_gem_roll(), getLUT(), mps_fire::i, or, and CSCUpgradeMotherboard::theParity.

Referenced by printGEMTriggerCoPads(), and printGEMTriggerPads().

◆ matchingPads() [1/5]

template<class T >
void CSCGEMMotherboard::matchingPads ( const CSCALCTDigi alct,
matches< T > &  result 
) const
protected

Definition at line 244 of file CSCGEMMotherboard.h.

244  {
245  result.clear();
246  // Invalid ALCTs have no matching pads
247  if (not alct.isValid())
248  return;
249 
250  // Get the corresponding roll numbers for a given ALCT
251  std::pair<int, int> alctRoll = (getLUT()->get_csc_wg_to_gem_roll(theParity))[alct.getKeyWG()];
252 
253  // Get the pads in the ALCT bx
254  const matchesBX<T>& lut = getPads<T>();
255 
256  // If no pads in that bx...
257  if (lut.count(alct.getBX()) == 0)
258  return;
259 
260  for (const auto& p : lut.at(alct.getBX())) {
261  auto padRoll(getRoll(p));
262 
263  int delta;
264  if (GEMDetId(p.first).station() == 2)
265  delta = 1;
266 
267  // pad bx needs to match to ALCT bx
268  int pad_bx = getBX(p.second) + CSCConstants::LCT_CENTRAL_BX;
269 
270  if (std::abs(alct.getBX() - pad_bx) > getMaxDeltaBX<T>())
271  continue;
272 
273  // gem roll number if invalid
274  if (alctRoll.first == CSCGEMMotherboard::DEFAULT_MATCHING_VALUE and
276  continue;
277  // ALCTs at the top of the chamber
278  else if (alctRoll.first == CSCGEMMotherboard::DEFAULT_MATCHING_VALUE and padRoll > alctRoll.second)
279  continue;
280  // ALCTs at the bottom of the chamber
281  else if (alctRoll.second == CSCGEMMotherboard::DEFAULT_MATCHING_VALUE and padRoll < alctRoll.first)
282  continue;
283  // ignore pads that are too far away in roll number
284  else if ((alctRoll.first != CSCGEMMotherboard::DEFAULT_MATCHING_VALUE and
285  alctRoll.second != CSCGEMMotherboard::DEFAULT_MATCHING_VALUE) and
286  (alctRoll.first - delta > padRoll or padRoll > alctRoll.second))
287  continue;
288  result.push_back(p);
289  }
290 }

References funct::abs(), DEFAULT_MATCHING_VALUE, dumpMFGeometry_cfg::delta, CSCGEMMotherboardLUT::get_csc_wg_to_gem_roll(), getBX(), CSCALCTDigi::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 293 of file CSCGEMMotherboard.h.

293  {
294  result.clear();
295  // Invalid ALCTs have no matching pads
296  if (not clct.isValid())
297  return;
298 
299  auto part(getCSCPart(clct.getKeyStrip()));
300  // Get the corresponding pad numbers for a given CLCT
301  const auto& mymap = (getLUT()->get_csc_hs_to_gem_pad(theParity, part));
302  int keyStrip = clct.getKeyStrip();
303  //ME1A part, convert halfstrip from 128-223 to 0-95
305  keyStrip = keyStrip - CSCConstants::MAX_HALF_STRIP_ME1B - 1;
306  const int lowPad(mymap[keyStrip].first);
307  const int highPad(mymap[keyStrip].second);
308 
309  // Get the pads in the CLCT bx
310  const matchesBX<T>& lut = getPads<T>();
311 
312  // If no pads in that bx...
313  if (lut.count(clct.getBX()) == 0)
314  return;
315 
316  for (const auto& p : lut.at(clct.getBX())) {
317  // pad bx needs to match to CLCT bx
318  int pad_bx = getBX(p.second) + CSCConstants::LCT_CENTRAL_BX;
319  if (std::abs(clct.getBX() - pad_bx) > getMaxDeltaBX<T>())
320  continue;
321 
322  // pad number must match
323  int padNumber(getPad(p.second));
324  if (std::abs(lowPad - padNumber) <= maxDeltaPadL1_ or std::abs(padNumber - highPad) <= maxDeltaPadL1_) {
325  result.push_back(p);
326  }
327  }
328 }

References funct::abs(), 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

Definition at line 347 of file CSCGEMMotherboard.h.

347  {
348  matches<T> padsClct, padsAlct;
349 
350  // pads matching to the CLCT
351  matchingPads<T>(clct1, padsClct);
352 
353  // pads matching to the ALCT
354  matchingPads<T>(alct1, padsAlct);
355 
356  // collect all *common* pads
357  intersection(padsClct, padsAlct, result);
358 }

References CSCUpgradeMotherboard::intersection(), and mps_fire::result.

◆ matchingPads() [4/5]

template<class T >
void CSCGEMMotherboard::matchingPads ( const CSCCLCTDigi clct1,
const CSCCLCTDigi clct2,
const CSCALCTDigi alct1,
const CSCALCTDigi alct2,
matches< T > &  result 
) const
protected

Definition at line 361 of file CSCGEMMotherboard.h.

365  {
366  matches<T> padsClct, padsAlct;
367 
368  // pads matching to CLCTs
369  matchingPads<CSCCLCTDigi, T>(clct1, clct2, padsClct);
370 
371  // pads matching to ALCTs
372  matchingPads<CSCALCTDigi, T>(alct1, alct2, padsAlct);
373 
374  // collect *all* matching pads
375  result.reserve(padsClct.size() + padsAlct.size());
376  result.insert(std::end(result), std::begin(padsClct), std::end(padsClct));
377  result.insert(std::end(result), std::begin(padsAlct), std::end(padsAlct));
378 }

References mps_fire::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

Definition at line 331 of file CSCGEMMotherboard.h.

331  {
332  matches<T> p1, p2;
333 
334  // pads matching to the CLCT/ALCT
335  matchingPads<T>(d1, p1);
336 
337  // pads matching to the CLCT/ALCT
338  matchingPads<T>(d2, p2);
339 
340  // collect *all* matching pads
341  result.reserve(p1.size() + p2.size());
342  result.insert(std::end(result), std::begin(p1), std::end(p1));
343  result.insert(std::end(result), std::begin(p2), std::end(p2));
344 }

References d1, mps_fire::end, p1, p2, and mps_fire::result.

◆ 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

Definition at line 358 of file CSCGEMMotherboard.cc.

358  {
359  LogTrace("CSCGEMMotherboard") << "------------------------------------------------------------------------"
360  << std::endl;
361  LogTrace("CSCGEMMotherboard") << "* GEM trigger coincidence pads: " << std::endl;
362 
363  for (int bx = bx_start; bx <= bx_stop; bx++) {
364  const auto& in_pads = coPads_[bx];
365  LogTrace("CSCGEMMotherboard") << "N(copads) BX " << bx << " : " << in_pads.size() << std::endl;
366 
367  for (const auto& pad : in_pads) {
368  LogTrace("CSCGEMMotherboard") << "\tdetId " << GEMDetId(pad.first) << ", pad = " << pad.second;
369  const auto& roll_id(GEMDetId(pad.first));
370 
371  if (part == CSCPart::ME11 and isPadInOverlap(GEMDetId(roll_id).roll()))
372  LogTrace("CSCGEMMotherboard") << " (in overlap)" << std::endl;
373  else
374  LogTrace("CSCGEMMotherboard") << std::endl;
375  }
376  }
377 }

References l1GtPatternGenerator_cfi::bx, coPads_, isPadInOverlap(), LogTrace, and ME11.

Referenced by CSCGEMMotherboardME11::run(), and CSCGEMMotherboardME21::run().

◆ printGEMTriggerPads()

void CSCGEMMotherboard::printGEMTriggerPads ( int  bx_start,
int  bx_stop,
enum CSCPart  part 
)
protected

Definition at line 337 of file CSCGEMMotherboard.cc.

337  {
338  LogTrace("CSCGEMMotherboard") << "------------------------------------------------------------------------"
339  << std::endl;
340  LogTrace("CSCGEMMotherboard") << "* GEM trigger pads: " << std::endl;
341 
342  for (int bx = bx_start; bx <= bx_stop; bx++) {
343  const auto& in_pads = pads_[bx];
344  LogTrace("CSCGEMMotherboard") << "N(pads) BX " << bx << " : " << in_pads.size() << std::endl;
345 
346  for (const auto& pad : in_pads) {
347  LogTrace("CSCGEMMotherboard") << "\tdetId " << GEMDetId(pad.first) << ", pad = " << pad.second;
348  const auto& roll_id(GEMDetId(pad.first));
349 
350  if (part == CSCPart::ME11 and isPadInOverlap(GEMDetId(roll_id).roll()))
351  LogTrace("CSCGEMMotherboard") << " (in overlap)" << std::endl;
352  else
353  LogTrace("CSCGEMMotherboard") << std::endl;
354  }
355  }
356 }

References l1GtPatternGenerator_cfi::bx, isPadInOverlap(), LogTrace, ME11, and pads_.

Referenced by CSCGEMMotherboardME11::run(), and CSCGEMMotherboardME21::run().

◆ processGEMClusters()

void CSCGEMMotherboard::processGEMClusters ( const GEMPadDigiClusterCollection pads)
protected

Definition at line 41 of file CSCGEMMotherboard.cc.

41  {
42  std::unique_ptr<GEMPadDigiCollection> gemPads(new GEMPadDigiCollection());
43  coPadProcessor->declusterize(gemClusters, *gemPads);
44 
45  gemCoPadV = coPadProcessor->run(gemPads.get());
46 
47  processGEMPads(gemPads.get());
49 }

References coPadProcessor, gemCoPadV, processGEMCoPads(), and processGEMPads().

Referenced by CSCGEMMotherboardME11::run(), and CSCGEMMotherboardME21::run().

◆ processGEMCoPads()

void CSCGEMMotherboard::processGEMCoPads ( )
protected

Definition at line 77 of file CSCGEMMotherboard.cc.

77  {
78  coPads_.clear();
79  for (const auto& copad : gemCoPadV) {
80  GEMDetId detId(theRegion, 1, theStation, 0, theChamber, 0);
81 
82  // ignore 16-partition GE2/1 pads
83  if (detId.isGE21() and copad.first().nPartitions() == GEMPadDigi::GE21SplitStrip)
84  continue;
85 
86  // only consider matches with same BX
87  coPads_[CSCConstants::LCT_CENTRAL_BX + copad.bx(1)].emplace_back(detId.rawId(), copad);
88  }
89 }

References coPads_, GEMPadDigi::GE21SplitStrip, gemCoPadV, GEMDetId::isGE21(), CSCConstants::LCT_CENTRAL_BX, DetId::rawId(), CSCBaseboard::theChamber, CSCBaseboard::theRegion, and CSCBaseboard::theStation.

Referenced by processGEMClusters().

◆ processGEMPads()

void CSCGEMMotherboard::processGEMPads ( const GEMPadDigiCollection pads)
protected

Definition at line 51 of file CSCGEMMotherboard.cc.

51  {
52  pads_.clear();
53  const auto& superChamber(gem_g->superChamber(gemId));
54  for (const auto& ch : superChamber->chambers()) {
55  for (const auto& roll : ch->etaPartitions()) {
56  GEMDetId roll_id(roll->id());
57  auto pads_in_det = gemPads->get(roll_id);
58  for (auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
59  // ignore 16-partition GE2/1 pads
60  if (roll->isGE21() and pad->nPartitions() == GEMPadDigi::GE21SplitStrip)
61  continue;
62 
63  // ignore invalid pads
64  if (!pad->isValid())
65  continue;
66 
67  const int bx_shifted(CSCConstants::LCT_CENTRAL_BX + pad->bx());
68  // consider matches with BX difference +1/0/-1
69  for (int bx = bx_shifted - maxDeltaBXPad_; bx <= bx_shifted + maxDeltaBXPad_; ++bx) {
70  pads_[bx].emplace_back(roll_id.rawId(), *pad);
71  }
72  }
73  }
74  }
75 }

References l1GtPatternGenerator_cfi::bx, GEMPadDigi::GE21SplitStrip, gem_g, gemId, CSCConstants::LCT_CENTRAL_BX, maxDeltaBXPad_, pads_, and GEMGeometry::superChamber().

Referenced by processGEMClusters().

◆ readoutLCTs()

std::vector< CSCCorrelatedLCTDigi > CSCUpgradeMotherboard::readoutLCTs
override

Definition at line 259 of file CSCUpgradeMotherboard.cc.

259  {
260  std::vector<CSCCorrelatedLCTDigi> result;
262  if (tmb_cross_bx_algo == 2)
264 
265  // do a final check on the LCTs in readout
266  qualityControl_->checkMultiplicityBX(result);
267  for (const auto& lct : result) {
268  qualityControl_->checkValid(lct);
269  }
270 
271  return result;
272 }

◆ run() [1/2]

void CSCUpgradeMotherboard::run
override

Definition at line 68 of file CSCUpgradeMotherboard.cc.

68  {
69  clear();
70 
71  if (!(alctProc and clctProc)) {
72  edm::LogError("CSCUpgradeMotherboard|SetupError")
73  << "+++ run() called for non-existing ALCT/CLCT processor! +++ \n";
74  return;
75  }
76 
77  alctProc->setCSCGeometry(cscGeometry_);
78  clctProc->setCSCGeometry(cscGeometry_);
79 
80  alctV = alctProc->run(wiredc); // run anodeLCT
81  clctV = clctProc->run(compdc); // run cathodeLCT
82 
83  // if there are no ALCTs and no CLCTs, it does not make sense to run this TMB
84  if (alctV.empty() and clctV.empty())
85  return;
86 
87  // encode high multiplicity bits
88  unsigned alctBits = alctProc->getHighMultiplictyBits();
90 
91  int used_clct_mask[20];
92  for (int c = 0; c < 20; ++c)
93  used_clct_mask[c] = 0;
94 
95  // ALCT centric matching
96  for (int bx_alct = 0; bx_alct < CSCConstants::MAX_ALCT_TBINS; bx_alct++) {
97  if (alctProc->getBestALCT(bx_alct).isValid()) {
98  const int bx_clct_start(bx_alct - match_trig_window_size / 2 - CSCConstants::ALCT_CLCT_OFFSET);
99  const int bx_clct_stop(bx_alct + match_trig_window_size / 2 - CSCConstants::ALCT_CLCT_OFFSET);
100 
101  if (debug_matching) {
102  LogTrace("CSCUpgradeMotherboard")
103  << "========================================================================" << std::endl;
104  LogTrace("CSCUpgradeMotherboard") << "ALCT-CLCT matching in ME34/1 chamber: " << cscId_ << std::endl;
105  LogTrace("CSCUpgradeMotherboard")
106  << "------------------------------------------------------------------------" << std::endl;
107  LogTrace("CSCUpgradeMotherboard") << "+++ Best ALCT Details: ";
108  alctProc->getBestALCT(bx_alct).print();
109  LogTrace("CSCUpgradeMotherboard") << "+++ Second ALCT Details: ";
110  alctProc->getSecondALCT(bx_alct).print();
111 
112  LogTrace("CSCUpgradeMotherboard")
113  << "------------------------------------------------------------------------" << std::endl;
114  LogTrace("CSCUpgradeMotherboard") << "Attempt ALCT-CLCT matching in ME34/13 in bx range: [" << bx_clct_start
115  << "," << bx_clct_stop << "]" << std::endl;
116  }
117 
118  // ALCT-to-CLCT
119  for (int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++) {
120  if (bx_clct < 0 or bx_clct >= CSCConstants::MAX_CLCT_TBINS)
121  continue;
122  if (drop_used_clcts and used_clct_mask[bx_clct])
123  continue;
124  if (clctProc->getBestCLCT(bx_clct).isValid()) {
125  if (debug_matching)
126  LogTrace("CSCUpgradeMotherboard") << "++Valid ME21 CLCT: " << clctProc->getBestCLCT(bx_clct) << std::endl;
127 
128  int mbx = bx_clct - bx_clct_start;
129  CSCUpgradeMotherboard::correlateLCTs(alctProc->getBestALCT(bx_alct),
130  alctProc->getSecondALCT(bx_alct),
131  clctProc->getBestCLCT(bx_clct),
132  clctProc->getSecondCLCT(bx_clct),
133  allLCTs(bx_alct, mbx, 0),
134  allLCTs(bx_alct, mbx, 1));
135  if (infoV > 1)
136  LogTrace("CSCUpgradeMotherboard")
137  << "Successful ALCT-CLCT match in ME21: bx_alct = " << bx_alct << "; match window: [" << bx_clct_start
138  << "; " << bx_clct_stop << "]; bx_clct = " << bx_clct << std::endl;
139  LogTrace("CSCUpgradeMotherboard") << "+++ Best CLCT Details: ";
140  clctProc->getBestCLCT(bx_clct).print();
141  LogTrace("CSCUpgradeMotherboard") << "+++ Second CLCT Details: ";
142  clctProc->getSecondCLCT(bx_clct).print();
143  if (allLCTs(bx_alct, mbx, 0).isValid()) {
144  used_clct_mask[bx_clct] += 1;
146  break;
147  }
148  }
149  }
150  }
151  }
152 
153  // reduction of nLCTs per each BX
154  for (int bx = 0; bx < CSCConstants::MAX_LCT_TBINS; bx++) {
155  // counting
156  unsigned int n = 0;
157  for (unsigned int mbx = 0; mbx < match_trig_window_size; mbx++) {
158  for (int i = 0; i < CSCConstants::MAX_LCTS_PER_CSC; i++) {
159  if (allLCTs(bx, mbx, i).isValid()) {
160  ++n;
161  if (infoV > 0) {
162  LogDebug("CSCUpgradeMotherboard")
163  << "LCT" << i + 1 << " " << bx << "/" << bx + mbx - match_trig_window_size / 2 << ": "
164  << allLCTs(bx, mbx, i) << std::endl;
165  }
166  }
167  }
168  }
169 
170  // some simple cross-bx sorting algorithms
171  if (tmb_cross_bx_algo == 1 and (n > 2)) {
172  n = 0;
173  for (unsigned int mbx = 0; mbx < match_trig_window_size; mbx++) {
174  for (int i = 0; i < CSCConstants::MAX_LCTS_PER_CSC; i++) {
175  if (allLCTs(bx, pref[mbx], i).isValid()) {
176  n++;
177  if (n > 2)
178  allLCTs(bx, pref[mbx], i).clear();
179  }
180  }
181  }
182 
183  n = 0;
184  for (unsigned int mbx = 0; mbx < match_trig_window_size; mbx++) {
185  for (int i = 0; i < CSCConstants::MAX_LCTS_PER_CSC; i++) {
186  if (allLCTs(bx, mbx, i).isValid()) {
187  n++;
188  if (infoV > 0) {
189  LogDebug("CSCUpgradeMotherboard")
190  << "LCT" << i + 1 << " " << bx << "/" << bx + mbx - match_trig_window_size / 2 << ": "
191  << allLCTs(bx, mbx, i) << std::endl;
192  }
193  }
194  }
195  }
196  if (infoV > 0 and n > 0)
197  LogDebug("CSCUpgradeMotherboard") << "bx " << bx << " nnLCT:" << n << " " << n << std::endl;
198  } // x-bx sorting
199  }
200 
201  bool first = true;
202  unsigned int n = 0;
203  for (const auto& p : readoutLCTs()) {
204  if (debug_matching and first) {
205  LogTrace("CSCUpgradeMotherboard") << "========================================================================"
206  << std::endl;
207  LogTrace("CSCUpgradeMotherboard") << "Counting the final LCTs" << std::endl;
208  LogTrace("CSCUpgradeMotherboard") << "========================================================================"
209  << std::endl;
210  first = false;
211  LogTrace("CSCUpgradeMotherboard") << "tmb_cross_bx_algo: " << tmb_cross_bx_algo << std::endl;
212  }
213  n++;
214  if (debug_matching)
215  LogTrace("CSCUpgradeMotherboard") << "LCT " << n << " " << p << std::endl;
216  }
217 }

◆ run() [2/2]

virtual void CSCGEMMotherboard::run ( const CSCWireDigiCollection wiredc,
const CSCComparatorDigiCollection compdc,
const GEMPadDigiClusterCollection gemPads 
)
pure virtual

◆ setGEMGeometry()

void CSCGEMMotherboard::setGEMGeometry ( const GEMGeometry g)
inline

set CSC and GEM geometries for the matching needs

Definition at line 62 of file CSCGEMMotherboard.h.

62 { gem_g = g; }

References g, and gem_g.

Referenced by CSCTriggerPrimitivesBuilder::build().

Member Data Documentation

◆ coPadProcessor

std::unique_ptr<GEMCoPadProcessor> CSCGEMMotherboard::coPadProcessor

additional processor for GEMs

Definition at line 59 of file CSCGEMMotherboard.h.

Referenced by CSCTriggerPrimitivesBuilder::build(), clear(), CSCGEMMotherboard(), and processGEMClusters().

◆ coPads_

GEMCoPadDigiIdsBX CSCGEMMotherboard::coPads_
protected

◆ gem_g

const GEMGeometry* CSCGEMMotherboard::gem_g
protected

◆ gemCoPadV

std::vector<GEMCoPadDigi> CSCGEMMotherboard::gemCoPadV
protected

Definition at line 214 of file CSCGEMMotherboard.h.

Referenced by clear(), processGEMClusters(), and processGEMCoPads().

◆ gemGeometryAvailable

bool CSCGEMMotherboard::gemGeometryAvailable
protected

Definition at line 212 of file CSCGEMMotherboard.h.

Referenced by CSCGEMMotherboardME11::run(), and CSCGEMMotherboardME21::run().

◆ gemId

unsigned CSCGEMMotherboard::gemId
protected

Chamber id (trigger-type labels).

Definition at line 207 of file CSCGEMMotherboard.h.

Referenced by CSCGEMMotherboard(), maxPads(), maxRolls(), and processGEMPads().

◆ maxDeltaBXCoPad_

int CSCGEMMotherboard::maxDeltaBXCoPad_
protected

◆ maxDeltaBXPad_

int CSCGEMMotherboard::maxDeltaBXPad_
protected

Definition at line 221 of file CSCGEMMotherboard.h.

Referenced by getMaxDeltaBX(), and processGEMPads().

◆ maxDeltaPadL1_

int CSCGEMMotherboard::maxDeltaPadL1_
protected

Definition at line 223 of file CSCGEMMotherboard.h.

Referenced by CSCGEMMotherboard(), and matchingPads().

◆ maxDeltaPadL2_

int CSCGEMMotherboard::maxDeltaPadL2_
protected

Definition at line 224 of file CSCGEMMotherboard.h.

Referenced by CSCGEMMotherboard().

◆ pads_

GEMPadDigiIdsBX CSCGEMMotherboard::pads_
protected

◆ promoteALCTGEMpattern_

bool CSCGEMMotherboard::promoteALCTGEMpattern_
protected

Definition at line 227 of file CSCGEMMotherboard.h.

Referenced by constructLCTsGEM().

◆ promoteALCTGEMquality_

bool CSCGEMMotherboard::promoteALCTGEMquality_
protected

Definition at line 229 of file CSCGEMMotherboard.h.

Referenced by constructLCTsGEM().

◆ promoteCLCTGEMquality_

bool CSCGEMMotherboard::promoteCLCTGEMquality_
protected

Definition at line 230 of file CSCGEMMotherboard.h.

Referenced by constructLCTsGEM().

CSCMotherboard::LCT_Quality::NO_CLCT
MuonSubdetId::GEM
static constexpr int GEM
Definition: MuonSubdetId.h:14
CSCGEMMotherboard::doesWiregroupCrossStrip
virtual bool doesWiregroupCrossStrip(int key_wg, int key_strip) const
Definition: CSCGEMMotherboard.h:67
CSCALCTDigi::getBX
uint16_t getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
Definition: CSCALCTDigi.h:73
CSCGEMMotherboard::isPadInOverlap
bool isPadInOverlap(int roll) const
Definition: CSCGEMMotherboard.cc:287
CSCMotherboard::qualityControl_
std::unique_ptr< LCTQualityControl > qualityControl_
Definition: CSCMotherboard.h:128
ME11
Definition: CSCUpgradeMotherboardLUT.h:12
mps_fire.i
i
Definition: mps_fire.py:428
CSCMotherboard::match_trig_window_size
unsigned int match_trig_window_size
Definition: CSCMotherboard.h:99
GEMCoPadDigi::bx
int bx(int l) const
Definition: GEMCoPadDigi.cc:29
CSCGEMMotherboardLUT::get_gem_pad_to_csc_hs
virtual std::vector< int > get_gem_pad_to_csc_hs(Parity par, enum CSCPart) const =0
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
GEMCoPadDigi::pad
int pad(int l) const
Definition: GEMCoPadDigi.cc:20
CSCCorrelatedLCTDigi::setValid
void setValid(const uint16_t v)
set valid
Definition: CSCCorrelatedLCTDigi.h:163
GEMPadDigi
Definition: GEMPadDigi.h:17
CSCBaseboard::theRegion
unsigned theRegion
Definition: CSCBaseboard.h:46
CSCGEMMotherboard::maxDeltaPadL2_
int maxDeltaPadL2_
Definition: CSCGEMMotherboard.h:224
CSCCorrelatedLCTDigi::ALCT2GEM
Definition: CSCCorrelatedLCTDigi.h:206
CSCBaseboard::cscGeometry_
const CSCGeometry * cscGeometry_
Definition: CSCBaseboard.h:65
CSCMotherboard::secondLCT
CSCCorrelatedLCTDigi secondLCT[CSCConstants::MAX_LCT_TBINS]
Definition: CSCMotherboard.h:90
CSCConstants::MAX_ALCT_TBINS
Definition: CSCConstants.h:64
CSCMotherboard::useHighMultiplicityBits_
bool useHighMultiplicityBits_
Definition: CSCMotherboard.h:119
CSCMotherboard::LCT_Quality::HQ_CATHODE_MARGINAL_ANODE
CSCGEMMotherboard::findQualityGEMv1
CSCMotherboard::LCT_Quality findQualityGEMv1(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
Definition: CSCGEMMotherboard.cc:379
CSCBaseboard::tmbParams_
edm::ParameterSet tmbParams_
Definition: CSCBaseboard.h:72
CSCMotherboard::LCT_Quality::NO_ALCT
relativeConstraints.station
station
Definition: relativeConstraints.py:67
CSCMotherboard::alctProc
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
Definition: CSCMotherboard.h:75
CSCGEMMotherboard::ALCTCLCT_1GEM
Definition: CSCGEMMotherboard.h:192
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CSCGEMMotherboard::getLUT
virtual const CSCGEMMotherboardLUT * getLUT() const =0
CSCBaseboard::theStation
const unsigned theStation
Definition: CSCBaseboard.h:42
CSCMotherboard::LCT_Quality::CLCT_LAYER_TRIGGER
CSCUpgradeMotherboard::clear
void clear()
Definition: CSCUpgradeMotherboard.cc:322
CSCGEMMotherboard::findQualityGEMv2
LCT_QualityRun3 findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
Definition: CSCGEMMotherboard.cc:471
CSCCorrelatedLCTDigi::setQuality
void setQuality(const uint16_t q)
set quality code
Definition: CSCCorrelatedLCTDigi.h:160
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
CSCBaseboard::theCSCName_
std::string theCSCName_
Definition: CSCBaseboard.h:81
CSCGEMMotherboard::ALCTCLCT_2GEM
Definition: CSCGEMMotherboard.h:193
CSCUpgradeMotherboard::intersection
void intersection(const S &d1, const S &d2, S &result) const
Definition: CSCUpgradeMotherboard.h:121
CSCConstants::LCT_CENTRAL_BX
Definition: CSCConstants.h:79
CSCGEMMotherboard::INVALID
Definition: CSCGEMMotherboard.h:188
cms::cuda::assert
assert(be >=bs)
GEMPadDigiCollection
MuonDigiCollection< GEMDetId, GEMPadDigi > GEMPadDigiCollection
Definition: GEMPadDigiCollection.h:13
CSCGEMMotherboard::constructLCTsGEM
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const
Definition: CSCGEMMotherboard.cc:91
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
GEMSuperChamber::chamber
const GEMChamber * chamber(GEMDetId id) const
Return the chamber corresponding to the given id.
Definition: GEMSuperChamber.cc:27
CSCCorrelatedLCTDigi::setWireGroup
void setWireGroup(const uint16_t wiregroup)
set wiregroup number
Definition: CSCCorrelatedLCTDigi.h:157
CSCGEMMotherboard::promoteALCTGEMquality_
bool promoteALCTGEMquality_
Definition: CSCGEMMotherboard.h:229
CSCGEMMotherboard::coPads_
GEMCoPadDigiIdsBX coPads_
Definition: CSCGEMMotherboard.h:218
CSCUpgradeMotherboard::tmb_cross_bx_algo
unsigned int tmb_cross_bx_algo
Definition: CSCUpgradeMotherboard.h:103
CSCMotherboard::clct_trig_enable
unsigned int clct_trig_enable
Definition: CSCMotherboard.h:98
CSCConstants::ALCT_CLCT_OFFSET
Definition: CSCConstants.h:81
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCCLCTDigi::getKeyStrip
uint16_t getKeyStrip(const uint16_t n=2) const
Definition: CSCCLCTDigi.cc:131
CSCCLCTDigi::getEighthStrip
bool getEighthStrip() const
get single eighth strip bit
Definition: CSCCLCTDigi.cc:165
CSCCorrelatedLCTDigi::setBX0
void setBX0(const uint16_t b)
set bx0
Definition: CSCCorrelatedLCTDigi.h:184
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
GEMPadDigi::GE21SplitStrip
Definition: GEMPadDigi.h:22
quality
const uint32_t *__restrict__ Quality * quality
Definition: CAHitNtupletGeneratorKernelsImpl.h:109
CSCCorrelatedLCTDigi::CLCT2GEM
Definition: CSCCorrelatedLCTDigi.h:207
CSCCorrelatedLCTDigi::setEighthStrip
void setEighthStrip(const bool eighthStrip)
set single eighth strip bit
Definition: CSCCorrelatedLCTDigi.cc:93
CSCCorrelatedLCTDigi::setHMT
void setHMT(const uint16_t h)
set high-multiplicity bits
Definition: CSCCorrelatedLCTDigi.cc:173
CSCCorrelatedLCTDigi::setCLCT
void setCLCT(const CSCCLCTDigi &clct)
Definition: CSCCorrelatedLCTDigi.h:217
CSCMotherboard::clctV
std::vector< CSCCLCTDigi > clctV
Definition: CSCMotherboard.h:84
CSCMotherboard::clctProc
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
Definition: CSCMotherboard.h:78
CSCMotherboard::LCT_Quality::HQ_PATTERN_10
DetId
Definition: DetId.h:17
CSCCorrelatedLCTDigi::setALCT
void setALCT(const CSCALCTDigi &alct)
Definition: CSCCorrelatedLCTDigi.h:216
CSCALCTDigi::getKeyWG
uint16_t getKeyWG() const
return key wire group
Definition: CSCALCTDigi.h:67
CSCCLCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
CSCCorrelatedLCTDigi::setStrip
void setStrip(const uint16_t s)
set strip
Definition: CSCCorrelatedLCTDigi.h:166
LCTContainer::getMatched
void getMatched(std::vector< CSCCorrelatedLCTDigi > &) const
Definition: LCTContainer.cc:23
CSCCLCTDigi::getBend
uint16_t getBend() const
Definition: CSCCLCTDigi.h:93
part
part
Definition: HCALResponse.h:20
CSCMotherboard::alctV
std::vector< CSCALCTDigi > alctV
Definition: CSCMotherboard.h:83
CSCConstants::MAX_LCTS_PER_CSC
Definition: CSCConstants.h:75
CSCUpgradeMotherboard::readoutLCTs
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const override
Definition: CSCUpgradeMotherboard.cc:259
CSCGEMMotherboard::correlateLCTsGEM
void correlateLCTsGEM(const T &best, const T &second, const GEMCoPadDigiIds &coPads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
Definition: CSCGEMMotherboard.h:463
CSCUpgradeMotherboard::getCSCPart
enum CSCPart getCSCPart(int keystrip) const
Definition: CSCUpgradeMotherboard.cc:276
CSCMotherboard::LCT_Quality::INVALID
CSCUpgradeMotherboard::match_earliest_clct_only
bool match_earliest_clct_only
Definition: CSCUpgradeMotherboard.h:100
cond::time::INVALID
static constexpr TimeType INVALID
Definition: Time.h:33
mps_fire.end
end
Definition: mps_fire.py:242
CSCCorrelatedLCTDigi::setMPCLink
void setMPCLink(const uint16_t &link)
Set mpc link number after MPC sorting.
Definition: CSCCorrelatedLCTDigi.h:147
p2
double p2[4]
Definition: TauolaWrapper.h:90
CSCCorrelatedLCTDigi::setSlope
void setSlope(const uint16_t slope)
set the slope
Definition: CSCCorrelatedLCTDigi.cc:117
CSCUpgradeMotherboard::theParity
Parity theParity
Definition: CSCUpgradeMotherboard.h:88
CSCGEMMotherboardLUT::get_csc_hs_to_gem_pad
virtual std::vector< std::pair< int, int > > get_csc_hs_to_gem_pad(Parity par, enum CSCPart) const =0
CSCConstants::MAX_LCT_TBINS
Definition: CSCConstants.h:65
CSCGEMMotherboard::gemId
unsigned gemId
Definition: CSCGEMMotherboard.h:207
CSCGEMMotherboard::promoteCLCTGEMquality_
bool promoteCLCTGEMquality_
Definition: CSCGEMMotherboard.h:230
CSCMotherboard::LCT_Quality::HQ_PATTERN_4_5
sistrip::SpyUtilities::isValid
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
Definition: SiStripSpyUtilities.cc:124
CSCGEMMotherboard::ALCTCLCT
Definition: CSCGEMMotherboard.h:191
CSCALCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:112
CSCCorrelatedLCTDigi::ALCTCLCTGEM
Definition: CSCCorrelatedLCTDigi.h:204
CSCGEMMotherboard::coPadProcessor
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
Definition: CSCGEMMotherboard.h:59
CSCGEMMotherboard::gemCoPadV
std::vector< GEMCoPadDigi > gemCoPadV
Definition: CSCGEMMotherboard.h:214
CSCGEMMotherboard::promoteALCTGEMpattern_
bool promoteALCTGEMpattern_
Definition: CSCGEMMotherboard.h:227
CSCCorrelatedLCTDigi::setBend
void setBend(const uint16_t b)
set bend
Definition: CSCCorrelatedLCTDigi.h:178
GEMCoPadDigi
Definition: GEMCoPadDigi.h:16
CSCUpgradeMotherboard::correlateLCTs
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
Definition: CSCUpgradeMotherboard.cc:219
CSCCorrelatedLCTDigi::setGEM1
void setGEM1(const GEMPadDigi &gem)
Definition: CSCCorrelatedLCTDigi.h:218
CSCCorrelatedLCTDigi::ALCTCLCT2GEM
Definition: CSCCorrelatedLCTDigi.h:205
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
CSCCorrelatedLCTDigi::setBX
void setBX(const uint16_t b)
set bx
Definition: CSCCorrelatedLCTDigi.h:181
CSCCorrelatedLCTDigi::setTrknmb
void setTrknmb(const uint16_t number)
Set track number (1,2) after sorting LCTs.
Definition: CSCCorrelatedLCTDigi.h:144
edm::ParameterSet
Definition: ParameterSet.h:47
ME1A
Definition: CSCUpgradeMotherboardLUT.h:12
LCTContainer::clear
void clear()
Definition: LCTContainer.cc:31
CSCGEMMotherboard::CLCT_2GEM
Definition: CSCGEMMotherboard.h:189
CSCUpgradeMotherboard::debug_matching
bool debug_matching
Definition: CSCUpgradeMotherboard.h:109
CSCGEMMotherboard::isGEMDetId
bool isGEMDetId(unsigned int) const
Definition: CSCGEMMotherboard.cc:300
CSCCorrelatedLCTDigi::setPattern
void setPattern(const uint16_t p)
set pattern
Definition: CSCCorrelatedLCTDigi.cc:155
CSCGEMMotherboard::getRoll
int getRoll(const GEMPadDigiId &p) const
Definition: CSCGEMMotherboard.cc:308
GEMDetId::roll
constexpr int roll() const
Definition: GEMDetId.h:194
CSCMotherboard::LCT_Quality::HQ_PATTERN_8_9
CSCMotherboard::LCT_Quality::MARGINAL_ANODE_CATHODE
CSCCorrelatedLCTDigi::setGEM2
void setGEM2(const GEMPadDigi &gem)
Definition: CSCCorrelatedLCTDigi.h:219
CSCConstants::MAX_HALF_STRIP_ME1B
Definition: CSCConstants.h:39
dumpMFGeometry_cfg.delta
delta
Definition: dumpMFGeometry_cfg.py:25
GEMDetId
Definition: GEMDetId.h:18
CSCCLCTDigi::getQuartStrip
bool getQuartStrip() const
get single quart strip bit
Definition: CSCCLCTDigi.cc:159
CSCCorrelatedLCTDigi::setCSCID
void setCSCID(const uint16_t c)
set cscID
Definition: CSCCorrelatedLCTDigi.h:190
CSCCorrelatedLCTDigi::setRun3Pattern
void setRun3Pattern(const uint16_t pattern)
set pattern
Definition: CSCCorrelatedLCTDigi.cc:165
CSCGEMMotherboardLUT::get_gem_roll_to_csc_wg
std::vector< int > get_gem_roll_to_csc_wg(Parity par) const
Definition: CSCUpgradeMotherboardLUT.cc:106
CSCCLCTDigi::isValid
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50
CSCUpgradeMotherboard::sortLCTs
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
Definition: CSCUpgradeMotherboard.cc:307
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
CSCUpgradeMotherboard::pref
int pref[CSCConstants::MAX_LCT_TBINS]
Definition: CSCUpgradeMotherboard.h:97
CSCGEMMotherboard::ALCT_2GEM
Definition: CSCGEMMotherboard.h:190
p1
double p1[4]
Definition: TauolaWrapper.h:89
GEMCoPadDigi::second
GEMPadDigi second() const
Definition: GEMCoPadDigi.h:30
CSCGEMMotherboard::getRolls
std::pair< int, int > getRolls(const CSCALCTDigi &) const
Definition: CSCGEMMotherboard.cc:312
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
CSCCLCTDigi::getSlope
uint16_t getSlope() const
return the slope
Definition: CSCCLCTDigi.cc:106
CSCBaseboard::theChamber
unsigned theChamber
Definition: CSCBaseboard.h:48
CSCCorrelatedLCTDigi::setSyncErr
void setSyncErr(const uint16_t s)
set syncErr
Definition: CSCCorrelatedLCTDigi.h:187
CSCUpgradeMotherboard::CSCUpgradeMotherboard
CSCUpgradeMotherboard()
Definition: CSCUpgradeMotherboard.cc:50
gem
Definition: AMC13Event.h:6
GEMChamber::etaPartition
const GEMEtaPartition * etaPartition(GEMDetId id) const
Return the eta partition corresponding to the given id.
Definition: GEMChamber.cc:33
CSCMotherboard::drop_used_clcts
bool drop_used_clcts
Definition: CSCMotherboard.h:105
CSCGEMMotherboard::processGEMCoPads
void processGEMCoPads()
Definition: CSCGEMMotherboard.cc:77
CSCMotherboard::encodeHighMultiplicityBits
void encodeHighMultiplicityBits(unsigned alctBits)
Definition: CSCMotherboard.cc:711
GEMChamber::nEtaPartitions
int nEtaPartitions() const
Retunr numbers of eta partitions.
Definition: GEMChamber.cc:31
CSCUpgradeMotherboard::sortLCTsByQuality
static bool sortLCTsByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
Definition: CSCUpgradeMotherboard.cc:299
CSCMotherboard::getBXShiftedCLCT
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
Definition: CSCMotherboard.cc:705
GEMEtaPartition::npads
int npads() const
number of GEM-CSC trigger readout pads in partition
Definition: GEMEtaPartition.cc:43
CSCUpgradeMotherboard::allLCTs
LCTContainer allLCTs
Definition: CSCUpgradeMotherboard.h:94
CSCGEMMotherboardLUT::get_csc_wg_to_gem_roll
std::vector< std::pair< int, int > > get_csc_wg_to_gem_roll(Parity par, int layer=1) const
Definition: CSCUpgradeMotherboardLUT.cc:98
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
CSCGEMMotherboard::maxDeltaBXPad_
int maxDeltaBXPad_
Definition: CSCGEMMotherboard.h:221
CSCGEMMotherboard::processGEMPads
void processGEMPads(const GEMPadDigiCollection *pads)
Definition: CSCGEMMotherboard.cc:51
CSCALCTDigi::getAccelerator
uint16_t getAccelerator() const
Definition: CSCALCTDigi.h:53
CSCMotherboard::LCT_Quality::HQ_PATTERN_2_3
trklet::bend
double bend(double r, double rinv, double stripPitch)
Definition: Util.h:166
T
long double T
Definition: Basic3DVectorLD.h:48
CSCMotherboard::LCT_Quality::HQ_ACCEL_ALCT
CSCMotherboard::highMultiplicityBits_
unsigned int highMultiplicityBits_
Definition: CSCMotherboard.h:118
CSCGEMMotherboard::maxRolls
int maxRolls() const
Definition: CSCGEMMotherboard.cc:335
CSCALCTDigi
Definition: CSCALCTDigi.h:17
GEMCoPadDigi::roll
int roll() const
Definition: GEMCoPadDigi.h:25
CSCMotherboard::alct_trig_enable
unsigned int alct_trig_enable
Definition: CSCMotherboard.h:98
CSCConstants::MAX_CLCT_TBINS
Definition: CSCConstants.h:63
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
or
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
Definition: Activities.doc:12
CSCGEMMotherboard::clear
void clear()
Definition: CSCGEMMotherboard.cc:33
CSCBaseboard::theTrigChamber
const unsigned theTrigChamber
Definition: CSCBaseboard.h:45
GEMDetId::minRollId
static constexpr int32_t minRollId
Definition: GEMDetId.h:35
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
CSCMotherboard::encodePattern
unsigned int encodePattern(const int clctPattern) const
Definition: CSCMotherboard.cc:542
CSCGEMMotherboard::DEFAULT_MATCHING_VALUE
Definition: CSCGEMMotherboard.h:31
CSCGEMMotherboard::pads_
GEMPadDigiIdsBX pads_
Definition: CSCGEMMotherboard.h:217
CSCGEMMotherboard::maxDeltaBXCoPad_
int maxDeltaBXCoPad_
Definition: CSCGEMMotherboard.h:222
CSCBaseboard::cscId_
CSCDetId cscId_
Definition: CSCBaseboard.h:57
S
Definition: CSCDBL1TPParametersExtended.h:16
CSCALCTDigi::isValid
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:40
CSCGEMMotherboard::getPad
float getPad(const GEMPadDigi &) const
Definition: CSCGEMMotherboard.cc:317
GEMDetId::station
constexpr int station() const
Definition: GEMDetId.h:179
CSCMotherboard::LCT_Quality::HQ_ANODE_MARGINAL_CATHODE
CSCGEMMotherboard::maxPads
int maxPads() const
Definition: CSCGEMMotherboard.cc:333
CSCCorrelatedLCTDigi::setRun3
void setRun3(const bool isRun3)
Definition: CSCCorrelatedLCTDigi.cc:175
mps_fire.result
result
Definition: mps_fire.py:311
DetId::Muon
Definition: DetId.h:26
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
RunInfoPI::valid
Definition: RunInfoPayloadInspectoHelper.h:16
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
CSCMotherboard::match_trig_enable
unsigned int match_trig_enable
Definition: CSCMotherboard.h:98
GEMPadDigi::isValid
bool isValid() const
Definition: GEMPadDigi.cc:26
GEMGeometry::superChamber
const GEMSuperChamber * superChamber(GEMDetId id) const
Definition: GEMGeometry.cc:69
CSCMotherboard::getBXShiftedALCT
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
Definition: CSCMotherboard.cc:699
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
CSCCLCTDigi::getPattern
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.cc:88
CSCCorrelatedLCTDigi::setType
void setType(int type)
Definition: CSCCorrelatedLCTDigi.h:214
CSCCorrelatedLCTDigi::isValid
bool isValid() const
return valid pattern bit
Definition: CSCCorrelatedLCTDigi.h:55
CSCGEMMotherboard::getBX
int getBX(const GEMPadDigi &p) const
Definition: CSCGEMMotherboard.cc:304
CSCGEMMotherboard::maxDeltaPadL1_
int maxDeltaPadL1_
Definition: CSCGEMMotherboard.h:223
GEMCoPadDigi::first
GEMPadDigi first() const
Definition: GEMCoPadDigi.h:29
d1
static constexpr float d1
Definition: L1EGammaCrystalsEmulatorProducer.cc:85
CSCGEMMotherboard::gem_g
const GEMGeometry * gem_g
Definition: CSCGEMMotherboard.h:211
CSCCorrelatedLCTDigi::setQuartStrip
void setQuartStrip(const bool quartStrip)
set single quart strip bit
Definition: CSCCorrelatedLCTDigi.cc:87
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
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
Definition: Activities.doc:4
CSCBaseboard::runCCLUT_
bool runCCLUT_
Definition: CSCBaseboard.h:102
GEMCoPadDigi::isValid
bool isValid() const
Definition: GEMCoPadDigi.cc:18
ME1B
Definition: CSCUpgradeMotherboardLUT.h:12
CSCMotherboard::LCT_Quality::HQ_PATTERN_6_7
CSCBaseboard::infoV
int infoV
Definition: CSCBaseboard.h:63
CSCCLCTDigi::getRun3Pattern
uint16_t getRun3Pattern() const
return pattern
Definition: CSCCLCTDigi.cc:94