File indexing completed on 2025-08-03 08:16:56
0001 #ifndef CALOBASE_RAWTOWERCONTAINER_H
0002 #define CALOBASE_RAWTOWERCONTAINER_H
0003
0004 #include "RawTowerDefs.h"
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <iostream>
0009 #include <map>
0010 #include <utility>
0011
0012 class RawTower;
0013
0014 class RawTowerContainer : public PHObject
0015 {
0016 public:
0017 typedef std::map<RawTowerDefs::keytype, RawTower *> Map;
0018 typedef Map::iterator Iterator;
0019 typedef Map::const_iterator ConstIterator;
0020 typedef std::pair<Iterator, Iterator> Range;
0021 typedef std::pair<ConstIterator, ConstIterator> ConstRange;
0022
0023 RawTowerContainer(RawTowerDefs::CalorimeterId caloid = RawTowerDefs::NONE)
0024 : _caloid(caloid)
0025 {
0026 }
0027
0028 ~RawTowerContainer() override {}
0029
0030 void Reset() override;
0031 int isValid() const override;
0032 void identify(std::ostream &os = std::cout) const override;
0033
0034 void setCalorimeterID(RawTowerDefs::CalorimeterId caloid) { _caloid = caloid; }
0035 RawTowerDefs::CalorimeterId getCalorimeterID() { return _caloid; }
0036
0037 ConstIterator AddTower(const unsigned int ieta, const unsigned int iphi, RawTower *twr);
0038 ConstIterator AddTower(RawTowerDefs::keytype key, RawTower *twr);
0039
0040 RawTower *getTower(RawTowerDefs::keytype key);
0041 const RawTower *getTower(RawTowerDefs::keytype key) const;
0042
0043 RawTower *getTower(const unsigned int ieta, const unsigned int iphi);
0044 const RawTower *getTower(const unsigned int ieta, const unsigned int iphi) const;
0045
0046 RawTower *getTower(const unsigned int ieta, const unsigned int iphi, const unsigned int il);
0047 const RawTower *getTower(const unsigned int ieta, const unsigned int iphi, const unsigned int il) const;
0048
0049
0050 ConstRange getTowers(void) const;
0051 Range getTowers(void);
0052
0053 unsigned int size() const { return _towers.size(); }
0054 void compress(const double emin);
0055 double getTotalEdep() const;
0056
0057 protected:
0058 RawTowerDefs::CalorimeterId _caloid;
0059 Map _towers;
0060
0061 ClassDefOverride(RawTowerContainer, 1)
0062 };
0063
0064 #endif