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 ) { return nullptr; }
0036 virtual TowerInfo* get_tower_at_key(int ) { return nullptr; }
0037 virtual size_t size() const { return 0; }
0038
0039 virtual unsigned int encode_key(unsigned int ) { return std::numeric_limits<unsigned int>::max(); }
0040 virtual unsigned int decode_key(unsigned int ) { return std::numeric_limits<unsigned int>::max(); }
0041
0042 virtual unsigned int encode_epd(unsigned int );
0043 virtual unsigned int encode_hcal(unsigned int );
0044 virtual unsigned int encode_emcal(unsigned int );
0045 virtual unsigned int encode_mbd(unsigned int );
0046 virtual unsigned int encode_zdc(unsigned int );
0047
0048 virtual unsigned int decode_epd(unsigned int );
0049 virtual unsigned int decode_hcal(unsigned int );
0050 virtual unsigned int decode_emcal(unsigned int );
0051 virtual unsigned int decode_mbd(unsigned int );
0052 virtual unsigned int decode_zdc(unsigned int );
0053
0054 virtual unsigned int getTowerPhiBin(unsigned int );
0055 virtual unsigned int getTowerEtaBin(unsigned int );
0056
0057 virtual DETECTOR get_detectorid() const { return DETECTOR_INVALID; }
0058
0059 private:
0060 ClassDefOverride(TowerInfoContainer, 1);
0061 };
0062
0063 #endif