CMS 3D CMS Logo

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

#include <LCTQualityAssignment.h>

Inheritance diagram for LCTQualityAssignment:
CSCBaseboard

Public Types

enum  LCT_QualityRun2 : unsigned int {
  LCT_QualityRun2::INVALID = 0, LCT_QualityRun2::NO_CLCT = 1, LCT_QualityRun2::NO_ALCT = 2, LCT_QualityRun2::CLCT_LAYER_TRIGGER = 3,
  LCT_QualityRun2::LOW_QUALITY = 4, LCT_QualityRun2::MARGINAL_ANODE_CATHODE = 5, LCT_QualityRun2::HQ_ANODE_MARGINAL_CATHODE = 6, LCT_QualityRun2::HQ_CATHODE_MARGINAL_ANODE = 7,
  LCT_QualityRun2::HQ_ACCEL_ALCT = 8, LCT_QualityRun2::HQ_RESERVED_1 = 9, LCT_QualityRun2::HQ_RESERVED_2 = 10, LCT_QualityRun2::HQ_PATTERN_2_3 = 11,
  LCT_QualityRun2::HQ_PATTERN_4_5 = 12, LCT_QualityRun2::HQ_PATTERN_6_7 = 13, LCT_QualityRun2::HQ_PATTERN_8_9 = 14, LCT_QualityRun2::HQ_PATTERN_10 = 15
}
 
enum  LCT_QualityRun3 : unsigned int { LCT_QualityRun3::INVALID = 0, LCT_QualityRun3::LowQ = 1, LCT_QualityRun3::MedQ = 2, LCT_QualityRun3::HighQ = 3 }
 
enum  LCT_QualityRun3GEM : unsigned int {
  LCT_QualityRun3GEM::INVALID = 0, LCT_QualityRun3GEM::CLCT_2GEM = 1, LCT_QualityRun3GEM::ALCT_2GEM = 2, LCT_QualityRun3GEM::ALCT_CLCT = 3,
  LCT_QualityRun3GEM::ALCT_CLCT_1GEM_CSCBend = 4, LCT_QualityRun3GEM::ALCT_CLCT_1GEM_GEMCSCBend = 5, LCT_QualityRun3GEM::ALCT_CLCT_2GEM_CSCBend = 6, LCT_QualityRun3GEM::ALCT_CLCT_2GEM_GEMCSCBend = 7
}
 

Public Member Functions

unsigned findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
 
unsigned findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, const GEMInternalCluster &cl) const
 
unsigned findQuality (const CSCALCTDigi &aLCT, const GEMInternalCluster &cl) const
 
unsigned findQuality (const CSCCLCTDigi &cLCT, const GEMInternalCluster &cl) const
 
 LCTQualityAssignment (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf)
 
void setGEMCSCBending (const bool setBend)
 
 ~LCTQualityAssignment () override
 
- Public Member Functions inherited from CSCBaseboard
 CSCBaseboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf)
 
 CSCBaseboard ()
 
std::string getCSCName () const
 
CSCDetId id () const
 
void setCSCGeometry (const CSCGeometry *g)
 
virtual ~CSCBaseboard ()=default
 

Private Member Functions

unsigned findQualityGEMv1 (const CSCCLCTDigi &, const GEMInternalCluster &cl) const
 
unsigned findQualityGEMv1 (const CSCALCTDigi &, const CSCCLCTDigi &, const GEMInternalCluster &cl) const
 
unsigned findQualityGEMv2 (const CSCALCTDigi &, const CSCCLCTDigi &, const GEMInternalCluster &cl) const
 
unsigned findQualityRun2 (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
 
unsigned findQualityRun3 (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
 

Private Attributes

bool assignGEMCSCBending_
 
bool runILT_
 

Additional Inherited Members

- 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 CSCBaseboard
edm::ParameterSet alctParams_
 
edm::ParameterSet clctParams_
 
edm::ParameterSet commonParams_
 
const CSCChambercscChamber_
 
const CSCGeometrycscGeometry_
 
CSCDetId cscId_
 
bool disableME1a_
 
bool enableAlctPhase2_
 
bool gangedME1a_
 
int infoV
 
bool isME11_
 
bool 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_
 
edm::ParameterSet showerParams_
 
unsigned theChamber
 
std::string theCSCName_
 
const unsigned theEndcap
 
int theRegion
 
unsigned theRing
 
const unsigned theSector
 
const unsigned theStation
 
const unsigned theSubsector
 
const unsigned theTrigChamber
 
edm::ParameterSet tmbParams_
 

Detailed Description

Helper class to calculate the quality of an LCT. There is a Run-2 quality (also used for Run-1) based on the pattern Id and the number of layers. There are two Run-3 LCTs qualities. One for the non-GEM TMBs and one for OTMBs which receive GEM information.

Author
Sven Dildick (Rice University) by Giovanni Mocellin (UC Davis)

Definition at line 22 of file LCTQualityAssignment.h.

Member Enumeration Documentation

◆ LCT_QualityRun2

enum LCTQualityAssignment::LCT_QualityRun2 : unsigned int
strong
Enumerator
INVALID 
NO_CLCT 
NO_ALCT 
CLCT_LAYER_TRIGGER 
LOW_QUALITY 
MARGINAL_ANODE_CATHODE 
HQ_ANODE_MARGINAL_CATHODE 
HQ_CATHODE_MARGINAL_ANODE 
HQ_ACCEL_ALCT 
HQ_RESERVED_1 
HQ_RESERVED_2 
HQ_PATTERN_2_3 
HQ_PATTERN_4_5 
HQ_PATTERN_6_7 
HQ_PATTERN_8_9 
HQ_PATTERN_10 

Definition at line 25 of file LCTQualityAssignment.h.

25  : unsigned int {
26  INVALID = 0,
27  NO_CLCT = 1,
28  NO_ALCT = 2,
29  CLCT_LAYER_TRIGGER = 3,
30  LOW_QUALITY = 4,
31  MARGINAL_ANODE_CATHODE = 5,
32  HQ_ANODE_MARGINAL_CATHODE = 6,
33  HQ_CATHODE_MARGINAL_ANODE = 7,
34  HQ_ACCEL_ALCT = 8,
35  HQ_RESERVED_1 = 9,
36  HQ_RESERVED_2 = 10,
37  HQ_PATTERN_2_3 = 11,
38  HQ_PATTERN_4_5 = 12,
39  HQ_PATTERN_6_7 = 13,
40  HQ_PATTERN_8_9 = 14,
41  HQ_PATTERN_10 = 15
42  };

◆ LCT_QualityRun3

enum LCTQualityAssignment::LCT_QualityRun3 : unsigned int
strong
Enumerator
INVALID 
LowQ 
MedQ 
HighQ 

Definition at line 45 of file LCTQualityAssignment.h.

45 : unsigned int { INVALID = 0, LowQ = 1, MedQ = 2, HighQ = 3 };

◆ LCT_QualityRun3GEM

enum LCTQualityAssignment::LCT_QualityRun3GEM : unsigned int
strong
Enumerator
INVALID 
CLCT_2GEM 
ALCT_2GEM 
ALCT_CLCT 
ALCT_CLCT_1GEM_CSCBend 
ALCT_CLCT_1GEM_GEMCSCBend 
ALCT_CLCT_2GEM_CSCBend 
ALCT_CLCT_2GEM_GEMCSCBend 

Definition at line 48 of file LCTQualityAssignment.h.

48  : unsigned int {
49  INVALID = 0,
50  CLCT_2GEM = 1,
51  ALCT_2GEM = 2,
52  ALCT_CLCT = 3,
53  ALCT_CLCT_1GEM_CSCBend = 4,
54  ALCT_CLCT_1GEM_GEMCSCBend = 5,
55  ALCT_CLCT_2GEM_CSCBend = 6,
56  ALCT_CLCT_2GEM_GEMCSCBend = 7
57  };

Constructor & Destructor Documentation

◆ LCTQualityAssignment()

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

Definition at line 3 of file LCTQualityAssignment.cc.

References CSCBaseboard::isME11_, CSCBaseboard::isME21_, or, runILT_, CSCBaseboard::runME11ILT_, and CSCBaseboard::runME21ILT_.

9  : CSCBaseboard(endcap, station, sector, subsector, chamber, conf) {
10  // at least one integrated local trigger is running
12 }
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

◆ ~LCTQualityAssignment()

LCTQualityAssignment::~LCTQualityAssignment ( )
inlineoverride

Default destructor.

Definition at line 68 of file LCTQualityAssignment.h.

68 {}

Member Function Documentation

◆ findQuality() [1/4]

unsigned LCTQualityAssignment::findQuality ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT 
) const

Definition at line 14 of file LCTQualityAssignment.cc.

References findQualityGEMv1(), findQualityGEMv2(), findQualityRun2(), findQualityRun3(), CSCBaseboard::run3_, CSCBaseboard::runCCLUT_, and runILT_.

14  {
15  // ALCT-CLCT matching without a cluster and ILT off
16  if (run3_ and !runILT_) {
17  return findQualityRun3(aLCT, cLCT);
18  }
19  // ALCT-CLCT matching without a cluster and ILT on
20  // preferred for Run-3
21  else if (runCCLUT_ and runILT_) {
22  return findQualityGEMv2(aLCT, cLCT, GEMInternalCluster());
23  }
24  // ALCT-CLCT matching without a cluster with CCLUT off and ILT on
25  // case when interfacing the GEM-CSC trigger with Run-2 EMTF
26  // not intended for Run-3. temporary intermediate case for CMSSW_12
27  else if (!runCCLUT_ and runILT_) {
28  return findQualityGEMv1(aLCT, cLCT, GEMInternalCluster());
29  }
30  // ALCT-CLCT matching without a cluster with CCLUT off and ILT off
31  // regular Run-1 and Run-2 case
32  else {
33  return findQualityRun2(aLCT, cLCT);
34  }
35 }
unsigned findQualityRun3(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
unsigned findQualityGEMv1(const CSCCLCTDigi &, const GEMInternalCluster &cl) const
unsigned findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, const GEMInternalCluster &cl) const
unsigned findQualityRun2(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const

◆ findQuality() [2/4]

unsigned LCTQualityAssignment::findQuality ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT,
const GEMInternalCluster cl 
) const

Definition at line 36 of file LCTQualityAssignment.cc.

References haddnano::cl, findQualityGEMv1(), findQualityGEMv2(), and CSCBaseboard::runCCLUT_.

38  {
39  // preferred for Run-3
40  if (runCCLUT_) {
41  return findQualityGEMv2(aLCT, cLCT, cl);
42  }
43  // not intended for Run-3. temporary intermediate case for CMSSW_12
44  else {
45  return findQualityGEMv1(aLCT, cLCT, cl);
46  }
47 }
unsigned findQualityGEMv1(const CSCCLCTDigi &, const GEMInternalCluster &cl) const
unsigned findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, const GEMInternalCluster &cl) const

◆ findQuality() [3/4]

unsigned LCTQualityAssignment::findQuality ( const CSCALCTDigi aLCT,
const GEMInternalCluster cl 
) const

Definition at line 49 of file LCTQualityAssignment.cc.

References haddnano::cl, findQualityGEMv2(), HQ_PATTERN_10, and CSCBaseboard::runCCLUT_.

49  {
50  // preferred for Run-3
51  if (runCCLUT_) {
52  return findQualityGEMv2(aLCT, CSCCLCTDigi(), cl);
53  }
54  // not intended for Run-3. temporary intermediate case for CMSSW_12
55  else {
56  return static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun2::HQ_PATTERN_10);
57  }
58 }
unsigned findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, const GEMInternalCluster &cl) const

◆ findQuality() [4/4]

unsigned LCTQualityAssignment::findQuality ( const CSCCLCTDigi cLCT,
const GEMInternalCluster cl 
) const

Definition at line 60 of file LCTQualityAssignment.cc.

References haddnano::cl, findQualityGEMv1(), findQualityGEMv2(), and CSCBaseboard::runCCLUT_.

60  {
61  // preferred for Run-3
62  if (runCCLUT_) {
63  return findQualityGEMv2(CSCALCTDigi(), cLCT, cl);
64  }
65  // not intended for Run-3. temporary intermediate case for CMSSW_12
66  else {
67  return findQualityGEMv1(cLCT, cl);
68  }
69 }
unsigned findQualityGEMv1(const CSCCLCTDigi &, const GEMInternalCluster &cl) const
unsigned findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, const GEMInternalCluster &cl) const

◆ findQualityGEMv1() [1/2]

unsigned LCTQualityAssignment::findQualityGEMv1 ( const CSCCLCTDigi cLCT,
const GEMInternalCluster cl 
) const
private

Definition at line 184 of file LCTQualityAssignment.cc.

References haddnano::cl, CSCCLCTDigi::getPattern(), HQ_PATTERN_10, HQ_PATTERN_2_3, HQ_PATTERN_4_5, HQ_PATTERN_6_7, HQ_PATTERN_8_9, INVALID, CSCCLCTDigi::isValid(), or, and topSingleLeptonDQM_PU_cfi::pattern.

Referenced by findQuality().

184  {
186 
187  if (!cl.isCoincidence() or !cLCT.isValid())
188  return static_cast<unsigned>(qual);
189 
190  const int pattern(cLCT.getPattern());
191 
192  // High quality muons are determined by their CLCT pattern
193  if (pattern == 2 || pattern == 3)
195 
196  else if (pattern == 4 || pattern == 5)
198 
199  else if (pattern == 6 || pattern == 7)
201 
202  else if (pattern == 8 || pattern == 9)
204 
205  else if (pattern == 10)
207 
208  else {
209  edm::LogWarning("CSCGEMMotherboard") << "findQualityGEMv1: Unexpected CLCT pattern id = " << pattern;
211  }
212 
213  return static_cast<unsigned>(qual);
214 }
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 isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.h:62
Log< level::Warning, false > LogWarning

◆ findQualityGEMv1() [2/2]

unsigned LCTQualityAssignment::findQualityGEMv1 ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT,
const GEMInternalCluster cl 
) const
private

Definition at line 216 of file LCTQualityAssignment.cc.

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

218  {
220 
221  int gemlayers = 0;
222  if (cl.isValid())
223  gemlayers = 1;
224  if (cl.isCoincidence())
225  gemlayers = 2;
226 
227  // Either ALCT or CLCT is invalid
228  if (!(aLCT.isValid()) || !(cLCT.isValid())) {
229  // No CLCT
230  if (aLCT.isValid() && !(cLCT.isValid()))
232 
233  // No ALCT
234  else if (!(aLCT.isValid()) && cLCT.isValid())
236 
237  // No ALCT and no CLCT
238  else
240  }
241  // Both ALCT and CLCT are valid
242  else {
243  const int pattern(cLCT.getPattern());
244 
245  // Layer-trigger in CLCT
246  if (pattern == 1)
248 
249  // Multi-layer pattern in CLCT
250  else {
251  // ALCT quality is the number of layers hit minus 3.
252  bool a4 = false;
253 
254  // Case of ME11 with GEMs: require 4 layers for ALCT
255  if (isME11_)
256  a4 = aLCT.getQuality() >= 1;
257 
258  // Case of ME21 with GEMs: require 4 layers for ALCT+GEM
259  if (isME21_)
260  a4 = aLCT.getQuality() + gemlayers >= 1;
261 
262  // CLCT quality is the number of layers hit.
263  const bool c4((cLCT.getQuality() >= 4) or (cLCT.getQuality() >= 3 and gemlayers >= 1));
264 
265  // quality = 4; "reserved for low-quality muons in future"
266 
267  // marginal anode and cathode
268  if (!a4 && !c4)
270 
271  // HQ anode, but marginal cathode
272  else if (a4 && !c4)
274 
275  // HQ cathode, but marginal anode
276  else if (!a4 && c4)
278 
279  // HQ muon, but accelerator ALCT
280  else if (a4 && c4) {
281  if (aLCT.getAccelerator())
283 
284  else {
285  // quality = 9; "reserved for HQ muons with future patterns
286  // quality = 10; "reserved for HQ muons with future patterns
287 
288  // High quality muons are determined by their CLCT pattern
289  if (pattern == 2 || pattern == 3)
291 
292  else if (pattern == 4 || pattern == 5)
294 
295  else if (pattern == 6 || pattern == 7)
297 
298  else if (pattern == 8 || pattern == 9)
300 
301  else if (pattern == 10)
303 
304  else {
305  edm::LogWarning("CSCGEMMotherboard") << "findQualityGEMv1: Unexpected CLCT pattern id = " << pattern;
307  }
308  }
309  }
310  }
311  }
312  return static_cast<unsigned>(qual);
313 }
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:40
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
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 isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50
uint16_t getAccelerator() const
Definition: CSCALCTDigi.h:53
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.h:62
Log< level::Warning, false > LogWarning

◆ findQualityGEMv2()

unsigned LCTQualityAssignment::findQualityGEMv2 ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT,
const GEMInternalCluster cl 
) const
private

Definition at line 315 of file LCTQualityAssignment.cc.

References ALCT_2GEM, ALCT_CLCT, ALCT_CLCT_1GEM_CSCBend, ALCT_CLCT_1GEM_GEMCSCBend, ALCT_CLCT_2GEM_CSCBend, ALCT_CLCT_2GEM_GEMCSCBend, assignGEMCSCBending_, haddnano::cl, CLCT_2GEM, INVALID, CSCALCTDigi::isValid(), and CSCCLCTDigi::isValid().

Referenced by findQuality().

317  {
319 
320  const bool aValid(aLCT.isValid());
321  const bool cValid(cLCT.isValid());
322  const bool gValid(cl.isValid());
323  const bool ggValid(cl.isValid() and cl.isCoincidence());
324 
325  // ALCT-CLCT-2GEM
326  if (aValid and cValid and ggValid) {
329  else
331  }
332 
333  // ALCT-CLCT-1GEM
334  else if (aValid and cValid and gValid) {
337  else
339  }
340 
341  // ALCT-CLCT
342  else if (aValid and cValid and !gValid and !ggValid) {
344  }
345 
346  // CLCT-2GEM
347  else if (!aValid and cValid and ggValid) {
349  }
350 
351  // ALCT-2GEM
352  else if (!cValid and aValid and ggValid) {
354  }
355 
356  // at this point we have exhausted all possibilities
357  // only remaing option is an invalid LCT
358  else
360 
361  return static_cast<unsigned>(qual);
362 }
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:40
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50

◆ findQualityRun2()

unsigned LCTQualityAssignment::findQualityRun2 ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT 
) const
private

Definition at line 72 of file LCTQualityAssignment.cc.

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

Referenced by findQuality().

72  {
74 
75  // Either ALCT or CLCT is invalid
76  if (!(aLCT.isValid()) || !(cLCT.isValid())) {
77  // No CLCT
78  if (aLCT.isValid() && !(cLCT.isValid()))
80 
81  // No ALCT
82  else if (!(aLCT.isValid()) && cLCT.isValid())
84 
85  // No ALCT and no CLCT
86  else
88  }
89  // Both ALCT and CLCT are valid
90  else {
91  const int pattern(cLCT.getPattern());
92 
93  // Layer-trigger in CLCT
94  if (pattern == 1)
96 
97  // Multi-layer pattern in CLCT
98  else {
99  // ALCT quality is the number of layers hit minus 3.
100  const bool a4(aLCT.getQuality() >= 1);
101 
102  // CLCT quality is the number of layers hit.
103  const bool c4(cLCT.getQuality() >= 4);
104 
105  // quality = 4; "reserved for low-quality muons in future"
106 
107  // marginal anode and cathode
108  if (!a4 && !c4)
110 
111  // HQ anode, but marginal cathode
112  else if (a4 && !c4)
114 
115  // HQ cathode, but marginal anode
116  else if (!a4 && c4)
118 
119  // HQ muon, but accelerator ALCT
120  else if (a4 && c4) {
121  if (aLCT.getAccelerator())
123 
124  else {
125  // quality = 9; "reserved for HQ muons with future patterns
126  // quality = 10; "reserved for HQ muons with future patterns
127 
128  // High quality muons are determined by their CLCT pattern
129  if (pattern == 2 || pattern == 3)
131 
132  else if (pattern == 4 || pattern == 5)
134 
135  else if (pattern == 6 || pattern == 7)
137 
138  else if (pattern == 8 || pattern == 9)
140 
141  else if (pattern == 10)
143 
144  else {
145  edm::LogWarning("LCTQualityAssignment") << "findQualityRun2: Unexpected CLCT pattern id = " << pattern;
147  }
148  }
149  }
150  }
151  }
152  return static_cast<unsigned>(qual);
153 }
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:40
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50
uint16_t getAccelerator() const
Definition: CSCALCTDigi.h:53
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.h:62
Log< level::Warning, false > LogWarning

◆ findQualityRun3()

unsigned LCTQualityAssignment::findQualityRun3 ( const CSCALCTDigi aLCT,
const CSCCLCTDigi cLCT 
) const
private

Definition at line 156 of file LCTQualityAssignment.cc.

References CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), HighQ, INVALID, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), LowQ, MedQ, and or.

Referenced by findQuality().

156  {
158 
159  // Run-3 definition
160  if (!(aLCT.isValid()) and !(cLCT.isValid())) {
162  }
163  // use number of layers on each as indicator
164  else {
165  const bool a4 = (aLCT.getQuality() == 1);
166  const bool a5 = (aLCT.getQuality() == 2);
167  const bool a6 = (aLCT.getQuality() == 3);
168 
169  const bool c4 = (cLCT.getQuality() == 4);
170  const bool c5 = (cLCT.getQuality() == 5);
171  const bool c6 = (cLCT.getQuality() == 6);
172  if (a6 or c6)
173  qual = LCT_QualityRun3::HighQ;
174  else if (a5 or c5)
175  qual = LCT_QualityRun3::MedQ;
176  else if (a4 or c4)
177  qual = LCT_QualityRun3::LowQ;
178  else
180  }
181  return static_cast<unsigned>(qual);
182 }
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:40
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
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 isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50

◆ setGEMCSCBending()

void LCTQualityAssignment::setGEMCSCBending ( const bool  setBend)
inline

Definition at line 71 of file LCTQualityAssignment.h.

References assignGEMCSCBending_.

71 { assignGEMCSCBending_ = setBend; }

Member Data Documentation

◆ assignGEMCSCBending_

bool LCTQualityAssignment::assignGEMCSCBending_
private

Definition at line 94 of file LCTQualityAssignment.h.

Referenced by findQualityGEMv2(), and setGEMCSCBending().

◆ runILT_

bool LCTQualityAssignment::runILT_
private

Definition at line 95 of file LCTQualityAssignment.h.

Referenced by findQuality(), and LCTQualityAssignment().