CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Protected Member Functions | Protected Attributes
CSCBaseboard Class Reference

#include <CSCBaseboard.h>

Inheritance diagram for CSCBaseboard:
CSCAnodeLCTProcessor CSCCathodeLCTProcessor CSCMotherboard LCTQualityAssignment LCTQualityControl CSCUpgradeAnodeLCTProcessor CSCUpgradeCathodeLCTProcessor CSCGEMMotherboard

Classes

struct  Parameters
 

Public Member Functions

 CSCBaseboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, Parameters &conf)
 
 CSCBaseboard ()
 
std::string getCSCName () const
 
CSCDetId id () const
 
virtual ~CSCBaseboard ()=default
 

Protected Member Functions

void checkConfigParameters (unsigned int &var, const unsigned int var_max, const unsigned int var_def, const std::string &var_str)
 
const CSCChambercscChamber (CSCGeometry const &) const
 

Protected Attributes

CSCDetId cscId_
 
bool disableME1a_
 
bool enableAlctPhase2_
 
bool gangedME1a_
 
int infoV
 
bool isME11_
 
bool isME12_
 
bool isME13_
 
bool isME21_
 
bool isME22_
 
bool isME31_
 
bool isME32_
 
bool isME41_
 
bool isME42_
 
bool run3_
 
bool runCCLUT_
 
bool runCCLUT_OTMB_
 
bool runCCLUT_TMB_
 
bool runME11ILT_
 
bool runME11Up_
 
bool runME21ILT_
 
bool runME21Up_
 
bool runME31Up_
 
bool runME41Up_
 
bool runPhase2_
 
unsigned theChamber
 
std::string theCSCName_
 
const unsigned theEndcap
 
int theRegion
 
unsigned theRing
 
const unsigned theSector
 
const unsigned theStation
 
const unsigned theSubsector
 
const unsigned theTrigChamber
 

Detailed Description

Definition at line 13 of file CSCBaseboard.h.

Constructor & Destructor Documentation

◆ CSCBaseboard() [1/2]

CSCBaseboard::CSCBaseboard ( unsigned  endcap,
unsigned  station,
unsigned  sector,
unsigned  subsector,
unsigned  chamber,
Parameters conf 
)

Normal constructor.

Definition at line 23 of file CSCBaseboard.cc.

References CSCTriggerNumbering::chamberFromTriggerLabels(), CSCDetId::chamberName(), CSCBaseboard::Parameters::chooseParams(), CSCBaseboard::Parameters::commonParams(), cscId_, disableME1a_, enableAlctPhase2_, gangedME1a_, edm::ParameterSet::getParameter(), isME11_, isME12_, isME13_, isME21_, isME22_, isME31_, isME32_, isME41_, isME42_, or, CSCTriggerNumbering::ringFromTriggerLabels(), run3_, runCCLUT_, runCCLUT_OTMB_, runCCLUT_TMB_, runME11ILT_, runME11Up_, runME21ILT_, runME21Up_, runME31Up_, runME41Up_, runPhase2_, theChamber, theCSCName_, theEndcap, theRegion, theRing, theSector, theStation, theSubsector, and theTrigChamber.

26  theRegion = (theEndcap == 1) ? 1 : -1;
27 
29 
31  isME11_ = (theStation == 1 && theRing == 1);
32  isME21_ = (theStation == 2 && theRing == 1);
33  isME31_ = (theStation == 3 && theRing == 1);
34  isME41_ = (theStation == 4 && theRing == 1);
35  isME12_ = (theStation == 1 && theRing == 2);
36  isME22_ = (theStation == 2 && theRing == 2);
37  isME32_ = (theStation == 3 && theRing == 2);
38  isME42_ = (theStation == 4 && theRing == 2);
39  isME13_ = (theStation == 1 && theRing == 3);
40 
41  const bool hasTMB(isME12_ or isME22_ or isME32_ or isME42_ or isME13_);
42  const bool hasOTMB(isME11_ or isME21_ or isME31_ or isME41_);
44 
46 
47  runPhase2_ = conf.commonParams().getParameter<bool>("runPhase2");
48 
49  enableAlctPhase2_ = conf.commonParams().getParameter<bool>("enableAlctPhase2");
50 
51  disableME1a_ = conf.commonParams().getParameter<bool>("disableME1a");
52 
53  gangedME1a_ = conf.commonParams().getParameter<bool>("gangedME1a");
54 
55  runME11Up_ = conf.commonParams().getParameter<bool>("runME11Up");
56  runME21Up_ = conf.commonParams().getParameter<bool>("runME21Up");
57  runME31Up_ = conf.commonParams().getParameter<bool>("runME31Up");
58  runME41Up_ = conf.commonParams().getParameter<bool>("runME41Up");
59 
60  runME11ILT_ = conf.commonParams().getParameter<bool>("runME11ILT");
61  runME21ILT_ = conf.commonParams().getParameter<bool>("runME21ILT");
62 
63  run3_ = conf.commonParams().getParameter<bool>("run3");
64  runCCLUT_TMB_ = conf.commonParams().getParameter<bool>("runCCLUT_TMB");
65  runCCLUT_OTMB_ = conf.commonParams().getParameter<bool>("runCCLUT_OTMB");
66  // check if CCLUT should be on in this chamber
67  runCCLUT_ = (hasTMB and runCCLUT_TMB_) or (hasOTMB and runCCLUT_OTMB_);
68 
69  // general case
70  std::string_view tmbParams = "tmbPhase1";
71  std::string_view alctParams = "alctPhase1";
72  std::string_view clctParams = "clctPhase1";
73 
74  const bool upgradeME11 = runPhase2_ and isME11_ and runME11Up_;
75  const bool upgradeME21 = runPhase2_ and isME21_ and runME21Up_;
76  const bool upgradeME31 = runPhase2_ and isME31_ and runME31Up_;
77  const bool upgradeME41 = runPhase2_ and isME41_ and runME41Up_;
78  const bool upgradeME = upgradeME11 or upgradeME21 or upgradeME31 or upgradeME41;
79 
80  if (upgradeME) {
81  tmbParams = "tmbPhase2";
82  clctParams = "clctPhase2";
83  // upgrade ME1/1
84  if (upgradeME11) {
85  // do not run the Phase-2 ALCT for Run-3
86  if (enableAlctPhase2_) {
87  alctParams = "alctPhase2";
88  }
89 
90  if (runME11ILT_) {
91  tmbParams = "tmbPhase2GE11";
92  clctParams = "clctPhase2GEM";
93  }
94  }
95  // upgrade ME2/1
96  if (upgradeME21 and runME21ILT_) {
97  tmbParams = "tmbPhase2GE21";
98  clctParams = "clctPhase2GEM";
99  alctParams = "alctPhase2GEM";
100  }
101  }
102  conf.chooseParams(tmbParams, alctParams, clctParams);
103 }
const unsigned theEndcap
Definition: CSCBaseboard.h:74
bool enableAlctPhase2_
Definition: CSCBaseboard.h:108
bool runCCLUT_TMB_
Definition: CSCBaseboard.h:127
const unsigned theSector
Definition: CSCBaseboard.h:76
std::string theCSCName_
Definition: CSCBaseboard.h:104
static int ringFromTriggerLabels(int station, int triggerCSCID)
CSCDetId cscId_
Definition: CSCBaseboard.h:95
const unsigned theTrigChamber
Definition: CSCBaseboard.h:78
std::string chamberName() const
Definition: CSCDetId.cc:92
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
bool runCCLUT_OTMB_
Definition: CSCBaseboard.h:128
unsigned theChamber
Definition: CSCBaseboard.h:81
const unsigned theStation
Definition: CSCBaseboard.h:75
unsigned theRing
Definition: CSCBaseboard.h:80
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
const unsigned theSubsector
Definition: CSCBaseboard.h:77

◆ CSCBaseboard() [2/2]

CSCBaseboard::CSCBaseboard ( )

Constructor for use during testing.

Definition at line 105 of file CSCBaseboard.cc.

References disableME1a_, gangedME1a_, runPhase2_, theChamber, and theRing.

106  theRing = 1;
107  theChamber = 1;
108  runPhase2_ = false;
109  disableME1a_ = false;
110  gangedME1a_ = false;
111 }
const unsigned theEndcap
Definition: CSCBaseboard.h:74
const unsigned theSector
Definition: CSCBaseboard.h:76
const unsigned theTrigChamber
Definition: CSCBaseboard.h:78
unsigned theChamber
Definition: CSCBaseboard.h:81
const unsigned theStation
Definition: CSCBaseboard.h:75
unsigned theRing
Definition: CSCBaseboard.h:80
const unsigned theSubsector
Definition: CSCBaseboard.h:77

◆ ~CSCBaseboard()

virtual CSCBaseboard::~CSCBaseboard ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ checkConfigParameters()

void CSCBaseboard::checkConfigParameters ( unsigned int &  var,
const unsigned int  var_max,
const unsigned int  var_def,
const std::string &  var_str 
)
protected

Definition at line 115 of file CSCBaseboard.cc.

References ALCARECOEcalPhiSym_cff::var.

Referenced by CSCCathodeLCTProcessor::checkConfigParameters(), CSCMotherboard::checkConfigParameters(), and CSCAnodeLCTProcessor::checkConfigParameters().

118  {
119  // Make sure that the parameter values are within the allowed range.
120  if (var >= var_max) {
121  edm::LogError("CSCConfigError") << "+++ Value of " + var_str + ", " << var << ", exceeds max allowed, " << var - 1
122  << " +++\n"
123  << "+++ Try to proceed with the default value, " + var_str + "=" << var_def
124  << " +++\n";
125  var = var_def;
126  }
127 }
Log< level::Error, false > LogError

◆ cscChamber()

CSCChamber const * CSCBaseboard::cscChamber ( CSCGeometry const &  g) const
protected

Definition at line 113 of file CSCBaseboard.cc.

References cscId_, and g.

Referenced by CSCCathodeLCTProcessor::run(), CSCAnodeLCTProcessor::run(), and CSCMotherboard::runCommon().

113 { return g.chamber(cscId_); }
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
CSCDetId cscId_
Definition: CSCBaseboard.h:95

◆ getCSCName()

std::string CSCBaseboard::getCSCName ( ) const
inline

Definition at line 61 of file CSCBaseboard.h.

References theCSCName_.

Referenced by CSCTriggerPrimitivesBuilder::build().

61 { return theCSCName_; }
std::string theCSCName_
Definition: CSCBaseboard.h:104

◆ id()

CSCDetId CSCBaseboard::id ( void  ) const
inline

Definition at line 63 of file CSCBaseboard.h.

References cscId_.

63 { return cscId_; }
CSCDetId cscId_
Definition: CSCBaseboard.h:95

Member Data Documentation

◆ cscId_

CSCDetId CSCBaseboard::cscId_
protected

Definition at line 95 of file CSCBaseboard.h.

Referenced by CSCBaseboard(), cscChamber(), id(), and LCTQualityControl::reportErrors().

◆ disableME1a_

bool CSCBaseboard::disableME1a_
protected

Phase2: special configuration parameters for ME1a treatment

Definition at line 111 of file CSCBaseboard.h.

Referenced by CSCBaseboard(), CSCAnodeLCTProcessor::getDigis(), CSCCathodeLCTProcessor::getDigis(), and CSCCathodeLCTProcessor::run().

◆ enableAlctPhase2_

bool CSCBaseboard::enableAlctPhase2_
protected

◆ gangedME1a_

bool CSCBaseboard::gangedME1a_
protected

◆ infoV

int CSCBaseboard::infoV
protected

Verbosity level: 0: no print (default). 1: print only ALCTs found. 2: info at every step of the algorithm. 3: add special-purpose prints.

Definition at line 101 of file CSCBaseboard.h.

Referenced by CSCAnodeLCTProcessor::accelMode(), CSCAnodeLCTProcessor::bestTrackSelector(), CSCCathodeLCTProcessor::checkLocalShower(), CSCCathodeLCTProcessor::constructCLCT(), CSCAnodeLCTProcessor::CSCAnodeLCTProcessor(), CSCCathodeLCTProcessor::CSCCathodeLCTProcessor(), CSCMotherboard::CSCMotherboard(), CSCUpgradeCathodeLCTProcessor::findLCTs(), CSCCathodeLCTProcessor::findLCTs(), CSCAnodeLCTProcessor::getDigis(), CSCCathodeLCTProcessor::getDigis(), CSCUpgradeAnodeLCTProcessor::ghostCancellationLogicOneWire(), CSCAnodeLCTProcessor::ghostCancellationLogicOneWire(), CSCAnodeLCTProcessor::lctSearch(), CSCUpgradeCathodeLCTProcessor::markBusyZone(), CSCUpgradeCathodeLCTProcessor::markPreTriggerZone(), CSCMotherboard::matchALCTCLCT(), CSCGEMMotherboard::matchALCTCLCTGEM(), CSCAnodeLCTProcessor::patternDetection(), CSCCathodeLCTProcessor::patternFinding(), CSCUpgradeCathodeLCTProcessor::preTrigger(), CSCCathodeLCTProcessor::preTrigger(), CSCAnodeLCTProcessor::preTrigger(), CSCCathodeLCTProcessor::pulseExtension(), CSCAnodeLCTProcessor::pulseExtension(), CSCCathodeLCTProcessor::readComparatorDigis(), CSCAnodeLCTProcessor::readoutALCTs(), CSCCathodeLCTProcessor::readoutCLCTs(), CSCMotherboard::readoutLCTs(), CSCAnodeLCTProcessor::readWireDigis(), CSCCathodeLCTProcessor::run(), CSCAnodeLCTProcessor::run(), CSCMotherboard::selectLCTs(), and CSCAnodeLCTProcessor::trigMode().

◆ isME11_

bool CSCBaseboard::isME11_
protected

◆ isME12_

bool CSCBaseboard::isME12_
protected

Definition at line 88 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ isME13_

bool CSCBaseboard::isME13_
protected

Definition at line 92 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ isME21_

bool CSCBaseboard::isME21_
protected

◆ isME22_

bool CSCBaseboard::isME22_
protected

Definition at line 89 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ isME31_

bool CSCBaseboard::isME31_
protected

Definition at line 86 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ isME32_

bool CSCBaseboard::isME32_
protected

Definition at line 90 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ isME41_

bool CSCBaseboard::isME41_
protected

Definition at line 87 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ isME42_

bool CSCBaseboard::isME42_
protected

Definition at line 91 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ run3_

bool CSCBaseboard::run3_
protected

◆ runCCLUT_

bool CSCBaseboard::runCCLUT_
protected

◆ runCCLUT_OTMB_

bool CSCBaseboard::runCCLUT_OTMB_
protected

Definition at line 128 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ runCCLUT_TMB_

bool CSCBaseboard::runCCLUT_TMB_
protected

Definition at line 127 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ runME11ILT_

bool CSCBaseboard::runME11ILT_
protected

◆ runME11Up_

bool CSCBaseboard::runME11Up_
protected

Phase2: run the upgrade local trigger (without GEMs)

Definition at line 120 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ runME21ILT_

bool CSCBaseboard::runME21ILT_
protected

◆ runME21Up_

bool CSCBaseboard::runME21Up_
protected

Definition at line 121 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ runME31Up_

bool CSCBaseboard::runME31Up_
protected

Definition at line 122 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ runME41Up_

bool CSCBaseboard::runME41Up_
protected

Definition at line 123 of file CSCBaseboard.h.

Referenced by CSCBaseboard().

◆ runPhase2_

bool CSCBaseboard::runPhase2_
protected

◆ theChamber

unsigned CSCBaseboard::theChamber
protected

◆ theCSCName_

std::string CSCBaseboard::theCSCName_
protected

◆ theEndcap

const unsigned CSCBaseboard::theEndcap
protected

◆ theRegion

int CSCBaseboard::theRegion
protected

Definition at line 79 of file CSCBaseboard.h.

Referenced by CSCBaseboard(), and CSCGEMMotherboard::CSCGEMMotherboard().

◆ theRing

unsigned CSCBaseboard::theRing
protected

◆ theSector

const unsigned CSCBaseboard::theSector
protected

◆ theStation

const unsigned CSCBaseboard::theStation
protected

◆ theSubsector

const unsigned CSCBaseboard::theSubsector
protected

◆ theTrigChamber

const unsigned CSCBaseboard::theTrigChamber
protected