CMS 3D CMS Logo

L1GctInternJetData.cc
Go to the documentation of this file.
2 
3 L1GctInternJetData::L1GctInternJetData() : capBlock_(0), capIndex_(0), bx_(0), type_(null), data_(0) {}
4 
7  uint16_t capBlock,
8  uint16_t capIndex,
9  int16_t bx,
10  uint8_t sgnEta,
11  uint8_t oflow,
12  uint16_t et,
13  uint8_t eta,
14  uint8_t phi,
15  uint8_t tauVeto,
16  uint8_t rank)
17  : regionId_(rgn), capBlock_(capBlock), capIndex_(capIndex), bx_(bx), type_(null), data_(0) {
19 }
20 
21 // 'named' constructors to avoid confusion
22 
23 // emulator calibrated jet ctor
25  L1CaloRegionDetId rgn, int16_t bx, uint16_t et, bool oflow, bool tauVeto, uint8_t eta, uint8_t phi, uint16_t rank) {
27 
28  d.setType(emulator);
29  d.setRegionId(rgn);
30  d.setData(0, (oflow ? 1 : 0), et, eta, phi, (tauVeto ? 1 : 0), rank);
31  d.setBx(bx);
32 
33  return d;
34 }
35 
38  L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data) {
40 
41  d.setRegionId(rgn);
42  d.setCapBlock(capBlock);
43  d.setCapIndex(capIndex);
44  d.setBx(bx);
45  d.setType(jet_cluster);
46  d.setRawData(data & 0x1fffffff);
47 
48  return d;
49 }
50 
53  L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data) {
55 
56  d.setRegionId(rgn);
57  d.setCapBlock(capBlock);
58  d.setCapIndex(capIndex);
59  d.setBx(bx);
60  d.setType(jet_precluster);
61  d.setData(0, (data >> 10) & 0x1, data & 0x3ff, (data >> 12) & 0xf, 0, (data >> 11) & 0x1, 0);
62 
63  return d;
64 }
65 
68  L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data) {
70 
71  d.setRegionId(rgn);
72  d.setCapBlock(capBlock);
73  d.setCapIndex(capIndex);
74  d.setBx(bx);
75  d.setType(jet_cluster_minimal);
76  d.setData(0, (data >> 10) & 0x1, 0, (data >> 6) & 0xf, (data >> 12) & 0x1, (data >> 11) & 0x1, data & 0x3f);
77 
78  return d;
79 }
80 
83  L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data) {
85 
86  d.setRegionId(rgn);
87  d.setCapBlock(capBlock);
88  d.setCapIndex(capIndex);
89  d.setBx(bx);
90  d.setType(gct_trig_object);
91  d.setData((data >> 10) & 0x1, 0, 0, (data >> 6) & 0xf, (data >> 11) & 0x1f, 0, data & 0x3f);
92 
93  return d;
94 }
95 
98 
101  uint8_t sgnEta, uint8_t oflow, uint16_t et, uint8_t eta, uint8_t phi, uint8_t tauVeto, uint8_t rank) {
102  data_ = 0;
103  data_ = rank & 0x3f;
104  data_ |= (tauVeto & 0x1) << 6;
105  data_ |= (phi & 0x1f) << 7;
106  data_ |= (eta & 0xf) << 12;
107  data_ |= (et & 0xfff) << 16;
108  data_ |= (oflow & 0x1) << 28;
109  data_ |= (sgnEta & 0x1) << 29;
110 }
111 
113 
116  return (type_ == c.type() && data_ == c.raw() && regionId_ == c.regionId() && bx_ == c.bx());
117 }
118 
120 std::ostream& operator<<(std::ostream& s, const L1GctInternJetData& c) {
121  s << "L1GctInternJetData :";
122  if (c.empty()) {
123  s << " empty!";
124  }
125  if (c.type() == L1GctInternJetData::jet_cluster) {
126  s << " type=jet_cluster";
127  s << " oflow=" << c.oflow();
128  s << " et=" << c.et();
129  s << " eta=" << c.eta();
130  s << " phi=" << c.phi();
131  s << " tauVeto=" << c.tauVeto();
132  s << " rank=" << c.rank();
133  } else if (c.type() == L1GctInternJetData::jet_precluster) {
134  s << " type=jet_precluster";
135  s << " oflow=" << c.oflow();
136  s << " et=" << c.et();
137  s << " eta=" << c.eta();
138  s << " tauVeto=" << c.tauVeto();
139  } else if (c.type() == L1GctInternJetData::jet_cluster_minimal) {
140  s << " type=jet_cluster_minimal";
141  s << " oflow=" << c.oflow();
142  s << " eta=" << c.eta();
143  s << " phi=" << c.phi();
144  s << " tauVeto=" << c.tauVeto();
145  s << " rank=" << c.rank();
146  } else if (c.type() == L1GctInternJetData::gct_trig_object) {
147  s << " type=gct_trig_object";
148  s << " eta=" << c.eta();
149  s << " phi=" << c.phi();
150  s << " rank=" << c.rank();
151  }
152  s << " cap block=" << std::hex << c.capBlock();
153  s << " index=" << std::dec << c.capIndex();
154  s << " BX=" << c.bx();
155 
156  return s;
157 }
static L1GctInternJetData fromJetPreCluster(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "jet_precluster"
L1GctInternJetData()
default constructor (for vector initialisation etc.)
L1 GCT internal jet candidate.
static L1GctInternJetData fromJetClusterMinimal(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "jet_cluster_minimal"
uint16_t eta() const
get eta
uint16_t capBlock() const
get capture block
uint16_t sgnEta() const
get sign of eta
L1CaloRegionDetId regionId_
uint16_t tauVeto() const
get tau veto
uint16_t capIndex() const
get index within capture block
uint16_t rank() const
get rank bits
int16_t bx() const
get BX number
d
Definition: ztail.py:151
uint16_t phi() const
get phi
L1GctInternJetType type_
static L1GctInternJetData fromEmulator(L1CaloRegionDetId rgn, int16_t bx, uint16_t et, bool overFlow, bool tauVeto, uint8_t eta, uint8_t phi, uint16_t rank)
virtual ~L1GctInternJetData()
destructor (virtual to prevent compiler warnings)
uint16_t oflow() const
get oflow
bool operator==(const L1GctInternJetData &c) const
equality operator
static L1GctInternJetData fromJetCluster(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "jet_cluster"
static L1GctInternJetData fromGctTrigObject(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "gct_trig_object"
std::ostream & operator<<(std::ostream &s, const L1GctInternJetData &c)
pretty print
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:80
uint16_t et() const
get et
void setData(uint8_t sgnEta, uint8_t oflow, uint16_t et, uint8_t eta, uint8_t phi, uint8_t tauVeto, uint8_t rank)
construct data word from components