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 ()
 
void checkValid (const CSCCorrelatedLCTDigi &lct) const
 
CSCCorrelatedLCTDigi constructLCTs (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const
 
void correlateLCTs (const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type)
 
void dumpConfigParams () const
 
void encodeHighMultiplicityBits (unsigned alctBits)
 
unsigned int encodePattern (const int clctPattern) const
 
unsigned int findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
 
CSCALCTDigi getBXShiftedALCT (const CSCALCTDigi &) const
 
CSCCLCTDigi getBXShiftedCLCT (const CSCCLCTDigi &) const
 
- 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 use_run3_patterns_
 
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 isME21_
 
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|SetupError") << "+++ TMB constructed while isSLHC is not set! +++\n";
24  }
25 
26  if (!runME11ILT_) {
27  edm::LogError("CSCGEMMotherboardME11|SetupError") << "+++ TMB constructed while runME11ILT_ is not set! +++\n";
28  };
29 
30  // set LUTs
31  tmbLUT_.reset(new CSCGEMMotherboardLUTME11());
32  cscTmbLUT_.reset(new CSCMotherboardLUTME11());
33 }

References cscTmbLUT_, CSCBaseboard::isSLHC_, CSCBaseboard::runME11ILT_, and tmbLUT_.

◆ CSCGEMMotherboardME11() [2/2]

CSCGEMMotherboardME11::CSCGEMMotherboardME11 ( )

Constructor for use during testing.

Definition at line 35 of file CSCGEMMotherboardME11.cc.

35  : CSCGEMMotherboard() {
36  // Constructor used only for testing.
37  if (!isSLHC_) {
38  edm::LogError("CSCGEMMotherboardME11|SetupError") << "+++ TMB constructed while isSLHC is not set! +++\n";
39  }
40 
41  if (!runME11ILT_) {
42  edm::LogError("CSCGEMMotherboardME11|SetupError") << "+++ TMB constructed while runME11ILT_ is not set! +++\n";
43  }
44 }

References CSCBaseboard::isSLHC_, and CSCBaseboard::runME11ILT_.

◆ ~CSCGEMMotherboardME11()

CSCGEMMotherboardME11::~CSCGEMMotherboardME11 ( )
override

Default destructor.

Definition at line 46 of file CSCGEMMotherboardME11.cc.

46 {}

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 532 of file CSCGEMMotherboardME11.cc.

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

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 524 of file CSCGEMMotherboardME11.cc.

524  {
525  return cscTmbLUT_->doesALCTCrossCLCT(a, c, theEndcap, gangedME1a_);
526 }

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 528 of file CSCGEMMotherboardME11.cc.

528  {
529  return cscTmbLUT_->doesWiregroupCrossStrip(key_wg, key_strip, theEndcap, gangedME1a_);
530 }

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 420 of file CSCGEMMotherboardME11.cc.

420 { return readoutLCTsME11(ME1A); }

References ME1A, and readoutLCTsME11().

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

◆ readoutLCTs1b()

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

Definition at line 422 of file CSCGEMMotherboardME11.cc.

422 { 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 427 of file CSCGEMMotherboardME11.cc.

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

References CSCUpgradeMotherboard::allLCTs, l1GtPatternGenerator_cfi::bx, CSCMotherboard::checkValid(), 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 55 of file CSCGEMMotherboardME11.cc.

57  {
58  std::unique_ptr<GEMPadDigiCollection> gemPads(new GEMPadDigiCollection());
59  coPadProcessor->declusterize(gemClusters, *gemPads);
60  run(wiredc, compdc, gemPads.get());
61 }

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 63 of file CSCGEMMotherboardME11.cc.

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

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, 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 510 of file CSCGEMMotherboardME11.cc.

511  {
512  for (int bx = 0; bx < CSCConstants::MAX_LCT_TBINS; bx++) {
513  // temporary collection with all LCTs in the whole chamber
514  std::vector<CSCCorrelatedLCTDigi> LCTs_tmp;
516 
517  // Add the LCTs
518  for (const auto& p : LCTs_tmp) {
519  LCTs.push_back(p);
520  }
521  }
522 }

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 498 of file CSCGEMMotherboardME11.cc.

500  {
501  allLCTs.getTimeMatched(bx, LCTs);
502 
504 
505  if (LCTs.size() > max_lcts)
506  LCTs.erase(LCTs.begin() + max_lcts, LCTs.end());
507 }

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
CSCMotherboard::checkValid
void checkValid(const CSCCorrelatedLCTDigi &lct) const
Definition: CSCMotherboard.cc:647
GEMPadDigi
Definition: GEMPadDigi.h:15
CSCBaseboard::cscGeometry_
const CSCGeometry * cscGeometry_
Definition: CSCBaseboard.h:64
CSCBaseboard::isSLHC_
bool isSLHC_
Definition: CSCBaseboard.h:83
CSCConstants::MAX_ALCT_TBINS
Definition: CSCConstants.h:62
CSCBaseboard::tmbParams_
edm::ParameterSet tmbParams_
Definition: CSCBaseboard.h:71
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:55
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:71
CSCGEMMotherboardME11::readoutLCTs1a
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
Definition: CSCGEMMotherboardME11.cc:420
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:299
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCGEMMotherboardME11::buildLCTfromCLCTandGEM_ME1a_
bool buildLCTfromCLCTandGEM_ME1a_
Definition: CSCGEMMotherboardME11.h:91
CSCGEMMotherboard::setupGeometry
void setupGeometry()
Definition: CSCGEMMotherboard.cc:281
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCCorrelatedLCTDigi::ALCTCLCT
Definition: CSCCorrelatedLCTDigi.h:160
CSCGEMMotherboardME11::dropLowQualityCLCTsNoGEMs_ME1b_
bool dropLowQualityCLCTsNoGEMs_ME1b_
Definition: CSCGEMMotherboardME11.h:84
CSCBaseboard::runME11ILT_
bool runME11ILT_
Definition: CSCBaseboard.h:99
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:484
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:30
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:96
CSCUpgradeMotherboard::sortLCTsByGEMDphi
static bool sortLCTsByGEMDphi(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
Definition: CSCUpgradeMotherboard.cc:308
CSCConstants::MAX_LCT_TBINS
Definition: CSCConstants.h:63
CSCGEMMotherboard::printGEMTriggerCoPads
void printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart)
Definition: CSCGEMMotherboard.cc:311
CSCGEMMotherboard::gemId
unsigned gemId
Definition: CSCGEMMotherboard.h:202
CSCBaseboard::gangedME1a_
bool gangedME1a_
Definition: CSCBaseboard.h:87
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:422
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:498
CSCUpgradeMotherboard::sortLCTs
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
Definition: CSCUpgradeMotherboard.cc:312
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:532
CSCGEMMotherboard::retrieveGEMCoPads
void retrieveGEMCoPads()
Definition: CSCGEMMotherboard.cc:62
CSCGEMMotherboardME11::doesALCTCrossCLCT
bool doesALCTCrossCLCT(const CSCALCTDigi &a, const CSCCLCTDigi &c) const
Definition: CSCGEMMotherboardME11.cc:524
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:638
CSCUpgradeMotherboard::sortLCTsByQuality
static bool sortLCTsByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
Definition: CSCUpgradeMotherboard.cc:304
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:290
CSCGEMMotherboardME11::readoutLCTsME11
std::vector< CSCCorrelatedLCTDigi > readoutLCTsME11(enum CSCPart me1ab) const
Definition: CSCGEMMotherboardME11.cc:427
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:34
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:56
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:40
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:62