CMS 3D CMS Logo

L1RCTCrate.h
Go to the documentation of this file.
1 #ifndef L1RCTCrate_h
2 #define L1RCTCrate_h
3 
7 #include <vector>
8 
10 
11 class L1RCTCrate {
12 
13 public:
14  L1RCTCrate(int crtNo, const L1RCTLookupTables *rctLookupTables);
15 
16  ~L1RCTCrate();
17 
18  int crateNumber() { return crtNo; }
19 
20  // For sharing information between crates.
21  // It passes the pointers to the cards rather than the copies of the cards
22  // because we need to modify the actual regions when setting their
23  // neighbors rather than just copies.
24  // Working in non garbage collected languages can really suck sometimes.
26  // L1RCTJetSummaryCard* getJetSummaryCard { return &jetSummaryCard;}
27 
28  // This method receives the input from the L1RCT class and distributes
29  // the RCInput to the 7 receiver cards and sends the HFInput straight
30  // to the JSC for this crate. The RCs never see the HF data. Instead
31  // the JSC acts like a primitive RC for these regions.
32  void input(const std::vector<std::vector<unsigned short>> &RCInput,
33  const std::vector<unsigned short> &HFInput);
34  // The two following are methods for running the actual data processing
35  // in the RCs and the EICs. They're to be called for each card
36  // from the L1RCT process method
37  void processReceiverCards();
40  // Pulls the information from the RCs and EICs and sends it to the
41  // JSC.
42  void fillJetSummaryCard();
43  void processJetSummaryCard();
44  void print();
46  void printRC(int i) { receiverCards.at(i).print(); }
47  void printEIC(int i) { electronCards.at(i).print(); }
48  void printEICEdges(int i) { electronCards.at(i).printEdges(); }
49 
50  // region sums
51  std::vector<unsigned short> getJetRegions() {
53  }
54  std::vector<unsigned short> getBarrelRegions() {
56  }
57  std::vector<unsigned short> getHFRegions() {
59  }
60 
61  // e-gamma objects
62  std::vector<unsigned short> getIsolatedEGObjects() {
64  }
65  std::vector<unsigned short> getNonisolatedEGObjects() {
67  }
68 
69  // the bits
70  unsigned short getTauBits() { return jetSummaryCard.getTauBits(); }
71  unsigned short getMIPBits() { return jetSummaryCard.getMIPBits(); }
72  unsigned short getOverFlowBits() { return jetSummaryCard.getOverFlowBits(); }
73  unsigned short getQuietBits() { return jetSummaryCard.getQuietBits(); }
74  // hf bit
75  std::vector<unsigned short> getHFFineGrainBits() {
77  }
78 
79 private:
80  // The seven RCs and EICs
81  // They are laid out according to CMS IN 2004/008
82  // Increasing number towards higher absolute eta
83  // The seventh card is always sideways with respect to the
84  // other six.
85  std::vector<L1RCTReceiverCard> receiverCards;
86  std::vector<L1RCTElectronIsolationCard> electronCards;
87  // The JSC receives the jet and electron information from the
88  // RCs and EICs. There is only one per crate.
90 
91  int crtNo;
93 
94  L1RCTCrate() = delete;
95 
96  // L1RCTJetCaptureCard jetCaptureCard;
97 };
98 #endif // L1RCTCrate_h
unsigned short getQuietBits()
unsigned short getQuietBits()
Definition: L1RCTCrate.h:73
std::vector< unsigned short > getJetRegions()
unsigned short getTauBits()
std::vector< unsigned short > getBarrelRegions()
Definition: L1RCTCrate.h:54
void fillElectronIsolationCards()
Definition: L1RCTCrate.cc:36
unsigned short getTauBits()
Definition: L1RCTCrate.h:70
std::vector< unsigned short > getIsolatedEGObjects()
Definition: L1RCTCrate.h:62
L1RCTJetSummaryCard jetSummaryCard
Definition: L1RCTCrate.h:89
void processElectronIsolationCards()
Definition: L1RCTCrate.cc:43
std::vector< unsigned short > getNonisolatedEGObjects()
Definition: L1RCTCrate.h:65
std::vector< unsigned short > getHFFineGrainBits()
Definition: L1RCTCrate.h:75
void fillJetSummaryCard()
Definition: L1RCTCrate.cc:47
void processReceiverCards()
Definition: L1RCTCrate.cc:29
void printEIC(int i)
Definition: L1RCTCrate.h:47
const L1RCTLookupTables * rctLookupTables_
Definition: L1RCTCrate.h:92
unsigned short getMIPBits()
std::vector< unsigned short > getNonisolatedEGObjects()
std::vector< unsigned short > getBarrelRegions()
void processJetSummaryCard()
Definition: L1RCTCrate.cc:77
std::vector< unsigned short > getHFFineGrainBits()
void printEICEdges(int i)
Definition: L1RCTCrate.h:48
unsigned short getOverFlowBits()
L1RCTReceiverCard * getReceiverCard(int i)
Definition: L1RCTCrate.h:25
std::vector< unsigned short > getIsolatedEGObjects()
std::vector< unsigned short > getHFRegions()
void printRC(int i)
Definition: L1RCTCrate.h:46
unsigned short getMIPBits()
Definition: L1RCTCrate.h:71
int crateNumber()
Definition: L1RCTCrate.h:18
L1RCTCrate()=delete
std::vector< unsigned short > getHFRegions()
Definition: L1RCTCrate.h:57
void print()
Definition: L1RCTCrate.cc:82
void printJSC()
Definition: L1RCTCrate.h:45
std::vector< L1RCTReceiverCard > receiverCards
Definition: L1RCTCrate.h:85
void input(const std::vector< std::vector< unsigned short >> &RCInput, const std::vector< unsigned short > &HFInput)
Definition: L1RCTCrate.cc:17
unsigned short getOverFlowBits()
Definition: L1RCTCrate.h:72
std::vector< L1RCTElectronIsolationCard > electronCards
Definition: L1RCTCrate.h:86
std::vector< unsigned short > getJetRegions()
Definition: L1RCTCrate.h:51