1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#ifndef DataFormats_L1TCalorimeter_HGCalTowerMap_h
#define DataFormats_L1TCalorimeter_HGCalTowerMap_h
#include "DataFormats/L1THGCal/interface/HGCalTower.h"
#include "DataFormats/L1Trigger/interface/BXVector.h"
#include <unordered_map>
namespace l1t {
class HGCalTowerMap;
struct HGCalTowerCoord;
typedef BXVector<HGCalTowerMap> HGCalTowerMapBxCollection;
class HGCalTowerMap {
public:
HGCalTowerMap() : layer_(0) {}
HGCalTowerMap(const std::vector<l1t::HGCalTowerCoord>& tower_ids, const int layer);
int layer() const { return layer_; }
const HGCalTowerMap& operator+=(const HGCalTowerMap& map);
bool addEt(const std::unordered_map<unsigned short, float>& towerIDandShares, float etEm, float etHad);
unsigned nTowers() const { return towerMap_.size(); }
const std::unordered_map<unsigned short, l1t::HGCalTower>& towers() const { return towerMap_; }
private:
std::unordered_map<unsigned short, l1t::HGCalTower> towerMap_;
unsigned layer_;
};
} // namespace l1t
#endif
|