File indexing completed on 2024-04-06 12:21:35
0001 #ifndef L1RCTReceiverCard_h
0002 #define L1RCTReceiverCard_h
0003
0004 #include "L1Trigger/RegionalCaloTrigger/interface/L1RCTRegion.h"
0005 #include <bitset>
0006 #include <cstdlib>
0007 #include <fstream>
0008 #include <iostream>
0009 #include <string>
0010 #include <vector>
0011
0012 class L1RCTLookupTables;
0013
0014 class L1RCTReceiverCard {
0015 public:
0016 L1RCTReceiverCard(int crateNumber, int cardNumber, const L1RCTLookupTables *rctLookupTables);
0017
0018
0019
0020 L1RCTReceiverCard() = delete;
0021
0022 ~L1RCTReceiverCard();
0023
0024
0025 int crateNumber() { return crtNo; }
0026 int cardNumber() { return cardNo; }
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 void fillInput(const std::vector<unsigned short> &input);
0052 void fillTauBits();
0053 void fillRegionSums();
0054 void fillMuonBits();
0055
0056
0057
0058 L1RCTRegion *getRegion(int i) { return ®ions.at(i); }
0059 unsigned short getTauBitRegion(int i) { return tauBits.at(i); }
0060 unsigned short getMuonBitRegion(int i) { return muonBits.at(i); }
0061 unsigned short getOverFlowBitRegion(int i) { return overFlowBits.at(i); }
0062 unsigned short getEtIn10BitsRegion(int i) { return etIn10Bits.at(i); }
0063
0064 std::vector<unsigned short> towerToRegionMap(int towernum);
0065
0066 void print();
0067
0068 void printEdges() {
0069 regions.at(0).printEdges();
0070 regions.at(1).printEdges();
0071 }
0072
0073 void randomInput();
0074 void fileInput(char *filename);
0075
0076 private:
0077 std::vector<L1RCTRegion> regions;
0078
0079 unsigned short calcRegionSum(L1RCTRegion region);
0080 unsigned short calcTauBit(L1RCTRegion region);
0081 unsigned short calcMuonBit(L1RCTRegion region);
0082 unsigned short crtNo;
0083 unsigned short cardNo;
0084
0085 const L1RCTLookupTables *rctLookupTables_;
0086
0087 std::vector<unsigned short> etIn10Bits;
0088 std::vector<unsigned short> overFlowBits;
0089 std::vector<unsigned short> muonBits;
0090 std::vector<unsigned short> tauBits;
0091 };
0092 #endif