Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:22

0001 #ifndef TOWERINFOCONTAINER_H
0002 #define TOWERINFOCONTAINER_H
0003 
0004 #include <phool/PHObject.h>
0005 
0006 #include <cstddef>
0007 #include <iostream>
0008 #include <limits>
0009 #include <map>
0010 
0011 class TowerInfo;
0012 
0013 class TowerInfoContainer : public PHObject
0014 {
0015  public:
0016   typedef std::map<unsigned int, TowerInfo*> TowerMap;
0017   typedef TowerMap::const_iterator ConstIter;
0018   typedef TowerMap::iterator Iter;
0019 
0020   enum DETECTOR
0021   {
0022     EMCAL = 0,
0023     HCAL = 1,
0024     SEPD = 2,
0025     MBD = 3,
0026     ZDC = 4,
0027     DETECTOR_INVALID = 9999
0028   };
0029 
0030   TowerInfoContainer() = default;
0031   ~TowerInfoContainer() override = default;
0032   void identify(std::ostream& os = std::cout) const override;
0033 
0034   virtual void Reset() override {}
0035   virtual TowerInfo* get_tower_at_channel(int /*index*/) { return nullptr; }
0036   virtual TowerInfo* get_tower_at_key(int /*key*/) { return nullptr; }
0037   virtual size_t size() const { return 0; }
0038 
0039   virtual unsigned int encode_key(unsigned int /*towerIndex*/) { return std::numeric_limits<unsigned int>::max(); }
0040   virtual unsigned int decode_key(unsigned int /*towerIndex*/) { return std::numeric_limits<unsigned int>::max(); }
0041 
0042   virtual unsigned int encode_epd(unsigned int /*towerIndex*/);
0043   virtual unsigned int encode_hcal(unsigned int /*towerIndex*/);
0044   virtual unsigned int encode_emcal(unsigned int /*towerIndex*/);
0045   virtual unsigned int encode_mbd(unsigned int /*towerIndex*/);
0046   virtual unsigned int encode_zdc(unsigned int /*towerIndex*/);
0047 
0048   virtual unsigned int decode_epd(unsigned int /*towerIndex*/);
0049   virtual unsigned int decode_hcal(unsigned int /*towerIndex*/);
0050   virtual unsigned int decode_emcal(unsigned int /*towerIndex*/);
0051   virtual unsigned int decode_mbd(unsigned int /*towerIndex*/);
0052   virtual unsigned int decode_zdc(unsigned int /*towerIndex*/);
0053 
0054   virtual unsigned int getTowerPhiBin(unsigned int /*towerIndex*/);
0055   virtual unsigned int getTowerEtaBin(unsigned int /*towerIndex*/);
0056 
0057   virtual DETECTOR get_detectorid() const { return DETECTOR_INVALID; }
0058 
0059  private:
0060   ClassDefOverride(TowerInfoContainer, 1);
0061 };
0062 
0063 #endif