ATLAS Offline Software
Loading...
Searching...
No Matches
JetTopoTOB.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include <cmath>
7#include <stdlib.h>
8
9namespace LVL1 {
10
11// Static constants
12
13const int JetTopoTOB::s_jemBit;
15const int JetTopoTOB::s_lcBit;
18
19const int JetTopoTOB::s_jemMask;
21const int JetTopoTOB::s_lcMask;
24
28
32
42
44{
45 m_crate = (roiWord>>28) & 0x1;
46 m_tobWord = (roiWord&0xfffffff);
47}
48
52
55{
56 return (localCoord()&1) + (frame()>>2)*s_frameEtaWidth + (jem()&7)*s_jemEtaWidth;
57}
58
61
63{
64
65 int index = etaIndex();
66
67 int ieta = 0;
68 if (index < 4 || index > 26) {
69 if (index==0) ieta = -s_jemFJEta;
70 else if (index==1) ieta = -s_jemEC1Eta;
71 else if (index==2) ieta = -s_jemEC2Eta;
72 else if (index==3) ieta = -s_jemEC3Eta;
73 else if (index==27) ieta = s_jemEC3Eta;
74 else if (index==28) ieta = s_jemEC2Eta;
75 else if (index==29) ieta = s_jemEC1Eta;
76 else if (index==30) ieta = s_jemFJEta;
77 else if (index==31) ieta = s_jemFJEta;
78 }
79 else {
81 }
82
83 return ieta;
84}
85
86// Extract eta coordinate from TOB data
87
88float JetTopoTOB::eta() const
89{
90
91 float eta = ieta()*0.1;
92
93 /*
94 int absEta = abs(ieta());
95 int sign = (eta > 0 ? 1 : -1);
96
97 switch (absEta) {
98 case s_jemEC3Eta:
99 eta = sign*2.45;
100 break;
101 case s_jemEC2Eta:
102 eta = sign*2.65;
103 break;
104 case s_jemEC1Eta:
105 eta = sign*2.95;
106 break;
107 }
108 */
109
110 return eta;
111}
112
113
116{
119
120 return index;
121}
122
123
126
128{
129 int index = phiIndex();
130
131 int iphi = (index+1)*s_jetElementWidth;
132 if (iphi > 63) iphi -= 64;
133 return iphi;
134}
135
137
139{
140 int index = phiIndex();
141
142 int iphi = (index+1)*s_jetElementWidth;
143 if (iphi > 32) iphi -= 64;
144 return iphi;
145}
146
147// Extract phi coordinate from TOB data
148
149float JetTopoTOB::phi() const
150{
151 float phi = iphiSigned()*M_PI/32;
152 return phi;
153}
154
155// Construct RoI word and return
156uint32_t JetTopoTOB::roiWord() const
157{
158 // ET values and coordinate within crate
159 uint32_t word = m_tobWord&0xfffffff;
160 // Crate number
161 word += (m_crate<<28);
162 // Type is 000 anyway, so nothing more to do
163
164 return word;
165}
166
167} // end namespace
#define M_PI
static const int s_etLargeBit
Definition JetTopoTOB.h:70
int phiIndex() const
Extract phi index from the TOB data (0-31)
int m_crate
crate
Definition JetTopoTOB.h:92
static const int s_frameBit
Definition JetTopoTOB.h:67
static const int s_etSmallMask
Definition JetTopoTOB.h:75
static const int s_jemEC2Eta
Definition JetTopoTOB.h:86
static const int s_jemPhiWidth
Definition JetTopoTOB.h:81
static const int s_jemBit
Definition JetTopoTOB.h:66
int frame() const
Return JEM frame number (0-7)
Definition JetTopoTOB.h:109
static const int s_jemEtaOffset
Definition JetTopoTOB.h:82
unsigned int localCoord() const
Return local coordinate (RoI local coords) (0-)
Definition JetTopoTOB.h:114
uint32_t m_tobWord
RoI word.
Definition JetTopoTOB.h:95
static const int s_framePhiWidth
Definition JetTopoTOB.h:78
static const int s_nJemPerQuadrant
Definition JetTopoTOB.h:88
static const int s_jetElementWidth
Definition JetTopoTOB.h:89
static const int s_lcMask
Definition JetTopoTOB.h:74
unsigned int etSmall() const
Small cluster ET value.
Definition JetTopoTOB.h:119
uint32_t roiWord() const
Return corresponding RoI word (useful for Topo simulation)
int ieta() const
Extract eta coordinate from TOB data The index is an integer eta coordinate in multiples of 0....
static const int s_frameMask
Definition JetTopoTOB.h:73
static const int s_lcBit
Definition JetTopoTOB.h:68
static const int s_jemEC1Eta
Definition JetTopoTOB.h:85
static const int s_jemEtaWidth
Definition JetTopoTOB.h:80
static const int s_etLargeMask
Definition JetTopoTOB.h:76
int jem() const
Return JEM number (0-15)
Definition JetTopoTOB.h:104
float phi() const
int iphi() const
Extract integer phi coordinate from TOB data.
float eta() const
int crate() const
Return crate number (0-3)
Definition JetTopoTOB.h:99
static const int s_jemMask
Definition JetTopoTOB.h:72
unsigned int etLarge() const
Large cluster ET value.
Definition JetTopoTOB.h:124
int iphiSigned() const
Signed iphi (-30 -> 32)
static const int s_jemFJEta
Definition JetTopoTOB.h:84
static const int s_jemEC3Eta
Definition JetTopoTOB.h:87
uint32_t tobWord() const
Return packed TOB word.
Definition JetTopoTOB.h:129
int etaIndex() const
Extract eta index from the TOB data (0-31)
static const int s_etSmallBit
Definition JetTopoTOB.h:69
static const int s_frameEtaWidth
Definition JetTopoTOB.h:79
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition index.py:1