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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#ifndef DataFormats_L1TCalorimeter_HGCalTower_h
#define DataFormats_L1TCalorimeter_HGCalTower_h
#include "DataFormats/L1Trigger/interface/L1Candidate.h"
#include "DataFormats/L1Trigger/interface/BXVector.h"
#include "DataFormats/L1THGCal/interface/HGCalTowerID.h"
namespace l1t {
class HGCalTower;
typedef BXVector<HGCalTower> HGCalTowerBxCollection;
class HGCalTower : public L1Candidate {
public:
HGCalTower() : etEm_(0.), etHad_(0.), id_(0), hwEtEm_(0), hwEtHad_(0), hwEtRatio_(0) {}
HGCalTower(double etEm,
double etHad,
double eta,
double phi,
uint32_t id,
int hwpt = 0,
int hweta = 0,
int hwphi = 0,
int qual = 0,
int hwEtEm = 0,
int hwEtHad = 0,
int hwEtRatio = 0);
~HGCalTower() override;
void addEtEm(double et);
void addEtHad(double et);
double etEm() const { return etEm_; };
double etHad() const { return etHad_; };
const HGCalTower& operator+=(const HGCalTower& tower);
HGCalTowerID id() const { return id_; }
short zside() const { return id_.zside(); }
void setHwEtEm(int et) { hwEtEm_ = et; }
void setHwEtHad(int et) { hwEtHad_ = et; }
void setHwEtRatio(int ratio) { hwEtRatio_ = ratio; }
int hwEtEm() const { return hwEtEm_; }
int hwEtHad() const { return hwEtHad_; }
int hwEtRatio() const { return hwEtRatio_; }
private:
void addEt(double et);
// additional hardware quantities
double etEm_;
double etHad_;
HGCalTowerID id_;
int hwEtEm_;
int hwEtHad_;
int hwEtRatio_;
};
} // namespace l1t
#endif
|