File indexing completed on 2024-04-06 12:04:33
0001 #ifndef DataFormats_L1TCalorimeter_HGCalTowerMap_h
0002 #define DataFormats_L1TCalorimeter_HGCalTowerMap_h
0003
0004 #include "DataFormats/L1THGCal/interface/HGCalTower.h"
0005 #include "DataFormats/L1Trigger/interface/BXVector.h"
0006
0007 #include <unordered_map>
0008
0009 namespace l1t {
0010
0011 class HGCalTowerMap;
0012 struct HGCalTowerCoord;
0013 typedef BXVector<HGCalTowerMap> HGCalTowerMapBxCollection;
0014
0015 class HGCalTowerMap {
0016 public:
0017 HGCalTowerMap() : layer_(0) {}
0018
0019 HGCalTowerMap(const std::vector<l1t::HGCalTowerCoord>& tower_ids, const int layer);
0020
0021 int layer() const { return layer_; }
0022
0023 const HGCalTowerMap& operator+=(const HGCalTowerMap& map);
0024
0025 bool addEt(const std::unordered_map<unsigned short, float>& towerIDandShares, float etEm, float etHad);
0026
0027 unsigned nTowers() const { return towerMap_.size(); }
0028 const std::unordered_map<unsigned short, l1t::HGCalTower>& towers() const { return towerMap_; }
0029
0030 private:
0031 std::unordered_map<unsigned short, l1t::HGCalTower> towerMap_;
0032 unsigned layer_;
0033 };
0034
0035 }
0036
0037 #endif