CMS 3D CMS Logo

CSCGEMMotherboardME11.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCGEMMotherboardME11_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCGEMMotherboardME11_h
3 
15 
17 public:
20  unsigned station,
21  unsigned sector,
22  unsigned subsector,
23  unsigned chamber,
24  const edm::ParameterSet& conf);
25 
28 
30  ~CSCGEMMotherboardME11() override;
31 
34  void run(const CSCWireDigiCollection* wiredc,
35  const CSCComparatorDigiCollection* compdc,
36  const GEMPadDigiClusterCollection* gemPads) override;
37 
38  void run(const CSCWireDigiCollection* wiredc,
39  const CSCComparatorDigiCollection* compdc,
40  const GEMPadDigiCollection* gemPads) override;
41 
42  /* readout the LCTs in ME1a or ME1b */
43  std::vector<CSCCorrelatedLCTDigi> readoutLCTs1a() const;
44  std::vector<CSCCorrelatedLCTDigi> readoutLCTs1b() const;
45 
46 private:
47  /* access to the LUTs needed for matching */
48  const CSCGEMMotherboardLUTME11* getLUT() const override { return tmbLUT_.get(); }
49  std::unique_ptr<CSCGEMMotherboardLUTME11> tmbLUT_;
50  std::unique_ptr<CSCMotherboardLUTME11> cscTmbLUT_;
51 
52  /* readout the LCTs in a sector of ME11 */
53  std::vector<CSCCorrelatedLCTDigi> readoutLCTsME11(enum CSCPart me1ab) const;
54 
56  void sortLCTs(std::vector<CSCCorrelatedLCTDigi>&,
57  int bx,
58  bool (*sorter)(const CSCCorrelatedLCTDigi&, const CSCCorrelatedLCTDigi&)) const;
59  void sortLCTs(std::vector<CSCCorrelatedLCTDigi>&,
60  bool (*sorter)(const CSCCorrelatedLCTDigi&, const CSCCorrelatedLCTDigi&)) const;
61 
62  /* check if an ALCT cross a CLCT in an ME11 sector */
63  bool doesALCTCrossCLCT(const CSCALCTDigi& a, const CSCCLCTDigi& c) const;
64 
65  /* does wiregroup cross halfstrip or not */
66  bool doesWiregroupCrossStrip(int key_wg, int key_hs) const override;
67 
68  /* correlate a pair of ALCTs and a pair of CLCTs with matched pads or copads
69  the output is up to two LCTs in a sector of ME11 */
70  void correlateLCTsGEM(const CSCALCTDigi& bestALCT,
71  const CSCALCTDigi& secondALCT,
72  const CSCCLCTDigi& bestCLCT,
73  const CSCCLCTDigi& secondCLCT,
74  const GEMPadDigiIds& pads,
75  const GEMCoPadDigiIds& copads,
77  CSCCorrelatedLCTDigi& lct2) const;
78 
79  /* store the CLCTs found separately in ME1a and ME1b */
80  std::vector<CSCCLCTDigi> clctV;
81 
82  // Drop low quality stubs if they don't have GEMs
87 
88  // build LCT from ALCT and GEM
93 
94  // promote ALCT-GEM quality
97 };
98 #endif
CSCGEMMotherboardME11::clctV
std::vector< CSCCLCTDigi > clctV
Definition: CSCGEMMotherboardME11.h:80
CSCGEMMotherboardLUTME11
Definition: CSCUpgradeMotherboardLUT.h:78
relativeConstraints.station
station
Definition: relativeConstraints.py:67
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
CSCGEMMotherboardME11::run
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads) override
Definition: CSCGEMMotherboardME11.cc:47
CSCGEMMotherboardME11::~CSCGEMMotherboardME11
~CSCGEMMotherboardME11() override
Definition: CSCGEMMotherboardME11.cc:38
CSCGEMMotherboardME11::readoutLCTs1a
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
Definition: CSCGEMMotherboardME11.cc:414
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCGEMMotherboardME11::buildLCTfromCLCTandGEM_ME1a_
bool buildLCTfromCLCTandGEM_ME1a_
Definition: CSCGEMMotherboardME11.h:91
CSCGEMMotherboard.h
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCGEMMotherboardME11::dropLowQualityCLCTsNoGEMs_ME1b_
bool dropLowQualityCLCTsNoGEMs_ME1b_
Definition: CSCGEMMotherboardME11.h:84
CSCGEMMotherboardME11::CSCGEMMotherboardME11
CSCGEMMotherboardME11()
Definition: CSCGEMMotherboardME11.cc:31
CSCPart
CSCPart
Definition: CSCUpgradeMotherboardLUT.h:12
CSCGEMMotherboardME11::tmbLUT_
std::unique_ptr< CSCGEMMotherboardLUTME11 > tmbLUT_
Definition: CSCGEMMotherboardME11.h:49
CSCGEMMotherboardME11::buildLCTfromALCTandGEM_ME1a_
bool buildLCTfromALCTandGEM_ME1a_
Definition: CSCGEMMotherboardME11.h:89
GEMPadDigiCollection
GEMPadDigiClusterCollection
CSCGEMMotherboardME11::dropLowQualityALCTsNoGEMs_ME1b_
bool dropLowQualityALCTsNoGEMs_ME1b_
Definition: CSCGEMMotherboardME11.h:86
CSCGEMMotherboardME11::cscTmbLUT_
std::unique_ptr< CSCMotherboardLUTME11 > cscTmbLUT_
Definition: CSCGEMMotherboardME11.h:50
GEMCoPadDigiIds
matches< GEMCoPadDigi > GEMCoPadDigiIds
Definition: CSCGEMMotherboard.h:26
CSCGEMMotherboardME11::readoutLCTs1b
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
Definition: CSCGEMMotherboardME11.cc:416
edm::ParameterSet
Definition: ParameterSet.h:36
a
double a
Definition: hdecay.h:119
sorter
Definition: SETFilter.cc:31
CSCGEMMotherboardME11::dropLowQualityCLCTsNoGEMs_ME1a_
bool dropLowQualityCLCTsNoGEMs_ME1a_
Definition: CSCGEMMotherboardME11.h:83
CSCGEMMotherboardME11::promoteCLCTGEMquality_ME1a_
bool promoteCLCTGEMquality_ME1a_
Definition: CSCGEMMotherboardME11.h:95
CSCGEMMotherboardME11::sortLCTs
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &, int bx, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
Definition: CSCGEMMotherboardME11.cc:486
CSCGEMMotherboardME11::correlateLCTsGEM
void correlateLCTsGEM(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, const GEMPadDigiIds &pads, const GEMCoPadDigiIds &copads, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
Definition: CSCGEMMotherboardME11.cc:520
CSCComparatorDigiCollection
CSCGEMMotherboardME11::doesALCTCrossCLCT
bool doesALCTCrossCLCT(const CSCALCTDigi &a, const CSCCLCTDigi &c) const
Definition: CSCGEMMotherboardME11.cc:512
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
CSCGEMMotherboard
Definition: CSCGEMMotherboard.h:29
CSCWireDigiCollection
CSCGEMMotherboardME11::promoteCLCTGEMquality_ME1b_
bool promoteCLCTGEMquality_ME1b_
Definition: CSCGEMMotherboardME11.h:96
CSCALCTDigi
Definition: CSCALCTDigi.h:16
CSCGEMMotherboardME11::readoutLCTsME11
std::vector< CSCCorrelatedLCTDigi > readoutLCTsME11(enum CSCPart me1ab) const
Definition: CSCGEMMotherboardME11.cc:421
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
CSCGEMMotherboardME11::dropLowQualityALCTsNoGEMs_ME1a_
bool dropLowQualityALCTsNoGEMs_ME1a_
Definition: CSCGEMMotherboardME11.h:85
CSCGEMMotherboardME11::buildLCTfromCLCTandGEM_ME1b_
bool buildLCTfromCLCTandGEM_ME1b_
Definition: CSCGEMMotherboardME11.h:92
CSCGEMMotherboardME11
Definition: CSCGEMMotherboardME11.h:16
CSCGEMMotherboardME11::getLUT
const CSCGEMMotherboardLUTME11 * getLUT() const override
Definition: CSCGEMMotherboardME11.h:48
GEMPadDigiIds
matches< GEMPadDigi > GEMPadDigiIds
Definition: CSCGEMMotherboard.h:22
CSCGEMMotherboardME11::doesWiregroupCrossStrip
bool doesWiregroupCrossStrip(int key_wg, int key_hs) const override
Definition: CSCGEMMotherboardME11.cc:516
CSCGEMMotherboardME11::buildLCTfromALCTandGEM_ME1b_
bool buildLCTfromALCTandGEM_ME1b_
Definition: CSCGEMMotherboardME11.h:90
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19