Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:15

0001 #ifndef UCTCard_hh
0002 #define UCTCard_hh
0003 
0004 #include <vector>
0005 
0006 #include "UCTGeometry.hh"
0007 
0008 class UCTRegion;
0009 
0010 class UCTCard {
0011 public:
0012   UCTCard(uint32_t crt, uint32_t crd, int fwv);
0013 
0014   // No default constructor is needed
0015 
0016   UCTCard() = delete;
0017 
0018   // No copy constructor is needed
0019 
0020   UCTCard(const UCTCard&) = delete;
0021 
0022   // No equality operator is needed
0023 
0024   const UCTCard& operator=(const UCTCard&) = delete;
0025 
0026   virtual ~UCTCard();
0027 
0028   // To set up event data before processing
0029 
0030   const std::vector<UCTRegion*>& getRegions() const { return regions; }
0031   const UCTRegion* getRegion(uint32_t rgn) const { return regions[rgn]; }
0032   const UCTRegion* getRegion(UCTRegionIndex r) const;
0033 
0034   // To process event
0035 
0036   bool clearEvent();
0037   bool setECALData(UCTTowerIndex t, bool ecalFG, uint32_t ecalET);
0038   bool setHCALData(UCTTowerIndex t, uint32_t hcalFB, uint32_t hcalET);
0039   bool process();
0040 
0041   // More access functions
0042 
0043   const uint32_t getCrate() const { return crate; }
0044   const uint32_t getCard() const { return card; }
0045 
0046   const uint32_t et() const { return cardSummary; }
0047 
0048   friend std::ostream& operator<<(std::ostream&, const UCTCard&);
0049 
0050 private:
0051   // Helper functions
0052 
0053   const UCTRegion* getRegion(bool negativeEta, uint32_t caloEta, uint32_t caloPhi) const;
0054 
0055   // Owned card level data
0056 
0057   uint32_t crate;
0058   uint32_t card;
0059 
0060   std::vector<UCTRegion*> regions;
0061 
0062   uint32_t cardSummary;
0063 
0064   const int fwVersion;
0065 };
0066 
0067 #endif