ATLAS Offline Software
L1JEMJetTools.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
5 // L1JEMJetTools.cxx,
7 
8 #include "L1JEMJetTools.h"
13 
14 // amazurov: For findJEMResults depricated method
16 
17 #include "TrigConfData/L1Menu.h"
18 
19 namespace LVL1 {
20 
21 //================ Constructor =================================================
22 
23 L1JEMJetTools::L1JEMJetTools(const std::string& t, const std::string& n, const IInterface* p)
24 : base_class(t,n,p) {}
25 
26 //================ Initialisation =================================================
27 
29 {
31  return StatusCode::SUCCESS;
32 }
33 
34 //================ Finalisation =================================================
35 
37 {
38  return StatusCode::SUCCESS;
39 }
40 
41 //================ Need to load JetInputs into map before can form clusters =======
42 
43 void L1JEMJetTools::mapJetInputs(const xAOD::JetElementContainer* jes, std::map<int, JetInput*>* elements, int slice) const {
44 
45  // Clear map before filling
46  elements->clear();
47 
48  // Step over JEs, form JIs, and put into map
50  JetInputKey testKey(0.0, 0.0);
51 
53  JetInput* jetInput;
54  for( it = jes->begin(); it != jes->end(); ++it ){
55  double jetElementPhi=(*it)->phi();
56  double jetElementEta=(*it)->eta();
57  int jetElementET = 0;
58  if (slice < 0) { // Default to using peak slice
59  jetElementET = (*it)->et();
60  }
61  else { // Use user-specified slice
62  jetElementET = (*it)->sliceET(slice);
63  }
64  // Don't waste time & fill the JetInput map with empty elements
65  if (jetElementET == 0) continue;
66 
67  if (!testKey.isFCAL(jetElementEta)) { // 1-to-1 JE->JI outside FCAL
68  int key = testKey.jeKey(jetElementPhi,jetElementEta);
70  if (test == elements->end()){
71  // no JI yet. Create it!
72  ATH_MSG_DEBUG( "Creating JetInput at ("
73  << jetElementPhi << " , " << jetElementEta << "). Key = " << key);
74  jetInput=new JetInput(jetElementPhi,jetElementEta, jetElementET, key);
75  elements->insert(std::map<int, JetInput*>::value_type(key,jetInput)); //and put it in the map.
76  }
77  else{
78  ATH_MSG_ERROR( "JetInput already exists (shouldn't happen!). Coords (" << jetElementEta << ", " << jetElementPhi << "), key = " << key );
79  }
80  }
81  else { // FCAL JEs are divided into 2 JIs
82  // Each gets half of the ET. If value is odd, remainder added to lower JI
83  int jetInputET = (jetElementET>>1);
84  int underflow = jetElementET&0x1;
85  // Modifier: if JetElement is saturated, both "halves" should saturate
86  if ((*it)->isSaturated()) {
87  jetInputET = jetElementET; // don't divide saturated ET
88  underflow = 0; // want both halves set to same value
89  }
90  // Phi coordinates of the two elements
91  double phiOffset = testKey.dPhi(jetElementPhi,jetElementEta)/2.;
92  std::vector<double> phiValues;
93  std::vector<int> etValues;
94  phiValues.push_back(jetElementPhi - phiOffset);
95  etValues.push_back(jetInputET+underflow);
96  phiValues.push_back(jetElementPhi + phiOffset);
97  etValues.push_back(jetInputET);
98  // Calculate keys, create JI, and add (halved) ET to each
99  for (size_t iphi = 0; iphi < phiValues.size(); ++iphi) {
100  int key = testKey.jeKey(phiValues[iphi],jetElementEta);
101  std::map<int, JetInput*>::iterator test=elements->find( key );
102  JetInput* jetInput=0;
103  if (test == elements->end()){
104  // no JI yet. Create it!
105  ATH_MSG_DEBUG( "Creating JetInput at ("
106  << phiValues[iphi] << " , " << jetElementEta << "). Key = " << key);
107  jetInput=new JetInput(phiValues[iphi],jetElementEta, etValues[iphi], key);
108  elements->insert(std::map<int, JetInput*>::value_type(key,jetInput)); //and put it in the map.
109  }
110  else{
111  ATH_MSG_ERROR( "FCAL JetInput already exists (shouldn't happen!). Coords (" << jetElementEta << ", " << jetElementPhi << "), key = " << key );
112  }
113  } // end loop over parts of the JE
114  } // end handling of FCAL JEs
115  }//endfor
116 
117 }
118 
121 void L1JEMJetTools::findRoIs(const std::map<int, JetInput*>* elements, DataVector<JEMJetAlgorithm>* rois) const {
122 
123  // Start with an empty vector
124  rois->clear();
125 
133  JetInputKey testKey(0.0, 0.0);
134  std::map<int, int> analysed;
135  std::map<int, JetInput*>::const_iterator input = elements->begin();
136  for ( ; input != elements->end(); ++input) {
137  double eta = (*input).second->eta();
138  double startPhi = (*input).second->phi();
139  for (int etaOffset = 0; etaOffset >= -1; etaOffset--) {
140  Coordinate tempCoord(startPhi, eta);
141  for (int phiOffset = 0; phiOffset >= -1; phiOffset--) {
142  int key = testKey.jeKey(tempCoord);
143  std::map<int, int>::iterator test = analysed.find(key);
144  if (test == analysed.end()) {
145  analysed.insert(std::map<int, int>::value_type(key,1));
146  double tempEta = tempCoord.eta();
147  double tempPhi = tempCoord.phi();
148  JEMJetAlgorithm* roi = new JEMJetAlgorithm(tempEta, tempPhi, elements, m_l1menu);
149  if (roi->isRoI()) rois->push_back(roi);
150  else delete roi;
151  }
152  tempCoord = testKey.downPhi(tempCoord); // decrement phi
153  } // phi offset loop
154  tempCoord = testKey.leftEta(tempCoord); // decrement eta
155  eta = tempCoord.eta();
156  if (eta == TrigT1CaloDefs::RegionERROREtaCentre) break; // gone outside detector
157  } // eta offset loop
158  } // loop over JetInput map
159 
160 }
161 
165 
167  std::map<int, JetInput*>* inputs = new std::map<int, JetInput*>;
168  mapJetInputs(jes, inputs, slice);
169 
171  findRoIs(inputs, rois);
172 
174  for (std::map<int, JetInput*>::iterator it = inputs->begin(); it != inputs->end(); ++it) {
175  delete (*it).second;
176  }
177  delete inputs;
178 
179 }
180 
181 
184 void L1JEMJetTools::findRoIs(const std::map<int, JetInput*>* elements, xAOD::JEMTobRoIContainer* rois) const {
185 
186  // Start with an empty DataVector
187  rois->clear();
188 
196  JetInputKey testKey(0.0, 0.0);
197  std::map<int, int> analysed;
198  std::map<int, JetInput*>::const_iterator input = elements->begin();
199  for ( ; input != elements->end(); ++input) {
200  double eta = (*input).second->eta();
201  double startPhi = (*input).second->phi();
202  for (int etaOffset = 0; etaOffset >= -1; etaOffset--) {
203  Coordinate tempCoord(startPhi, eta);
204  for (int phiOffset = 0; phiOffset >= -1; phiOffset--) {
205  int key = testKey.jeKey(tempCoord);
206  std::map<int, int>::iterator test = analysed.find(key);
207  if (test == analysed.end()) {
208  analysed.insert(std::map<int, int>::value_type(key,1));
209  double tempEta = tempCoord.eta();
210  double tempPhi = tempCoord.phi();
211  JEMJetAlgorithm roi(tempEta, tempPhi, elements, m_l1menu);
212 
213  if (roi.isRoI() != 0) rois->push_back(roi.jemTobRoI());
214 
215  }
216  tempCoord = testKey.downPhi(tempCoord); // decrement phi
217  } // phi offset loop
218  tempCoord = testKey.leftEta(tempCoord); // decrement eta
219  eta = tempCoord.eta();
220  if (eta == TrigT1CaloDefs::RegionERROREtaCentre) break; // gone outside detector
221  } // eta offset loop
222  } // loop over JetInput map
223 
224 }
225 
226 
230 
232  std::map<int, JetInput*>* inputs = new std::map<int, JetInput*>;
233  mapJetInputs(jes, inputs, slice);
234 
236  findRoIs(inputs, rois);
237 
239  for (std::map<int, JetInput*>::iterator it = inputs->begin(); it != inputs->end(); ++it) {
240  delete (*it).second;
241  }
242  delete inputs;
243 
244 }
245 
246 
249 void L1JEMJetTools::findJEMResults(const std::map<int, JetInput*>* inputs, int crate, int module,
250  xAOD::JEMTobRoIContainer* rois, std::vector<unsigned int>& jetCMXData) const {
251 
254  jetCMXData.clear();
255  jetCMXData.resize(4);
256 
258  int nTobs = 0;
259 
260  // Phi coordinates within module
261  float PhiMin = ( crate + ( module>7 ? 2 : 0 ) )*M_PI/2;
262  float PhiCell[8];
263  for (int ip = 0; ip < 8; ++ip) PhiCell[ip] = PhiMin + ip*M_PI/16 + M_PI/32;
264 
265  // Eta coordinates within module
266  float EtaCell[4];
267  if ( module%8 == 0 ) {
268  EtaCell[0] = -4.0 ;
269  EtaCell[1] = -3.05 ;
270  EtaCell[2] = -2.8 ;
271  EtaCell[3] = -2.55 ;
272  }
273  else if ( module%8 == 7 ) {
274  EtaCell[0] = 2.55 ;
275  EtaCell[1] = 2.8 ;
276  EtaCell[2] = 3.05 ;
277  EtaCell[3] = 4.0;
278  }
279  else {
280  for (int ie = 0; ie < 4; ++ie) EtaCell[ie] = (module%8)*0.8 - 3.2 + ie*0.2 + 0.1;
281  }
282 
285  for (int iFrame = 0; iFrame < 8; ++iFrame) {
286  for (int iPhi = 0; iPhi < 2; ++iPhi) {
287  int ip = 2*(iFrame&3) + + iPhi;
288  for (int iEta = 0; iEta < 2; ++iEta) {
289  int ie = 2*(iFrame>>2) + iEta;
290 
295  JEMJetAlgorithm tob(EtaCell[ie], PhiCell[ip], inputs, m_l1menu);
296 
301  if (tob.isRoI()) {
302  unsigned int etL = tob.ETLarge();
303  unsigned int etS = tob.ETSmall();
304  unsigned int lc = (iPhi << 1) + iEta;
305 
306  xAOD::JEMTobRoI* RoI = new xAOD::JEMTobRoI;
307  RoI->makePrivateStore();
308  RoI->initialize(crate, module, iFrame, lc, etL, etS);
309  rois->push_back(RoI);
310 
311  jetCMXData[0] |= (1 << iFrame);
312 
313  switch (nTobs) {
314  case 0:
315  jetCMXData[0] += ( etL << 13 );
316  jetCMXData[0] += ( (etS&7) << 8 );
317  jetCMXData[1] += ( (etS >> 3) & 0x3f );
318  jetCMXData[0] += ( lc << 11 );
319  break;
320  case 1:
321  jetCMXData[1] += ( etL << 13 );
322  jetCMXData[1] += ( (etS&0x1f) << 6 );
323  jetCMXData[2] += ( (etS >> 5) & 0xf );
324  jetCMXData[1] += ( lc << 11 );
325  break;
326  case 2:
327  jetCMXData[2] += ( etL << 13 );
328  jetCMXData[2] += ( (etS&0x7f) << 4 );
329  jetCMXData[3] += ( (etS >> 7) & 3 );
330  jetCMXData[2] += ( lc << 11 );
331  break;
332  case 3:
333  jetCMXData[3] += ( etL << 13 );
334  jetCMXData[3] += ( etS << 2 );
335  jetCMXData[3] += ( lc << 11 );
336  break;
337  }
338  nTobs++;
339 
340  } // Found TOB
341 
342  } // eta within frame
343  } // phi within frame
344  } // frame (0-7) within module
345 
346  // Finally set parity bits for data words
347  for (unsigned int word = 0; word < 4; ++word) {
348  unsigned int parity = 1;
349  for (unsigned int bit = 0; bit < 24; ++bit) if ( ( (jetCMXData[word]>>bit) & 1) > 0 ) parity++;
350  parity &= 1;
351  jetCMXData[word] |= (parity<<23);
352  }
353 
354 
355 }
356 
357 void L1JEMJetTools::findJEMResults(const std::map<int, JetInput*>* inputs, int crate, int module,
358  DataVector<JEMTobRoI>* rois, std::vector<unsigned int>& jetCMXData) const {
359 
362  jetCMXData.clear();
363  jetCMXData.resize(4);
364 
366  int nTobs = 0;
367 
368  // Phi coordinates within module
369  float PhiMin = ( crate + ( module>7 ? 2 : 0 ) )*M_PI/2;
370  float PhiCell[8];
371  for (int ip = 0; ip < 8; ++ip) PhiCell[ip] = PhiMin + ip*M_PI/16 + M_PI/32;
372 
373  // Eta coordinates within module
374  float EtaCell[4];
375  if ( module%8 == 0 ) {
376  EtaCell[0] = -4.0 ;
377  EtaCell[1] = -3.05 ;
378  EtaCell[2] = -2.8 ;
379  EtaCell[3] = -2.55 ;
380  }
381  else if ( module%8 == 7 ) {
382  EtaCell[0] = 2.55 ;
383  EtaCell[1] = 2.8 ;
384  EtaCell[2] = 3.05 ;
385  EtaCell[3] = 4.0;
386  }
387  else {
388  for (int ie = 0; ie < 4; ++ie) EtaCell[ie] = (module%8)*0.8 - 3.2 + ie*0.2 + 0.1;
389  }
390 
393  for (int iFrame = 0; iFrame < 8; ++iFrame) {
394  for (int iPhi = 0; iPhi < 2; ++iPhi) {
395  int ip = 2*(iFrame&3) + + iPhi;
396  for (int iEta = 0; iEta < 2; ++iEta) {
397  int ie = 2*(iFrame>>2) + iEta;
398 
403  JEMJetAlgorithm tob(EtaCell[ie], PhiCell[ip], inputs, m_l1menu);
404 
409  if (tob.isRoI()) {
410  unsigned int etL = tob.ETLarge();
411  unsigned int etS = tob.ETSmall();
412  unsigned int lc = (iPhi << 1) + iEta;
413 
414  JEMTobRoI* RoI = new JEMTobRoI(crate, module, iFrame, lc, etL, etS);
415  rois->push_back(RoI);
416 
417  jetCMXData[0] |= (1 << iFrame);
418 
419  switch (nTobs) {
420  case 0:
421  jetCMXData[0] += ( etL << 13 );
422  jetCMXData[0] += ( (etS&7) << 8 );
423  jetCMXData[1] += ( (etS >> 3) & 0x3f );
424  jetCMXData[0] += ( lc << 11 );
425  break;
426  case 1:
427  jetCMXData[1] += ( etL << 13 );
428  jetCMXData[1] += ( (etS&0x1f) << 6 );
429  jetCMXData[2] += ( (etS >> 5) & 0xf );
430  jetCMXData[1] += ( lc << 11 );
431  break;
432  case 2:
433  jetCMXData[2] += ( etL << 13 );
434  jetCMXData[2] += ( (etS&0x7f) << 4 );
435  jetCMXData[3] += ( (etS >> 7) & 3 );
436  jetCMXData[2] += ( lc << 11 );
437  break;
438  case 3:
439  jetCMXData[3] += ( etL << 13 );
440  jetCMXData[3] += ( etS << 2 );
441  jetCMXData[3] += ( lc << 11 );
442  break;
443  }
444  nTobs++;
445 
446  } // Found TOB
447 
448  } // eta within frame
449  } // phi within frame
450  } // frame (0-7) within module
451 
452  // Finally set parity bits for data words
453  for (unsigned int word = 0; word < 4; ++word) {
454  unsigned int parity = 1;
455  for (unsigned int bit = 0; bit < 24; ++bit) if ( ( (jetCMXData[word]>>bit) & 1) > 0 ) parity++;
456  parity &= 1;
457  jetCMXData[word] |= (parity<<23);
458  }
459 }
460 
461 
462 
465 JEMJetAlgorithm L1JEMJetTools::findRoI(double RoIeta, double RoIphi, const std::map<int, JetInput*>* elements) const {
466  return JEMJetAlgorithm(RoIeta, RoIphi, elements, m_l1menu);
467 }
468 
470 
471 JEMJetAlgorithm L1JEMJetTools::formSums(double RoIeta, double RoIphi, const std::map<int, JetInput*>* elements) const {
472  // Performs all processing for this location
473  return JEMJetAlgorithm(RoIeta, RoIphi, elements, m_l1menu);
474 }
475 
477 
478 JEMJetAlgorithm L1JEMJetTools::formSums(uint32_t roiWord, const std::map<int, JetInput*>* elements) const {
479  // Find RoI coordinate
481  float RoIphi = coord.phi();
482  float RoIeta = coord.eta();
483  // For this purpose we need to resolve the 2 possible FJ coordinates at end C
484  if (RoIeta > 3.1 && m_conv.column(roiWord) != 3) RoIeta = 3.1;
485 
486  // Performs all processing for this location
487  return JEMJetAlgorithm(RoIeta, RoIphi, elements, m_l1menu);
488 }
489 
490 //============================================================================================
491 
492 } // end of namespace
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TBXMLWriter_jobOptions.PhiMin
PhiMin
Definition: TBXMLWriter_jobOptions.py:32
LVL1::JetElementKeyBase::isFCAL
bool isFCAL(double eta) const
returns TRUE if this coordinate is in the FCAL
Definition: JetElementKeyBase.cxx:430
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
LVL1::Coordinate::phi
double phi() const
return phi
Definition: Coordinate.cxx:50
LVL1::JetElementKeyBase::jeKey
virtual unsigned int jeKey(const xAOD::TriggerTower &tower)
returns key of passed tower
Definition: JetElementKeyBase.cxx:157
xAOD::JEMTobRoI
JEMTobRoI_v1 JEMTobRoI
Define the latest version of the JEMTobRoI class.
Definition: Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JEMTobRoI.h:17
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
JetInput_ClassDEF.h
skel.it
it
Definition: skel.GENtoEVGEN.py:396
JetInput.h
M_PI
#define M_PI
Definition: ActiveFraction.h:11
LVL1::L1JEMJetTools::mapJetInputs
virtual void mapJetInputs(const xAOD::JetElementContainer *jes, std::map< int, JetInput * > *elements, int slice=-1) const override
Convert user-supplied JetElements to map of JetInputs.
Definition: L1JEMJetTools.cxx:43
LVL1::JEMJetAlgorithm::isRoI
bool isRoI()
Does this window pass the local ET maximum condition.
Definition: JEMJetAlgorithm.cxx:286
LVL1::L1JEMJetTools::finalize
virtual StatusCode finalize() override
standard Athena-Algorithm method
Definition: L1JEMJetTools.cxx:36
TrigInDetValidation_Base.test
test
Definition: TrigInDetValidation_Base.py:147
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.LumiCalcHtml.lc
lc
Definition: LumiCalcHtml.py:579
L1JEMJetTools.h
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::JEMJetAlgorithm::ETSmall
int ETSmall()
Returns Small cluster ET.
Definition: JEMJetAlgorithm.cxx:276
postInclude.inputs
inputs
Definition: postInclude.SortInput.py:15
LVL1::L1JEMJetTools::findRoI
virtual JEMJetAlgorithm findRoI(double RoIeta, double RoIphi, const std::map< int, JetInput * > *elements) const override
Return RoI object for specified location.
Definition: L1JEMJetTools.cxx:465
PlotCalibFromCool.ie
ie
Definition: PlotCalibFromCool.py:420
LVL1::L1JEMJetTools::findRoIs
virtual void findRoIs(const std::map< int, JetInput * > *elements, xAOD::JEMTobRoIContainer *rois) const override
Return vector of TOB RoI objects derived from user-specified inputs.
Definition: L1JEMJetTools.cxx:184
LVL1::JetElementKeyBase::downPhi
Coordinate downPhi(const double phi, const double eta)
returns coord of next JE in -ve phi dir.
Definition: JetElementKeyBase.cxx:290
xAOD::roiWord
roiWord
Definition: TrigMissingET_v1.cxx:36
python.PyAthena.module
module
Definition: PyAthena.py:131
DiTauMassTools::ignore
void ignore(T &&)
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:58
LVL1::JetInput::phi
double phi() const
returns phi coord of tower
Definition: JetInput.cxx:55
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
LVL1::CoordinateRange
CoordinateRange class declaration.
Definition: CoordinateRange.h:36
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::Coordinate
Coordinate class declaration.
Definition: TrigT1/TrigT1Interfaces/TrigT1Interfaces/Coordinate.h:50
perfmonmt-refit.slice
slice
Definition: perfmonmt-refit.py:52
LVL1::JEMJetAlgorithm
This is an internal class, used in the jet trigger.
Definition: JEMJetAlgorithm.h:45
LVL1::L1JEMJetTools::L1JEMJetTools
L1JEMJetTools(const std::string &, const std::string &, const IInterface *)
Definition: L1JEMJetTools.cxx:23
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LVL1::JetInputKey
The JetInputKey object provides the key for each JetElement depending on its eta,phi coords (JetEleme...
Definition: JetInputKey.h:47
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
LVL1::JetElementKeyBase::dPhi
double dPhi(const double phi, const double eta) const
return height of JE
Definition: JetElementKeyBase.cxx:362
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
JEMTobRoI.h
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1::L1JEMJetTools::findJEMResults
virtual void findJEMResults(const std::map< int, JetInput * > *inputs, int crate, int module, xAOD::JEMTobRoIContainer *rois, std::vector< unsigned int > &jetCMXData) const override
Form JEM results for specified crate/module using user-supplied map of input towers Adds to DataVecto...
Definition: L1JEMJetTools.cxx:249
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
LVL1::JEMTobRoI
JEM RoI data.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:19
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
LVL1::L1JEMJetTools::formSums
virtual JEMJetAlgorithm formSums(double RoIeta, double RoIphi, const std::map< int, JetInput * > *elements) const override
Form jet cluster sums for a given RoI location.
Definition: L1JEMJetTools.cxx:471
LVL1::L1JEMJetTools::m_conv
JEPRoIDecoder m_conv
Utility for decoding RoI words.
Definition: L1JEMJetTools.h:88
LVL1::TrigT1CaloDefs::RegionERROREtaCentre
static const double RegionERROREtaCentre
Definition: TrigT1CaloDefs.h:103
SG::AuxElement::makePrivateStore
void makePrivateStore()
Create a new (empty) private store for this object.
Definition: AuxElement.cxx:192
TrigT1CaloDefs.h
JetVoronoiDiagramHelpers::coord
double coord
Definition: JetVoronoiDiagramHelpers.h:45
LVL1::Coordinate::eta
double eta() const
return eta
Definition: Coordinate.cxx:45
LVL1::L1JEMJetTools::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: L1JEMJetTools.cxx:28
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:47
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
xAOD::JEMTobRoI_v1
Description of JEMTobRoI_v1.
Definition: JEMTobRoI_v1.h:25
CoordinateRange.h
LVL1::L1JEMJetTools::m_l1menu
const TrigConf::L1Menu * m_l1menu
Definition: L1JEMJetTools.h:85
LVL1::JetElementKeyBase::leftEta
Coordinate leftEta(const double phi, const double eta)
returns key of JE in -ve eta dir.
Definition: JetElementKeyBase.cxx:186
TriggerTest.rois
rois
Definition: TriggerTest.py:23
LVL1::JEPRoIDecoder::column
unsigned int column(const unsigned int word) const
Extract RoI column number within module from Jet RoI word.
Definition: JEPRoIDecoder.cxx:96
xAOD::JEMTobRoI_v1::initialize
virtual void initialize(const int crate, const int jem, const int frame, const int location, const int energyLarge, const int energySmall)
Definition: JEMTobRoI_v1.cxx:23
LVL1::JEMJetAlgorithm::jemTobRoI
xAOD::JEMTobRoI * jemTobRoI()
Create JEMTobRoI and return pointers to it.
Definition: JEMJetAlgorithm.cxx:303
LVL1::JEMJetAlgorithm::ETLarge
int ETLarge()
Returns Large cluster ET.
Definition: JEMJetAlgorithm.cxx:271
LVL1::JetInput
A minimal version of JetElement, containing only eta, phi, ET and a JetInputKey, ie the bare informat...
Definition: JetInput.h:34
L1Menu.h
xAOD::iEta
setScale setgFexType iEta
Definition: gFexJetRoI_v1.cxx:77
LVL1::JEPRoIDecoder::coordinate
virtual CoordinateRange coordinate(const unsigned int roiWord) const override
Return eta/phi coordinate object.
Definition: JEPRoIDecoder.cxx:66
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37