Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:35

0001 #ifndef L1RCTORCAMap_h
0002 #define L1RCTORCAMap_h
0003 
0004 #include <vector>
0005 
0006 class L1RCTORCAMap {
0007 public:
0008   L1RCTORCAMap();
0009 
0010   std::vector<std::vector<std::vector<unsigned short>>> giveBarrel();
0011   std::vector<std::vector<unsigned short>> giveHF();
0012 
0013   void readData(const std::vector<unsigned> &emet,
0014                 const std::vector<unsigned> &hdet,
0015                 const std::vector<bool> &emfg,
0016                 const std::vector<bool> &hdfg,
0017                 const std::vector<unsigned> &hfet);
0018 
0019   std::vector<int> orcamap(int eta, int phi);
0020 
0021   unsigned short combine(unsigned short et, unsigned short fg);
0022   std::vector<unsigned short> combVec(const std::vector<unsigned short> &et, const std::vector<unsigned short> &fg);
0023 
0024   void makeBarrelData();
0025   void makeHFData();
0026 
0027 private:
0028   std::vector<std::vector<std::vector<unsigned short>>> barrelData;
0029   std::vector<std::vector<unsigned short>> hfData;
0030 
0031   // the barrel data comes in big nasty strips of phi
0032   // increasing in eta from -3 up to 3
0033   // This has to be broken up into the proper tower number.
0034   // The following method does this
0035 
0036   std::vector<int> lowEtaMap(int eta, int phi);
0037   std::vector<int> highEtaMap(int eta, int phi);
0038 
0039   std::vector<unsigned short> rawEMET;
0040   std::vector<unsigned short> rawEMFG;
0041   std::vector<unsigned short> rawHDET;
0042   std::vector<unsigned short> rawHDFG;
0043   std::vector<unsigned short> rawHFET;
0044   std::vector<unsigned short> combEM;
0045   std::vector<unsigned short> combHD;
0046 };
0047 
0048 #endif