Back to home page

sPhenix code displayed by LXR

 
 

    


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   //! return all towers
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