CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
CSCGEMMotherboardME11 Class Reference

#include <CSCGEMMotherboardME11.h>

Inheritance diagram for CSCGEMMotherboardME11:
CSCGEMMotherboard CSCUpgradeMotherboard CSCMotherboard CSCBaseboard

Public Member Functions

 CSCGEMMotherboardME11 ()
 
 CSCGEMMotherboardME11 (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf)
 
std::vector< CSCCorrelatedLCTDigireadoutLCTs1a () const
 
std::vector< CSCCorrelatedLCTDigireadoutLCTs1b () const
 
void run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads) override
 
void run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads) override
 
 ~CSCGEMMotherboardME11 () override
 
- Public Member Functions inherited from CSCGEMMotherboard
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
 
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)
 
void debugLUTs ()
 
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 setupGeometry ()
 
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
 

Private Member Functions

void correlateLCTsGEM (const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, const GEMPadDigiIds &pads, const GEMCoPadDigiIds &copads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
 
bool doesALCTCrossCLCT (const CSCALCTDigi &a, const CSCCLCTDigi &c) const
 
bool doesWiregroupCrossStrip (int key_wg, int key_hs) const override
 
const CSCGEMMotherboardLUTME11getLUT () const override
 
std::vector< CSCCorrelatedLCTDigireadoutLCTsME11 (enum CSCPart me1ab) const
 
void sortLCTs (std::vector< CSCCorrelatedLCTDigi > &, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
 
void sortLCTs (std::vector< CSCCorrelatedLCTDigi > &, int bx, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
 

Private Attributes

bool buildLCTfromALCTandGEM_ME1a_
 
bool buildLCTfromALCTandGEM_ME1b_
 
bool buildLCTfromCLCTandGEM_ME1a_
 
bool buildLCTfromCLCTandGEM_ME1b_
 
std::vector< CSCCLCTDigiclctV
 
std::unique_ptr< CSCMotherboardLUTME11cscTmbLUT_
 
bool dropLowQualityALCTsNoGEMs_ME1a_
 
bool dropLowQualityALCTsNoGEMs_ME1b_
 
bool dropLowQualityCLCTsNoGEMs_ME1a_
 
bool dropLowQualityCLCTsNoGEMs_ME1b_
 
bool promoteCLCTGEMquality_ME1a_
 
bool promoteCLCTGEMquality_ME1b_
 
std::unique_ptr< CSCGEMMotherboardLUTME11tmbLUT_
 

Additional Inherited Members

- Public Types inherited from CSCGEMMotherboard
enum  Default_values { DEFAULT_MATCHING_VALUE = -99 }
 
- Static Public Member Functions inherited from CSCUpgradeMotherboard
static bool sortLCTsByGEMDphi (const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
 
static bool sortLCTsByQuality (const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
 
- Public Attributes inherited from CSCGEMMotherboard
std::unique_ptr< GEMCoPadProcessorcoPadProcessor
 
- Public Attributes inherited from CSCMotherboard
std::unique_ptr< CSCAnodeLCTProcessoralctProc
 
std::unique_ptr< CSCCathodeLCTProcessorclctProc
 
- Protected Types inherited from CSCMotherboard
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
}
 
- Protected Member Functions inherited from CSCGEMMotherboard
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
 
unsigned int findQualityGEM (const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
 
int getBX (const GEMCoPadDigi &p) const
 
int getBX (const GEMPadDigi &p) const
 
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 ()
 
- 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
 
unsigned int findQuality (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 inherited from CSCGEMMotherboard
GEMCoPadDigiIdsBX coPads_
 
bool doLCTGhostBustingWithGEMs_
 
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_
 
bool useOldLCTDataFormat_
 
- Protected Attributes inherited from CSCUpgradeMotherboard
LCTContainer allLCTs
 
bool debug_luts
 
bool debug_matching
 
std::unique_ptr< CSCUpgradeMotherboardLUTGeneratorgenerator_
 
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
 
bool readout_earliest_2
 
CSCCorrelatedLCTDigi secondLCT [CSCConstants::MAX_LCT_TBINS]
 
unsigned int tmb_l1a_window_size
 
bool useHighMultiplicityBits_
 
- Protected Attributes inherited from CSCBaseboard
unsigned int alctClctOffset_
 
edm::ParameterSet alctParams_
 
edm::ParameterSet clctParams_
 
edm::ParameterSet commonParams_
 
const CSCChambercscChamber_
 
const CSCGeometrycscGeometry_
 
CSCDetId cscId_
 
bool disableME1a_
 
bool enableAlctSLHC_
 
bool gangedME1a_
 
int infoV
 
bool isME11_
 
bool isSLHC_
 
bool runME11ILT_
 
bool runME11Up_
 
bool runME21ILT_
 
bool runME21Up_
 
bool runME31Up_
 
bool runME41Up_
 
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_
 
- 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

Extended CSCMotherboard for ME11 TMB upgrade

Author
Sven Dildick March 2014

Based on CSCMotherboard code

Definition at line 16 of file CSCGEMMotherboardME11.h.

Constructor & Destructor Documentation

◆ CSCGEMMotherboardME11() [1/2]

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

Normal constructor.

Definition at line 3 of file CSCGEMMotherboardME11.cc.

9  : CSCGEMMotherboard(endcap, station, sector, subsector, chamber, conf)
10  // special configuration parameters for ME11 treatment
11  ,
12  dropLowQualityCLCTsNoGEMs_ME1a_(tmbParams_.getParameter<bool>("dropLowQualityCLCTsNoGEMs_ME1a")),
13  dropLowQualityCLCTsNoGEMs_ME1b_(tmbParams_.getParameter<bool>("dropLowQualityCLCTsNoGEMs_ME1b")),
14  dropLowQualityALCTsNoGEMs_ME1a_(tmbParams_.getParameter<bool>("dropLowQualityALCTsNoGEMs_ME1a")),
15  dropLowQualityALCTsNoGEMs_ME1b_(tmbParams_.getParameter<bool>("dropLowQualityALCTsNoGEMs_ME1b")),
16  buildLCTfromALCTandGEM_ME1a_(tmbParams_.getParameter<bool>("buildLCTfromALCTandGEM_ME1a")),
17  buildLCTfromALCTandGEM_ME1b_(tmbParams_.getParameter<bool>("buildLCTfromALCTandGEM_ME1b")),
18  buildLCTfromCLCTandGEM_ME1a_(tmbParams_.getParameter<bool>("buildLCTfromCLCTandGEM_ME1a")),
19  buildLCTfromCLCTandGEM_ME1b_(tmbParams_.getParameter<bool>("buildLCTfromCLCTandGEM_ME1b")),
20  promoteCLCTGEMquality_ME1a_(tmbParams_.getParameter<bool>("promoteCLCTGEMquality_ME1a")),
21  promoteCLCTGEMquality_ME1b_(tmbParams_.getParameter<bool>("promoteCLCTGEMquality_ME1b")) {
22  if (!isSLHC_)
23  edm::LogError("CSCGEMMotherboardME11|ConfigError")
24  << "+++ Upgrade CSCGEMMotherboardME11 constructed while isSLHC is not set! +++\n";
25 
26  // set LUTs
27  tmbLUT_.reset(new CSCGEMMotherboardLUTME11());
28  cscTmbLUT_.reset(new CSCMotherboardLUTME11());
29 }

References cscTmbLUT_, CSCBaseboard::isSLHC_, and tmbLUT_.

◆ CSCGEMMotherboardME11() [2/2]

CSCGEMMotherboardME11::CSCGEMMotherboardME11 ( )

Constructor for use during testing.

Definition at line 31 of file CSCGEMMotherboardME11.cc.

31  : CSCGEMMotherboard() {
32  // Constructor used only for testing.
33  if (!isSLHC_)
34  edm::LogError("CSCGEMMotherboardME11|ConfigError")
35  << "+++ Upgrade CSCGEMMotherboardME11 constructed while isSLHC is not set! +++\n";
36 }

References CSCBaseboard::isSLHC_.

◆ ~CSCGEMMotherboardME11()

CSCGEMMotherboardME11::~CSCGEMMotherboardME11 ( )
override

Default destructor.

Definition at line 38 of file CSCGEMMotherboardME11.cc.

38 {}

Member Function Documentation

◆ correlateLCTsGEM()

void CSCGEMMotherboardME11::correlateLCTsGEM ( const CSCALCTDigi bestALCT,
const CSCALCTDigi secondALCT,
const CSCCLCTDigi bestCLCT,
const CSCCLCTDigi secondCLCT,
const GEMPadDigiIds pads,
const GEMCoPadDigiIds copads,
CSCCorrelatedLCTDigi lct1,
CSCCorrelatedLCTDigi lct2 
) const
private

Definition at line 520 of file CSCGEMMotherboardME11.cc.

527  {
528  CSCALCTDigi bestALCT = bALCT;
529  CSCALCTDigi secondALCT = sALCT;
530  const CSCCLCTDigi& bestCLCT = bCLCT;
531  CSCCLCTDigi secondCLCT = sCLCT;
532 
533  // assume that always anodeBestValid and cathodeBestValid
534  if (secondALCT == bestALCT)
535  secondALCT.clear();
536  if (secondCLCT == bestCLCT)
537  secondCLCT.clear();
538 
539  const bool ok_bb = bestALCT.isValid() and bestCLCT.isValid();
540  const bool ok_bs = bestALCT.isValid() and secondCLCT.isValid();
541  const bool ok_sb = secondALCT.isValid() and bestCLCT.isValid();
542  const bool ok_ss = secondALCT.isValid() and secondCLCT.isValid();
543 
544  const int ok11 = doesALCTCrossCLCT(bestALCT, bestCLCT);
545  const int ok12 = doesALCTCrossCLCT(bestALCT, secondCLCT);
546  const int ok21 = doesALCTCrossCLCT(secondALCT, bestCLCT);
547  const int ok22 = doesALCTCrossCLCT(secondALCT, secondCLCT);
548  const int code = (ok11 << 3) | (ok12 << 2) | (ok21 << 1) | (ok22);
549 
550  int dbg = 0;
551  if (dbg)
552  LogTrace("CSCGEMMotherboardME11") << "debug correlateLCTs in ME11" << cscId_ << "\n"
553  << "ALCT1: " << bestALCT << "\n"
554  << "ALCT2: " << secondALCT << "\n"
555  << "CLCT1: " << bestCLCT << "\n"
556  << "CLCT2: " << secondCLCT << "\n"
557  << "ok 11 12 21 22 code = " << ok11 << " " << ok12 << " " << ok21 << " " << ok22
558  << " " << code << std::endl;
559 
560  if (code == 0)
561  return;
562 
563  // LUT defines correspondence between possible ok## combinations
564  // and resulting lct1 and lct2
565  int lut[16][2] = {
566  //ok: 11 12 21 22
567  {0, 0}, // 0 0 0 0
568  {22, 0}, // 0 0 0 1
569  {21, 0}, // 0 0 1 0
570  {21, 22}, // 0 0 1 1
571  {12, 0}, // 0 1 0 0
572  {12, 22}, // 0 1 0 1
573  {12, 21}, // 0 1 1 0
574  {12, 21}, // 0 1 1 1
575  {11, 0}, // 1 0 0 0
576  {11, 22}, // 1 0 0 1
577  {11, 21}, // 1 0 1 0
578  {11, 22}, // 1 0 1 1
579  {11, 12}, // 1 1 0 0
580  {11, 22}, // 1 1 0 1
581  {11, 12}, // 1 1 1 0
582  {11, 22}, // 1 1 1 1
583  };
584 
585  if (dbg)
586  LogTrace("CSCGEMMotherboardME11") << "lut 0 1 = " << lut[code][0] << " " << lut[code][1] << std::endl;
587 
588  // check matching copads
589  const GEMCoPadDigi& bb_copad = bestMatchingPad<GEMCoPadDigi>(bestALCT, bestCLCT, copads);
590  const GEMCoPadDigi& bs_copad = bestMatchingPad<GEMCoPadDigi>(bestALCT, secondCLCT, copads);
591  const GEMCoPadDigi& sb_copad = bestMatchingPad<GEMCoPadDigi>(secondALCT, bestCLCT, copads);
592  const GEMCoPadDigi& ss_copad = bestMatchingPad<GEMCoPadDigi>(secondALCT, secondCLCT, copads);
593 
594  // check matching pads
595  const GEMPadDigi& bb_pad = bestMatchingPad<GEMPadDigi>(bestALCT, bestCLCT, pads);
596  const GEMPadDigi& bs_pad = bestMatchingPad<GEMPadDigi>(bestALCT, secondCLCT, pads);
597  const GEMPadDigi& sb_pad = bestMatchingPad<GEMPadDigi>(secondALCT, bestCLCT, pads);
598  const GEMPadDigi& ss_pad = bestMatchingPad<GEMPadDigi>(secondALCT, secondCLCT, pads);
599 
600  // evaluate possible combinations
601  const bool ok_bb_copad = ok11 == 1 and ok_bb and bb_copad.isValid();
602  const bool ok_bs_copad = ok12 == 1 and ok_bs and bs_copad.isValid();
603  const bool ok_sb_copad = ok21 == 1 and ok_sb and sb_copad.isValid();
604  const bool ok_ss_copad = ok22 == 1 and ok_ss and ss_copad.isValid();
605 
606  const bool ok_bb_pad = ok11 == 1 and ok_bb and bb_pad.isValid();
607  const bool ok_bs_pad = ok12 == 1 and ok_bs and bs_pad.isValid();
608  const bool ok_sb_pad = ok21 == 1 and ok_sb and sb_pad.isValid();
609  const bool ok_ss_pad = ok22 == 1 and ok_ss and ss_pad.isValid();
610 
611  switch (lut[code][0]) {
612  case 11:
613  if (ok_bb_copad)
614  lct1 = CSCGEMMotherboard::constructLCTsGEM(bestALCT, bestCLCT, bb_copad, 1);
615  else if (ok_bb_pad)
616  lct1 = CSCGEMMotherboard::constructLCTsGEM(bestALCT, bestCLCT, bb_pad, 1);
617  else
618  lct1 = constructLCTs(bestALCT, bestCLCT, CSCCorrelatedLCTDigi::ALCTCLCT, 1);
619  break;
620  case 12:
621  if (ok_bs_copad)
622  lct1 = CSCGEMMotherboard::constructLCTsGEM(bestALCT, secondCLCT, bs_copad, 1);
623  else if (ok_bs_pad)
624  lct1 = CSCGEMMotherboard::constructLCTsGEM(bestALCT, secondCLCT, bs_pad, 1);
625  else
626  lct1 = constructLCTs(bestALCT, secondCLCT, CSCCorrelatedLCTDigi::ALCTCLCT, 1);
627  break;
628  case 21:
629  if (ok_sb_copad)
630  lct1 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, bestCLCT, sb_copad, 1);
631  else if (ok_sb_pad)
632  lct1 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, bestCLCT, sb_pad, 1);
633  else
634  lct1 = constructLCTs(secondALCT, bestCLCT, CSCCorrelatedLCTDigi::ALCTCLCT, 1);
635  break;
636  case 22:
637  if (ok_ss_copad)
638  lct1 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, secondCLCT, ss_copad, 1);
639  else if (ok_ss_pad)
640  lct1 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, secondCLCT, ss_pad, 1);
641  else
642  lct1 = constructLCTs(secondALCT, secondCLCT, CSCCorrelatedLCTDigi::ALCTCLCT, 1);
643  break;
644  default:
645  return;
646  }
647 
648  if (dbg)
649  LogTrace("CSCGEMMotherboardME11") << "lct1: " << lct1 << std::endl;
650 
651  switch (lut[code][1]) {
652  case 12:
653  if (ok_bs_copad)
654  lct2 = CSCGEMMotherboard::constructLCTsGEM(bestALCT, secondCLCT, bs_copad, 2);
655  else if (ok_bs_pad)
656  lct2 = CSCGEMMotherboard::constructLCTsGEM(bestALCT, secondCLCT, bs_pad, 2);
657  else
658  lct2 = constructLCTs(bestALCT, secondCLCT, CSCCorrelatedLCTDigi::ALCTCLCT, 2);
659  break;
660  case 21:
661  if (ok_sb_copad)
662  lct2 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, bestCLCT, sb_copad, 2);
663  else if (ok_sb_pad)
664  lct2 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, bestCLCT, sb_pad, 2);
665  else
666  lct2 = constructLCTs(secondALCT, bestCLCT, CSCCorrelatedLCTDigi::ALCTCLCT, 2);
667  break;
668  case 22:
669  if (ok_bb_copad)
670  lct2 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, secondCLCT, bb_copad, 2);
671  else if (ok_bb_pad)
672  lct2 = CSCGEMMotherboard::constructLCTsGEM(secondALCT, secondCLCT, bb_pad, 2);
673  else
674  lct2 = constructLCTs(secondALCT, secondCLCT, CSCCorrelatedLCTDigi::ALCTCLCT, 2);
675  break;
676  default:
677  return;
678  }
679 
680  if (dbg)
681  LogTrace("CSCGEMMotherboardME11") << "lct2: " << lct2 << std::endl;
682 
683  if (dbg)
684  LogTrace("CSCGEMMotherboardME11") << "out of correlateLCTs" << std::endl;
685  return;
686 }

References CSCCorrelatedLCTDigi::ALCTCLCT, CSCALCTDigi::clear(), CSCCLCTDigi::clear(), CSCMotherboard::constructLCTs(), CSCGEMMotherboard::constructLCTsGEM(), CSCBaseboard::cscId_, doesALCTCrossCLCT(), GEMCoPadDigi::isValid(), GEMPadDigi::isValid(), CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), and LogTrace.

Referenced by run().

◆ doesALCTCrossCLCT()

bool CSCGEMMotherboardME11::doesALCTCrossCLCT ( const CSCALCTDigi a,
const CSCCLCTDigi c 
) const
private

Definition at line 512 of file CSCGEMMotherboardME11.cc.

512  {
513  return cscTmbLUT_->doesALCTCrossCLCT(a, c, theEndcap, gangedME1a_);
514 }

References a, HltBtagPostValidation_cff::c, cscTmbLUT_, CSCBaseboard::gangedME1a_, and CSCBaseboard::theEndcap.

Referenced by correlateLCTsGEM().

◆ doesWiregroupCrossStrip()

bool CSCGEMMotherboardME11::doesWiregroupCrossStrip ( int  key_wg,
int  key_hs 
) const
overrideprivatevirtual

Reimplemented from CSCGEMMotherboard.

Definition at line 516 of file CSCGEMMotherboardME11.cc.

516  {
517  return cscTmbLUT_->doesWiregroupCrossStrip(key_wg, key_strip, theEndcap, gangedME1a_);
518 }

References cscTmbLUT_, CSCBaseboard::gangedME1a_, and CSCBaseboard::theEndcap.

◆ getLUT()

const CSCGEMMotherboardLUTME11* CSCGEMMotherboardME11::getLUT ( ) const
inlineoverrideprivatevirtual

Implements CSCGEMMotherboard.

Definition at line 48 of file CSCGEMMotherboardME11.h.

48 { return tmbLUT_.get(); }

References tmbLUT_.

◆ readoutLCTs1a()

std::vector< CSCCorrelatedLCTDigi > CSCGEMMotherboardME11::readoutLCTs1a ( ) const

Definition at line 414 of file CSCGEMMotherboardME11.cc.

414 { return readoutLCTsME11(ME1A); }

References ME1A, and readoutLCTsME11().

Referenced by CSCTriggerPrimitivesBuilder::build(), and run().

◆ readoutLCTs1b()

std::vector< CSCCorrelatedLCTDigi > CSCGEMMotherboardME11::readoutLCTs1b ( ) const

Definition at line 416 of file CSCGEMMotherboardME11.cc.

416 { return readoutLCTsME11(ME1B); }

References ME1B, and readoutLCTsME11().

Referenced by CSCTriggerPrimitivesBuilder::build(), and run().

◆ readoutLCTsME11()

std::vector< CSCCorrelatedLCTDigi > CSCGEMMotherboardME11::readoutLCTsME11 ( enum CSCPart  me1ab) const
private

Definition at line 421 of file CSCGEMMotherboardME11.cc.

421  {
422  std::vector<CSCCorrelatedLCTDigi> tmpV;
423 
424  // The start time of the L1A*LCT coincidence window should be related
425  // to the fifo_pretrig parameter, but I am not completely sure how.
426  // Just choose it such that the window is centered at bx=7. This may
427  // need further tweaking if the value of tmb_l1a_window_size changes.
428  //static int early_tbins = 4;
429  // The number of LCT bins in the read-out is given by the
430  // tmb_l1a_window_size parameter, forced to be odd
431  const int lct_bins = (tmb_l1a_window_size % 2 == 0) ? tmb_l1a_window_size + 1 : tmb_l1a_window_size;
432  const int late_tbins = early_tbins + lct_bins;
433 
434  // Start from the vector of all found correlated LCTs and select
435  // those within the LCT*L1A coincidence window.
436  int bx_readout = -1;
437  std::vector<CSCCorrelatedLCTDigi> all_lcts;
438  switch (tmb_cross_bx_algo) {
439  case 0:
440  case 1:
441  allLCTs.getMatched(all_lcts);
442  break;
443  case 2:
445  break;
446  case 3:
448  break;
449  default:
450  LogTrace("CSCGEMMotherboardME11") << "tmb_cross_bx_algo error" << std::endl;
451  break;
452  }
453 
454  for (const auto& lct : all_lcts) {
455  if (!lct.isValid())
456  continue;
457 
458  int bx = lct.getBX();
459  // Skip LCTs found too early relative to L1Accept.
460  if (bx <= early_tbins)
461  continue;
462 
463  // Skip LCTs found too late relative to L1Accept.
464  if (bx > late_tbins)
465  continue;
466 
467  if ((me1ab == CSCPart::ME1B and lct.getStrip() > CSCConstants::MAX_HALF_STRIP_ME1B) or
468  (me1ab == CSCPart::ME1A and lct.getStrip() <= CSCConstants::MAX_HALF_STRIP_ME1B))
469  continue;
470 
471  // If (readout_earliest_2) take only LCTs in the earliest bx in the read-out window:
472  // in digi->raw step, LCTs have to be packed into the TMB header, and
473  // currently there is room just for two.
474  if (readout_earliest_2 and (bx_readout == -1 or bx == bx_readout)) {
475  tmpV.push_back(lct);
476  if (bx_readout == -1)
477  bx_readout = bx;
478  } else
479  tmpV.push_back(lct);
480  }
481  return tmpV;
482 }

References CSCUpgradeMotherboard::allLCTs, l1GtPatternGenerator_cfi::bx, CSCMotherboard::early_tbins, LCTContainer::getMatched(), LogTrace, CSCConstants::MAX_HALF_STRIP_ME1B, ME1A, ME1B, or, CSCMotherboard::readout_earliest_2, sortLCTs(), CSCUpgradeMotherboard::sortLCTsByGEMDphi(), CSCUpgradeMotherboard::sortLCTsByQuality(), CSCUpgradeMotherboard::tmb_cross_bx_algo, and CSCMotherboard::tmb_l1a_window_size.

Referenced by readoutLCTs1a(), and readoutLCTs1b().

◆ run() [1/2]

void CSCGEMMotherboardME11::run ( const CSCWireDigiCollection wiredc,
const CSCComparatorDigiCollection compdc,
const GEMPadDigiClusterCollection gemPads 
)
overridevirtual

Run function for normal usage. Runs cathode and anode LCT processors, takes results and correlates into CorrelatedLCT.

Implements CSCGEMMotherboard.

Definition at line 47 of file CSCGEMMotherboardME11.cc.

49  {
50  std::unique_ptr<GEMPadDigiCollection> gemPads(new GEMPadDigiCollection());
51  coPadProcessor->declusterize(gemClusters, *gemPads);
52  run(wiredc, compdc, gemPads.get());
53 }

References CSCGEMMotherboard::coPadProcessor.

Referenced by CSCTriggerPrimitivesBuilder::build().

◆ run() [2/2]

void CSCGEMMotherboardME11::run ( const CSCWireDigiCollection wiredc,
const CSCComparatorDigiCollection compdc,
const GEMPadDigiCollection gemPads 
)
overridevirtual

Implements CSCGEMMotherboard.

Definition at line 55 of file CSCGEMMotherboardME11.cc.

57  {
59  setupGeometry();
60  debugLUTs();
61 
62  // encode high multiplicity bits
63  unsigned alctBits = alctProc->getHighMultiplictyBits();
65 
66  if (gem_g != nullptr) {
67  if (infoV >= 0)
68  edm::LogInfo("CSCGEMMotherboardME11|SetupInfo") << "+++ run() called for GEM-CSC integrated trigger! +++ \n";
69  gemGeometryAvailable = true;
70  }
71 
72  // check for GEM geometry
73  if (not gemGeometryAvailable) {
74  if (infoV >= 0)
75  edm::LogError("CSCGEMMotherboardME11|SetupError")
76  << "+++ run() called for GEM-CSC integrated trigger without valid GEM geometry! +++ \n";
77  return;
78  }
79  gemCoPadV = coPadProcessor->run(gemPads); // run copad processor in GE1/1
80 
81  if (!(alctProc and clctProc and isSLHC_)) {
82  if (infoV >= 0)
83  edm::LogError("CSCGEMMotherboardME11|SetupError")
84  << "+++ run() called for non-existing ALCT/CLCT processor! +++ \n";
85  return;
86  }
87 
88  alctProc->setCSCGeometry(cscGeometry_);
89  clctProc->setCSCGeometry(cscGeometry_);
90 
91  alctV = alctProc->run(wiredc); // run anodeLCT
92  clctV = clctProc->run(compdc); // run cathodeLCT
93 
94  // if there are no ALCTs and no CLCTs, it does not make sense to run this TMB
95  if (alctV.empty() and clctV.empty())
96  return;
97 
98  if (debug_matching) {
99  LogTrace("CSCGEMMotherboardME11") << "ALL ALCTs from ME11 " << std::endl;
100  for (const auto& alct : alctV)
101  if (alct.isValid())
102  LogTrace("CSCGEMMotherboardME11") << alct << std::endl;
103 
104  LogTrace("CSCGEMMotherboardME11") << "ALL CLCTs from ME11 " << std::endl;
105  for (const auto& clct : clctV)
106  if (clct.isValid())
107  LogTrace("CSCGEMMotherboardME11") << clct << std::endl;
108 
109  LogTrace("CSCGEMMotherboardME11") << "ALL GEM copads from GE11-ME11 " << std::endl;
110  for (const auto& g : gemCoPadV)
111  LogTrace("CSCGEMMotherboardME11") << g << std::endl;
112  }
113 
114  int used_clct_mask[20];
115  for (int b = 0; b < 20; b++)
116  used_clct_mask[b] = 0;
117 
118  retrieveGEMPads(gemPads, gemId);
120 
121  const bool hasPads(!pads_.empty());
122  const bool hasCoPads(hasPads and !coPads_.empty());
123 
124  if (debug_matching)
125  LogTrace("CSCGEMMotherboardME11") << "hascopads " << hasCoPads << std::endl;
126 
127  // ALCT-centric matching
128  for (int bx_alct = 0; bx_alct < CSCConstants::MAX_ALCT_TBINS; bx_alct++) {
129  if (alctProc->getBestALCT(bx_alct).isValid()) {
130  const int bx_clct_start(bx_alct - match_trig_window_size / 2 - alctClctOffset_);
131  const int bx_clct_stop(bx_alct + match_trig_window_size / 2 - alctClctOffset_);
132  const int bx_copad_start(bx_alct - maxDeltaBXCoPad_);
133  const int bx_copad_stop(bx_alct + maxDeltaBXCoPad_);
134 
135  if (debug_matching) {
136  LogTrace("CSCGEMMotherboardME11")
137  << "========================================================================\n"
138  << "ALCT-CLCT matching in ME1/1 chamber: " << cscId_ << "\n"
139  << "------------------------------------------------------------------------\n"
140  << "+++ Best ALCT Details: " << alctProc->getBestALCT(bx_alct) << "\n"
141  << "+++ Second ALCT Details: " << alctProc->getSecondALCT(bx_alct) << std::endl;
142 
143  printGEMTriggerPads(bx_clct_start, bx_clct_stop, CSCPart::ME11);
144  printGEMTriggerCoPads(bx_clct_start, bx_clct_stop, CSCPart::ME11);
145 
146  LogTrace("CSCGEMMotherboardME11")
147  << "------------------------------------------------------------------------ \n"
148  << "Attempt ALCT-CLCT matching in ME1/b in bx range: [" << bx_clct_start << "," << bx_clct_stop << "]"
149  << std::endl;
150  }
151 
152  // ALCT-to-CLCT matching in ME1b
153  int nSuccesFulMatches = 0;
154  for (int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++) {
155  if (bx_clct < 0 or bx_clct >= CSCConstants::MAX_CLCT_TBINS)
156  continue;
157  if (drop_used_clcts and used_clct_mask[bx_clct])
158  continue;
159  if (clctProc->getBestCLCT(bx_clct).isValid()) {
160  if (debug_matching)
161  LogTrace("CSCGEMMotherboardME11") << "++Valid ME1b CLCT: " << clctProc->getBestCLCT(bx_clct) << std::endl;
162 
163  // pick the pad that corresponds
164  matches<GEMPadDigi> mPads;
165  matchingPads<GEMPadDigi>(clctProc->getBestCLCT(bx_clct),
166  clctProc->getSecondCLCT(bx_clct),
167  alctProc->getBestALCT(bx_alct),
168  alctProc->getSecondALCT(bx_alct),
169  mPads);
170  matches<GEMCoPadDigi> mCoPads;
171  matchingPads<GEMCoPadDigi>(clctProc->getBestCLCT(bx_clct),
172  clctProc->getSecondCLCT(bx_clct),
173  alctProc->getBestALCT(bx_alct),
174  alctProc->getSecondALCT(bx_alct),
175  mCoPads);
176 
177  const bool lowQualityCLCT(clctProc->getBestCLCT(bx_clct).getQuality() <= 3);
178  const bool hasMatchingPads(!mPads.empty() or !mCoPads.empty());
179  // Low quality LCTs have at most 3 layers. Check if there is a matching GEM pad to keep the CLCT
180  if (dropLowQualityCLCTsNoGEMs_ME1b_ and lowQualityCLCT and !hasMatchingPads) {
181  LogTrace("CSCGEMMotherboardME11") << "Dropping low quality CLCT without matching GEM pads "
182  << clctProc->getBestCLCT(bx_clct) << std::endl;
183  continue;
184  }
185 
186  if (debug_matching) {
187  LogTrace("CSCGEMMotherboardME11") << "mPads " << mPads.size() << " "
188  << " mCoPads " << mCoPads.size() << std::endl;
189  for (auto p : mPads) {
190  LogTrace("CSCGEMMotherboardME11") << p.first << " " << p.second << std::endl;
191  }
192  for (auto p : mCoPads) {
193  LogTrace("CSCGEMMotherboardME11") << p.first << " " << p.second << std::endl;
194  }
195  }
196  // if (infoV > 1) LogTrace("CSCMotherboard")
197  int mbx = bx_clct - bx_clct_start;
198  correlateLCTsGEM(alctProc->getBestALCT(bx_alct),
199  alctProc->getSecondALCT(bx_alct),
200  clctProc->getBestCLCT(bx_clct),
201  clctProc->getSecondCLCT(bx_clct),
202  mPads,
203  mCoPads,
204  allLCTs(bx_alct, mbx, 0),
205  allLCTs(bx_alct, mbx, 1));
206 
207  if (allLCTs(bx_alct, mbx, 0).isValid()) {
208  ++nSuccesFulMatches;
209  used_clct_mask[bx_clct] += 1;
210 
211  if (debug_matching) {
212  LogTrace("CSCGEMMotherboardME11")
213  << "Successful ALCT-CLCT match in ME1b: bx_alct = " << bx_alct << "; match window: [" << bx_clct_start
214  << "; " << bx_clct_stop << "]; bx_clct = " << bx_clct << "\n"
215  << "+++ Best CLCT Details: " << clctProc->getBestCLCT(bx_clct) << "\n"
216  << "+++ Second CLCT Details: " << clctProc->getSecondCLCT(bx_clct) << std::endl;
217  if (allLCTs(bx_alct, mbx, 0).isValid()) {
218  LogTrace("CSCGEMMotherboardME11") << "LCT #1 " << allLCTs(bx_alct, mbx, 0) << std::endl;
219  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 0).getALCT() << std::endl;
220  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 0).getCLCT() << std::endl;
221  if (allLCTs(bx_alct, mbx, 0).getType() == 2)
222  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 0).getGEM1() << std::endl;
223  if (allLCTs(bx_alct, mbx, 0).getType() == 3)
224  LogTrace("CSCGEMMotherboardME11")
225  << allLCTs(bx_alct, mbx, 0).getGEM1() << " " << allLCTs(bx_alct, mbx, 0).getGEM2() << std::endl;
226  }
227 
228  if (allLCTs(bx_alct, mbx, 1).isValid()) {
229  LogTrace("CSCGEMMotherboardME11") << "LCT #2 " << allLCTs(bx_alct, mbx, 1) << std::endl;
230  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 1).getALCT() << std::endl;
231  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 1).getCLCT() << std::endl;
232  if (allLCTs(bx_alct, mbx, 1).getType() == 2)
233  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 1).getGEM1() << std::endl;
234  if (allLCTs(bx_alct, mbx, 1).getType() == 3)
235  LogTrace("CSCGEMMotherboardME11")
236  << allLCTs(bx_alct, mbx, 1).getGEM1() << " " << allLCTs(bx_alct, mbx, 1).getGEM2() << std::endl;
237  }
238  }
239 
241  break;
242  } else
243  LogTrace("CSCGEMMotherboardME11") << "No valid LCT is built from ALCT-CLCT matching in ME1b" << std::endl;
244  }
245  }
246 
247  // ALCT-to-GEM matching in ME1b
248  int nSuccesFulGEMMatches = 0;
249  if (nSuccesFulMatches == 0 and buildLCTfromALCTandGEM_ME1b_) {
250  if (debug_matching)
251  LogTrace("CSCGEMMotherboardME11") << "++No valid ALCT-CLCT matches in ME1b" << std::endl;
252  for (int bx_gem = bx_copad_start; bx_gem <= bx_copad_stop; bx_gem++) {
253  if (not hasCoPads) {
254  continue;
255  }
256 
257  // find the best matching copad
258  matches<GEMCoPadDigi> copads;
259  matchingPads<CSCALCTDigi, GEMCoPadDigi>(
260  alctProc->getBestALCT(bx_alct), alctProc->getSecondALCT(bx_alct), copads);
261 
262  if (debug_matching)
263  LogTrace("CSCGEMMotherboardME11")
264  << "\t++Number of matching GEM CoPads in BX " << bx_alct << " : " << copads.size() << std::endl;
265  if (copads.empty()) {
266  continue;
267  }
268 
269  CSCGEMMotherboard::correlateLCTsGEM(alctProc->getBestALCT(bx_alct),
270  alctProc->getSecondALCT(bx_alct),
271  copads,
272  allLCTs(bx_alct, 0, 0),
273  allLCTs(bx_alct, 0, 1));
274 
275  if (allLCTs(bx_alct, 0, 0).isValid()) {
276  ++nSuccesFulGEMMatches;
277 
278  if (debug_matching) {
279  LogTrace("CSCGEMMotherboardME11")
280  << "Successful ALCT-GEM CoPad match in ME1b: bx_alct = " << bx_alct << "\n\n"
281  << "------------------------------------------------------------------------" << std::endl
282  << std::endl;
283  if (allLCTs(bx_alct, 0, 0).isValid()) {
284  LogTrace("CSCGEMMotherboardME11") << "LCT #1 " << allLCTs(bx_alct, 0, 0) << std::endl;
285  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, 0, 0).getALCT() << std::endl;
286  if (allLCTs(bx_alct, 0, 0).getType() == 4)
287  LogTrace("CSCGEMMotherboardME11")
288  << allLCTs(bx_alct, 0, 0).getGEM1() << " " << allLCTs(bx_alct, 0, 0).getGEM2() << std::endl
289  << std::endl;
290  } else {
291  LogTrace("CSCGEMMotherboardME11")
292  << "No valid LCT is built from ALCT-GEM matching in ME1b" << std::endl;
293  }
294  if (allLCTs(bx_alct, 0, 1).isValid()) {
295  LogTrace("CSCGEMMotherboardME11") << "LCT #2 " << allLCTs(bx_alct, 0, 1) << std::endl;
296  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, 0, 1).getALCT() << std::endl;
297  if (allLCTs(bx_alct, 0, 1).getType() == 4)
298  LogTrace("CSCGEMMotherboardME11")
299  << allLCTs(bx_alct, 0, 1).getGEM1() << " " << allLCTs(bx_alct, 0, 1).getGEM2() << std::endl
300  << std::endl;
301  }
302  }
303 
305  break;
306  }
307  }
308  }
309 
310  if (debug_matching) {
311  LogTrace("CSCGEMMotherboardME11")
312  << "========================================================================" << std::endl
313  << "Summary: " << std::endl;
314  if (nSuccesFulMatches > 1)
315  LogTrace("CSCGEMMotherboardME11")
316  << "Too many successful ALCT-CLCT matches in ME1/1: " << nSuccesFulMatches << ", CSCDetId " << cscId_
317  << ", bx_alct = " << bx_alct << "; match window: [" << bx_clct_start << "; " << bx_clct_stop << "]"
318  << std::endl;
319  else if (nSuccesFulMatches == 1)
320  LogTrace("CSCGEMMotherboardME11")
321  << "1 successful ALCT-CLCT match in ME1/1: "
322  << " CSCDetId " << cscId_ << ", bx_alct = " << bx_alct << "; match window: [" << bx_clct_start << "; "
323  << bx_clct_stop << "]" << std::endl;
324  else if (nSuccesFulGEMMatches == 1)
325  LogTrace("CSCGEMMotherboardME11")
326  << "1 successful ALCT-GEM match in ME1/1: "
327  << " CSCDetId " << cscId_ << ", bx_alct = " << bx_alct << "; match window: [" << bx_clct_start << "; "
328  << bx_clct_stop << "]" << std::endl;
329  else
330  LogTrace("CSCGEMMotherboardME11") << "Unsuccessful ALCT-CLCT match in ME1/1: "
331  << "CSCDetId " << cscId_ << ", bx_alct = " << bx_alct << "; match window: ["
332  << bx_clct_start << "; " << bx_clct_stop << "]" << std::endl;
333  }
334  } // end of ALCT valid block
335  else {
336  auto coPads(coPads_[bx_alct]);
337  if (!coPads.empty()) {
338  // keep it simple for the time being, only consider the first copad
339  const int bx_clct_start(bx_alct - match_trig_window_size / 2 - alctClctOffset_);
340  const int bx_clct_stop(bx_alct + match_trig_window_size / 2 - alctClctOffset_);
341 
342  // matching in ME1b
344  for (int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++) {
345  if (bx_clct < 0 or bx_clct >= CSCConstants::MAX_CLCT_TBINS)
346  continue;
347  if (drop_used_clcts and used_clct_mask[bx_clct])
348  continue;
349  if (clctProc->getBestCLCT(bx_clct).isValid()) {
350  const int quality(clctProc->getBestCLCT(bx_clct).getQuality());
351  // only use high-Q stubs for the time being
352  if (quality < 4)
353  continue;
354  int mbx = bx_clct - bx_clct_start;
355  CSCGEMMotherboard::correlateLCTsGEM(clctProc->getBestCLCT(bx_clct),
356  clctProc->getSecondCLCT(bx_clct),
357  coPads,
358  allLCTs(bx_alct, mbx, 0),
359  allLCTs(bx_alct, mbx, 1));
360  if (allLCTs(bx_alct, mbx, 0).isValid()) {
361  used_clct_mask[bx_clct] += 1;
362 
363  if (debug_matching) {
364  // if (infoV > 1) LogTrace("CSCMotherboard")
365  LogTrace("CSCGEMMotherboardME11")
366  << "Successful GEM-CLCT match in ME1b: bx_alct = " << bx_alct << "; match window: ["
367  << bx_clct_start << "; " << bx_clct_stop << "]; bx_clct = " << bx_clct << "\n"
368  << "+++ Best CLCT Details: " << clctProc->getBestCLCT(bx_clct) << "\n"
369  << "+++ Second CLCT Details: " << clctProc->getSecondCLCT(bx_clct) << std::endl;
370 
371  LogTrace("CSCGEMMotherboardME11") << "LCT #1 " << allLCTs(bx_alct, mbx, 0) << std::endl;
372  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 0).getALCT() << std::endl;
373  if (allLCTs(bx_alct, mbx, 0).getType() == 5)
374  LogTrace("CSCGEMMotherboardME11")
375  << allLCTs(bx_alct, mbx, 0).getGEM1() << " " << allLCTs(bx_alct, mbx, 0).getGEM2() << std::endl
376  << std::endl;
377 
378  LogTrace("CSCGEMMotherboardME11") << "LCT #2 " << allLCTs(bx_alct, mbx, 1) << std::endl;
379  LogTrace("CSCGEMMotherboardME11") << allLCTs(bx_alct, mbx, 1).getALCT() << std::endl;
380  if (allLCTs(bx_alct, mbx, 1).getType() == 5)
381  LogTrace("CSCGEMMotherboardME11")
382  << allLCTs(bx_alct, mbx, 1).getGEM1() << " " << allLCTs(bx_alct, mbx, 1).getGEM2() << std::endl
383  << std::endl;
384  }
385 
387  break;
388  }
389  }
390  } //end of clct loop
391  }
392  } // if (!coPads.empty())
393  }
394  } // end of ALCT-centric matching
395 
396  if (debug_matching) {
397  LogTrace("CSCGEMMotherboardME11") << "======================================================================== \n"
398  << "Counting the final LCTs in CSCGEMMotherboard ME11\n"
399  << "======================================================================== \n"
400  << "tmb_cross_bx_algo: " << tmb_cross_bx_algo << std::endl;
401  unsigned int n1b = 0, n1a = 0;
402  for (const auto& p : readoutLCTs1b()) {
403  n1b++;
404  LogTrace("CSCGEMMotherboardME11") << "1b LCT " << n1b << " " << p << std::endl;
405  }
406 
407  for (const auto& p : readoutLCTs1a()) {
408  n1a++;
409  LogTrace("CSCGEMMotherboardME11") << "1a LCT " << n1a << " " << p << std::endl;
410  }
411  }
412 }

References CSCBaseboard::alctClctOffset_, CSCMotherboard::alctProc, CSCMotherboard::alctV, CSCUpgradeMotherboard::allLCTs, b, buildLCTfromALCTandGEM_ME1b_, buildLCTfromCLCTandGEM_ME1b_, CSCMotherboard::clctProc, clctV, CSCGEMMotherboard::clear(), CSCGEMMotherboard::coPadProcessor, CSCGEMMotherboard::coPads_, correlateLCTsGEM(), CSCGEMMotherboard::correlateLCTsGEM(), CSCBaseboard::cscGeometry_, CSCBaseboard::cscId_, CSCUpgradeMotherboard::debug_matching, CSCUpgradeMotherboard::debugLUTs(), CSCMotherboard::drop_used_clcts, dropLowQualityCLCTsNoGEMs_ME1b_, CSCMotherboard::encodeHighMultiplicityBits(), g, CSCGEMMotherboard::gem_g, CSCGEMMotherboard::gemCoPadV, CSCGEMMotherboard::gemGeometryAvailable, CSCGEMMotherboard::gemId, CSCBaseboard::infoV, CSCBaseboard::isSLHC_, LogTrace, CSCUpgradeMotherboard::match_earliest_clct_only, CSCMotherboard::match_trig_window_size, CSCConstants::MAX_ALCT_TBINS, CSCConstants::MAX_CLCT_TBINS, CSCGEMMotherboard::maxDeltaBXCoPad_, ME11, or, AlCaHLTBitMon_ParallelJobs::p, CSCGEMMotherboard::pads_, CSCGEMMotherboard::printGEMTriggerCoPads(), CSCGEMMotherboard::printGEMTriggerPads(), qcdUeDQM_cfi::quality, readoutLCTs1a(), readoutLCTs1b(), CSCGEMMotherboard::retrieveGEMCoPads(), CSCGEMMotherboard::retrieveGEMPads(), CSCGEMMotherboard::setupGeometry(), and CSCUpgradeMotherboard::tmb_cross_bx_algo.

◆ sortLCTs() [1/2]

void CSCGEMMotherboardME11::sortLCTs ( std::vector< CSCCorrelatedLCTDigi > &  LCTs,
bool(*)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)  sorter 
) const
private

Definition at line 498 of file CSCGEMMotherboardME11.cc.

499  {
500  for (int bx = 0; bx < CSCConstants::MAX_LCT_TBINS; bx++) {
501  // temporary collection with all LCTs in the whole chamber
502  std::vector<CSCCorrelatedLCTDigi> LCTs_tmp;
504 
505  // Add the LCTs
506  for (const auto& p : LCTs_tmp) {
507  LCTs.push_back(p);
508  }
509  }
510 }

References l1GtPatternGenerator_cfi::bx, CSCConstants::MAX_LCT_TBINS, AlCaHLTBitMon_ParallelJobs::p, and sortLCTs().

◆ sortLCTs() [2/2]

void CSCGEMMotherboardME11::sortLCTs ( std::vector< CSCCorrelatedLCTDigi > &  LCTs,
int  bx,
bool(*)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)  sorter 
) const
private

Methods to sort the LCTs

Definition at line 486 of file CSCGEMMotherboardME11.cc.

488  {
489  allLCTs.getTimeMatched(bx, LCTs);
490 
492 
493  if (LCTs.size() > max_lcts)
494  LCTs.erase(LCTs.begin() + max_lcts, LCTs.end());
495 }

References CSCUpgradeMotherboard::allLCTs, l1GtPatternGenerator_cfi::bx, LCTContainer::getTimeMatched(), CSCUpgradeMotherboard::max_lcts, and CSCUpgradeMotherboard::sortLCTs().

Referenced by readoutLCTsME11(), and sortLCTs().

Member Data Documentation

◆ buildLCTfromALCTandGEM_ME1a_

bool CSCGEMMotherboardME11::buildLCTfromALCTandGEM_ME1a_
private

Definition at line 89 of file CSCGEMMotherboardME11.h.

◆ buildLCTfromALCTandGEM_ME1b_

bool CSCGEMMotherboardME11::buildLCTfromALCTandGEM_ME1b_
private

Definition at line 90 of file CSCGEMMotherboardME11.h.

Referenced by run().

◆ buildLCTfromCLCTandGEM_ME1a_

bool CSCGEMMotherboardME11::buildLCTfromCLCTandGEM_ME1a_
private

Definition at line 91 of file CSCGEMMotherboardME11.h.

◆ buildLCTfromCLCTandGEM_ME1b_

bool CSCGEMMotherboardME11::buildLCTfromCLCTandGEM_ME1b_
private

Definition at line 92 of file CSCGEMMotherboardME11.h.

Referenced by run().

◆ clctV

std::vector<CSCCLCTDigi> CSCGEMMotherboardME11::clctV
private

Definition at line 80 of file CSCGEMMotherboardME11.h.

Referenced by run().

◆ cscTmbLUT_

std::unique_ptr<CSCMotherboardLUTME11> CSCGEMMotherboardME11::cscTmbLUT_
private

◆ dropLowQualityALCTsNoGEMs_ME1a_

bool CSCGEMMotherboardME11::dropLowQualityALCTsNoGEMs_ME1a_
private

Definition at line 85 of file CSCGEMMotherboardME11.h.

◆ dropLowQualityALCTsNoGEMs_ME1b_

bool CSCGEMMotherboardME11::dropLowQualityALCTsNoGEMs_ME1b_
private

Definition at line 86 of file CSCGEMMotherboardME11.h.

◆ dropLowQualityCLCTsNoGEMs_ME1a_

bool CSCGEMMotherboardME11::dropLowQualityCLCTsNoGEMs_ME1a_
private

Definition at line 83 of file CSCGEMMotherboardME11.h.

◆ dropLowQualityCLCTsNoGEMs_ME1b_

bool CSCGEMMotherboardME11::dropLowQualityCLCTsNoGEMs_ME1b_
private

Definition at line 84 of file CSCGEMMotherboardME11.h.

Referenced by run().

◆ promoteCLCTGEMquality_ME1a_

bool CSCGEMMotherboardME11::promoteCLCTGEMquality_ME1a_
private

Definition at line 95 of file CSCGEMMotherboardME11.h.

◆ promoteCLCTGEMquality_ME1b_

bool CSCGEMMotherboardME11::promoteCLCTGEMquality_ME1b_
private

Definition at line 96 of file CSCGEMMotherboardME11.h.

◆ tmbLUT_

std::unique_ptr<CSCGEMMotherboardLUTME11> CSCGEMMotherboardME11::tmbLUT_
private

Definition at line 49 of file CSCGEMMotherboardME11.h.

Referenced by CSCGEMMotherboardME11(), and getLUT().

ME11
Definition: CSCUpgradeMotherboardLUT.h:12
CSCBaseboard::theEndcap
const unsigned theEndcap
Definition: CSCBaseboard.h:42
CSCMotherboard::match_trig_window_size
unsigned int match_trig_window_size
Definition: CSCMotherboard.h:99
CSCGEMMotherboardME11::clctV
std::vector< CSCCLCTDigi > clctV
Definition: CSCGEMMotherboardME11.h:80
CSCGEMMotherboardLUTME11
Definition: CSCUpgradeMotherboardLUT.h:78
GEMPadDigi
Definition: GEMPadDigi.h:15
CSCBaseboard::cscGeometry_
const CSCGeometry * cscGeometry_
Definition: CSCBaseboard.h:63
CSCBaseboard::isSLHC_
bool isSLHC_
Definition: CSCBaseboard.h:82
CSCConstants::MAX_ALCT_TBINS
Definition: CSCConstants.h:62
CSCBaseboard::tmbParams_
edm::ParameterSet tmbParams_
Definition: CSCBaseboard.h:70
relativeConstraints.station
station
Definition: relativeConstraints.py:67
CSCMotherboard::alctProc
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
Definition: CSCMotherboard.h:75
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CSCALCTDigi::clear
void clear()
clear this ALCT
Definition: CSCALCTDigi.cc:43
edm::LogInfo
Definition: MessageLogger.h:254
CSCGEMMotherboard::gemGeometryAvailable
bool gemGeometryAvailable
Definition: CSCGEMMotherboard.h:207
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
CSCGEMMotherboardME11::run
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads) override
Definition: CSCGEMMotherboardME11.cc:47
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:66
CSCGEMMotherboardME11::readoutLCTs1a
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
Definition: CSCGEMMotherboardME11.cc:414
CSCGEMMotherboard::coPads_
GEMCoPadDigiIdsBX coPads_
Definition: CSCGEMMotherboard.h:213
CSCUpgradeMotherboard::tmb_cross_bx_algo
unsigned int tmb_cross_bx_algo
Definition: CSCUpgradeMotherboard.h:109
CSCUpgradeMotherboard::debugLUTs
void debugLUTs()
Definition: CSCUpgradeMotherboard.cc:274
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCGEMMotherboardME11::buildLCTfromCLCTandGEM_ME1a_
bool buildLCTfromCLCTandGEM_ME1a_
Definition: CSCGEMMotherboardME11.h:91
CSCGEMMotherboard::setupGeometry
void setupGeometry()
Definition: CSCGEMMotherboard.cc:276
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCCorrelatedLCTDigi::ALCTCLCT
Definition: CSCCorrelatedLCTDigi.h:160
CSCGEMMotherboardME11::dropLowQualityCLCTsNoGEMs_ME1b_
bool dropLowQualityCLCTsNoGEMs_ME1b_
Definition: CSCGEMMotherboardME11.h:84
CSCMotherboard::clctProc
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
Definition: CSCMotherboard.h:78
LCTContainer::getMatched
void getMatched(std::vector< CSCCorrelatedLCTDigi > &) const
Definition: LCTContainer.cc:23
CSCMotherboard::alctV
std::vector< CSCALCTDigi > alctV
Definition: CSCMotherboard.h:83
CSCMotherboard::constructLCTs
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const
Definition: CSCMotherboard.cc:476
CSCGEMMotherboard::correlateLCTsGEM
void correlateLCTsGEM(const T &best, const T &second, const GEMCoPadDigiIds &coPads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
Definition: CSCGEMMotherboard.h:464
CSCGEMMotherboardME11::tmbLUT_
std::unique_ptr< CSCGEMMotherboardLUTME11 > tmbLUT_
Definition: CSCGEMMotherboardME11.h:49
CSCGEMMotherboard::CSCGEMMotherboard
CSCGEMMotherboard()
Definition: CSCGEMMotherboard.cc:29
CSCGEMMotherboardME11::buildLCTfromALCTandGEM_ME1a_
bool buildLCTfromALCTandGEM_ME1a_
Definition: CSCGEMMotherboardME11.h:89
CSCUpgradeMotherboard::match_earliest_clct_only
bool match_earliest_clct_only
Definition: CSCUpgradeMotherboard.h:106
CSCBaseboard::alctClctOffset_
unsigned int alctClctOffset_
Definition: CSCBaseboard.h:95
CSCUpgradeMotherboard::sortLCTsByGEMDphi
static bool sortLCTsByGEMDphi(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
Definition: CSCUpgradeMotherboard.cc:283
CSCConstants::MAX_LCT_TBINS
Definition: CSCConstants.h:63
CSCGEMMotherboard::printGEMTriggerCoPads
void printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart)
Definition: CSCGEMMotherboard.cc:306
CSCGEMMotherboard::gemId
unsigned gemId
Definition: CSCGEMMotherboard.h:202
CSCBaseboard::gangedME1a_
bool gangedME1a_
Definition: CSCBaseboard.h:86
CSCGEMMotherboardME11::dropLowQualityALCTsNoGEMs_ME1b_
bool dropLowQualityALCTsNoGEMs_ME1b_
Definition: CSCGEMMotherboardME11.h:86
b
double b
Definition: hdecay.h:118
CSCGEMMotherboard::coPadProcessor
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
Definition: CSCGEMMotherboard.h:63
CSCGEMMotherboard::gemCoPadV
std::vector< GEMCoPadDigi > gemCoPadV
Definition: CSCGEMMotherboard.h:209
CSCGEMMotherboardME11::cscTmbLUT_
std::unique_ptr< CSCMotherboardLUTME11 > cscTmbLUT_
Definition: CSCGEMMotherboardME11.h:50
GEMCoPadDigi
Definition: GEMCoPadDigi.h:16
CSCGEMMotherboardME11::readoutLCTs1b
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
Definition: CSCGEMMotherboardME11.cc:416
edm::LogError
Definition: MessageLogger.h:183
a
double a
Definition: hdecay.h:119
ME1A
Definition: CSCUpgradeMotherboardLUT.h:12
CSCMotherboardLUTME11
Definition: CSCUpgradeMotherboardLUT.h:15
CSCUpgradeMotherboard::debug_matching
bool debug_matching
Definition: CSCUpgradeMotherboard.h:115
sorter
Definition: SETFilter.cc:31
CSCConstants::MAX_HALF_STRIP_ME1B
Definition: CSCConstants.h:39
CSCGEMMotherboardME11::dropLowQualityCLCTsNoGEMs_ME1a_
bool dropLowQualityCLCTsNoGEMs_ME1a_
Definition: CSCGEMMotherboardME11.h:83
LCTContainer::getTimeMatched
void getTimeMatched(const int bx, std::vector< CSCCorrelatedLCTDigi > &) const
Definition: LCTContainer.cc:7
CSCGEMMotherboardME11::promoteCLCTGEMquality_ME1a_
bool promoteCLCTGEMquality_ME1a_
Definition: CSCGEMMotherboardME11.h:95
CSCMotherboard::early_tbins
int early_tbins
Definition: CSCMotherboard.h:108
CSCCLCTDigi::isValid
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:45
CSCGEMMotherboardME11::sortLCTs
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &, int bx, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
Definition: CSCGEMMotherboardME11.cc:486
CSCUpgradeMotherboard::sortLCTs
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
Definition: CSCUpgradeMotherboard.cc:287
CSCGEMMotherboardME11::correlateLCTsGEM
void correlateLCTsGEM(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, const GEMPadDigiIds &pads, const GEMCoPadDigiIds &copads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
Definition: CSCGEMMotherboardME11.cc:520
CSCGEMMotherboard::retrieveGEMCoPads
void retrieveGEMCoPads()
Definition: CSCGEMMotherboard.cc:57
CSCGEMMotherboardME11::doesALCTCrossCLCT
bool doesALCTCrossCLCT(const CSCALCTDigi &a, const CSCCLCTDigi &c) const
Definition: CSCGEMMotherboardME11.cc:512
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
CSCMotherboard::readout_earliest_2
bool readout_earliest_2
Definition: CSCMotherboard.h:111
CSCMotherboard::drop_used_clcts
bool drop_used_clcts
Definition: CSCMotherboard.h:105
CSCMotherboard::encodeHighMultiplicityBits
void encodeHighMultiplicityBits(unsigned alctBits)
Definition: CSCMotherboard.cc:630
CSCUpgradeMotherboard::sortLCTsByQuality
static bool sortLCTsByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
Definition: CSCUpgradeMotherboard.cc:279
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
CSCUpgradeMotherboard::allLCTs
LCTContainer allLCTs
Definition: CSCUpgradeMotherboard.h:98
CSCMotherboard::tmb_l1a_window_size
unsigned int tmb_l1a_window_size
Definition: CSCMotherboard.h:99
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
CSCGEMMotherboardME11::promoteCLCTGEMquality_ME1b_
bool promoteCLCTGEMquality_ME1b_
Definition: CSCGEMMotherboardME11.h:96
CSCCLCTDigi::clear
void clear()
clear this CLCT
Definition: CSCCLCTDigi.cc:68
CSCALCTDigi
Definition: CSCALCTDigi.h:16
CSCGEMMotherboard::printGEMTriggerPads
void printGEMTriggerPads(int bx_start, int bx_stop, enum CSCPart)
Definition: CSCGEMMotherboard.cc:285
CSCGEMMotherboardME11::readoutLCTsME11
std::vector< CSCCorrelatedLCTDigi > readoutLCTsME11(enum CSCPart me1ab) const
Definition: CSCGEMMotherboardME11.cc:421
CSCConstants::MAX_CLCT_TBINS
Definition: CSCConstants.h:61
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
CSCGEMMotherboardME11::dropLowQualityALCTsNoGEMs_ME1a_
bool dropLowQualityALCTsNoGEMs_ME1a_
Definition: CSCGEMMotherboardME11.h:85
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
CSCGEMMotherboardME11::buildLCTfromCLCTandGEM_ME1b_
bool buildLCTfromCLCTandGEM_ME1b_
Definition: CSCGEMMotherboardME11.h:92
CSCGEMMotherboard::pads_
GEMPadDigiIdsBX pads_
Definition: CSCGEMMotherboard.h:212
CSCGEMMotherboard::maxDeltaBXCoPad_
int maxDeltaBXCoPad_
Definition: CSCGEMMotherboard.h:217
CSCBaseboard::cscId_
CSCDetId cscId_
Definition: CSCBaseboard.h:55
CSCALCTDigi::isValid
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:37
CSCGEMMotherboard::retrieveGEMPads
void retrieveGEMPads(const GEMPadDigiCollection *pads, unsigned id)
Definition: CSCGEMMotherboard.cc:39
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
GEMPadDigi::isValid
bool isValid() const
Definition: GEMPadDigi.cc:22
CSCUpgradeMotherboard::max_lcts
unsigned int max_lcts
Definition: CSCUpgradeMotherboard.h:112
CSCGEMMotherboard::gem_g
const GEMGeometry * gem_g
Definition: CSCGEMMotherboard.h:206
CSCGEMMotherboardME11::buildLCTfromALCTandGEM_ME1b_
bool buildLCTfromALCTandGEM_ME1b_
Definition: CSCGEMMotherboardME11.h:90
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
GEMCoPadDigi::isValid
bool isValid() const
Definition: GEMCoPadDigi.cc:18
ME1B
Definition: CSCUpgradeMotherboardLUT.h:12
CSCBaseboard::infoV
int infoV
Definition: CSCBaseboard.h:61