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
67
68
69
70
71
|
#ifndef DataFormats_L1Trigger_EGamma_h
#define DataFormats_L1Trigger_EGamma_h
#include "DataFormats/L1Trigger/interface/L1Candidate.h"
#include "DataFormats/L1Trigger/interface/BXVector.h"
#include "DataFormats/L1Trigger/interface/L1TObjComparison.h"
namespace l1t {
class EGamma;
typedef BXVector<EGamma> EGammaBxCollection;
typedef edm::Ref<EGammaBxCollection> EGammaRef;
typedef edm::RefVector<EGammaBxCollection> EGammaRefVector;
typedef std::vector<EGammaRef> EGammaVectorRef;
typedef ObjectRefBxCollection<EGamma> EGammaRefBxCollection;
typedef ObjectRefPair<EGamma> EGammaRefPair;
typedef ObjectRefPairBxCollection<EGamma> EGammaRefPairBxCollection;
class EGamma : public L1Candidate {
public:
EGamma() { clear_extended(); }
// ctor from base allowed, but note that extended variables will be set to zero:
EGamma(const L1Candidate& rhs) : L1Candidate(rhs) { clear_extended(); }
EGamma(const LorentzVector& p4, int pt = 0, int eta = 0, int phi = 0, int qual = 0, int iso = 0);
EGamma(const PolarLorentzVector& p4, int pt = 0, int eta = 0, int phi = 0, int qual = 0, int iso = 0);
~EGamma() override;
void setTowerIEta(short int ieta); // ieta of seed tower
void setTowerIPhi(short int iphi); // iphi of seed tower
void setRawEt(short int pt); // raw (uncalibrated) cluster sum
void setIsoEt(short int iso); // raw isolation sum - cluster sum
void setFootprintEt(short int fp); // raw footprint
void setNTT(short int ntt); // n towers above threshold
void setShape(short int s); // cluster shape variable
void setTowerHoE(short int HoE); // H/E as computed in Layer-1
short int towerIEta() const;
short int towerIPhi() const;
short int rawEt() const;
short int isoEt() const;
short int footprintEt() const;
short int nTT() const;
short int shape() const;
short int towerHoE() const;
bool operator==(const l1t::EGamma& rhs) const;
inline bool operator!=(const l1t::EGamma& rhs) const { return !(operator==(rhs)); };
private:
using L1Candidate::operator==;
using L1Candidate::operator!=;
// additional hardware quantities common to L1 global EG
void clear_extended();
short int towerIEta_;
short int towerIPhi_;
short int rawEt_;
short int isoEt_;
short int footprintEt_;
short int nTT_;
short int shape_;
short int towerHoE_;
};
} // namespace l1t
#endif
|