ATLAS Offline Software
SCFillerTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include <sstream>
8 
10 #include "CaloEvent/CaloCell.h"
13 
14 #include <vector>
15 #include <list>
16 #include <map>
17 #include <iostream>
18 #include <cmath>
19 
20 #include "SCFillerTool.h"
21 
22 namespace D3PD {
23 
24 
32  (const std::string& type,
33  const std::string& name,
34  const IInterface* parent)
36  m_tableFilled(false),
37  m_caloEtaSelection( false ),
38  m_caloPhiSelection( false ),
39  m_caloLayerSelection( false ),
40  m_caloSelection( false ),
41  m_tileDLayerOption( false ) {
42 
43  declareProperty( "CaloEtaCut", m_etaCut );
44  declareProperty( "CaloPhiCut", m_phiCut );
45  declareProperty( "CaloLayers", m_caloLayers );
46  // 1=EMB; 2=EMEC Outer Wheel; 3=EMEC Inner Wheel; 4=HEC; 5=FCAL; 6=Tile LB; 7=Tile EB
47  declareProperty( "CaloDetectors", m_caloNums );
48  declareProperty( "TileDLayerOption", m_tileDLayerOption);
49 
50  SCFillerTool::book().ignore(); // Avoid coverity warnings.
51 }
52 
54 
55  ServiceHandle<StoreGateSvc> detStore("DetectorStore", name());
56  CHECK( detStore.retrieve() ) ;
57 
58  // CHECK ( detStore->retrieve(m_dd_man) );
59  CHECK ( detStore->retrieve(m_emid) );
60  CHECK ( detStore->retrieve(m_fcalid) );
61  CHECK ( detStore->retrieve(m_hecid) );
62  CHECK ( detStore->retrieve(m_tileid) );
63  CHECK ( detStore->retrieve(m_onlineHelper));
64 
65  const unsigned int nSubCalo = 7; // static_cast< int >( CaloCell_ID::NSUBCALO );
66 
67  //check calo number specified
68  m_caloSelection = false;
69  if( m_caloNums.size() == 0 ) {
70  ATH_MSG_INFO( " *** SCFillerTool: No calorimeter selection" );
71  return StatusCode::SUCCESS;
72  } else if( m_caloNums.size() > nSubCalo ) {
74  << " More than " << nSubCalo << " calo specified. "
75  << "Must be wrong. Stop.";
76  return StatusCode::FAILURE;
77  } else {
78  m_caloSelection = true;
79  for( unsigned int index = 0; index < m_caloNums.size(); ++index ) {
80  if( m_caloNums[ index ]> nSubCalo ) {
82  << "Invalid calo specification:"
83  << m_caloNums[index] << "Stop.";
84  return StatusCode::FAILURE;
85  } else {
86  ATH_MSG_INFO( "*** SCFillerTool: Select calorimeter " << m_caloNums[ index ] );
87  }
88  }
89  }
90 
91  m_caloEtaSelection = false;
92  if ( m_etaCut.size() >0 ) {
93  if ( m_etaCut.size()== 2 && m_etaCut[0]<m_etaCut[1] ) {
94  REPORT_MESSAGE( MSG::INFO ) << "*** SCFillerTool: Eta Selection specified: " << m_etaCut[0] << ", " << m_etaCut[1];
95  m_caloEtaSelection=true;
96  } else {
97  REPORT_MESSAGE( MSG::FATAL ) << " *** SCFillerTool: Invalid Eta Cut Range specified: Abort!";
98  return StatusCode::FAILURE;
99  }
100  }
101 
102  m_caloPhiSelection = false;
103  if ( m_phiCut.size() >0 ) {
104  if ( m_phiCut.size() == 2 && m_phiCut[0]<m_phiCut[1] ) {
105  REPORT_MESSAGE( MSG::INFO ) << "*** SCFillerTool: Phi Selection specified: " << m_phiCut[0] << ", " << m_phiCut[1];
106  m_caloPhiSelection = true;
107  } else {
108  REPORT_MESSAGE( MSG::FATAL ) << " *** SCFillerTool: Invalid Phi Cut Range specified: Abort!";
109  return StatusCode::FAILURE;
110  }
111  }
112 
113  m_caloLayerSelection = false;
114  if ( m_caloLayers.size()>0 ) {
115  if ( m_caloLayers.size()>28 ) {
116  REPORT_MESSAGE( MSG::FATAL ) << " *** SCFillerTool: Invalid No. of Calo Layer selection: " << m_caloLayers.size() << " Abort!";
117  return StatusCode::FAILURE;
118  }
119  for( unsigned int j=0; j<m_caloLayers.size(); j++) {
120  if (m_caloLayers[j]>27 ) {
121  REPORT_MESSAGE( MSG::FATAL ) << " *** SCFillerTool: Invalid Calo Layer selection: " << m_caloLayers[j] << " Abort!";
122  return StatusCode::FAILURE;
123  }
124  }
125  m_caloLayerSelection = true;
126  }
127 
129 
130  ATH_MSG_INFO( " *** SCFillerTool: completed" );
131  return StatusCode::SUCCESS;
132 }
133 
134 
139 {
140  CHECK( addVariable ("nSC", m_nSC ));
141  CHECK( addVariable ("E", m_E));
142  CHECK( addVariable ("eta", m_eta));
143  CHECK( addVariable ("phi", m_phi));
144  CHECK( addVariable ("Et", m_Et));
145  CHECK( addVariable ("calo", m_calo));
146  CHECK( addVariable ("region", m_region));
147  CHECK( addVariable ("sampling", m_sampling));
148  CHECK( addVariable ("ieta", m_ieta));
149  CHECK( addVariable ("jphi", m_jphi));
150  CHECK( addVariable ("hid", m_hashid));
151  CHECK( addVariable ("time", m_time));
152  CHECK( addVariable ("quality", m_quality));
153 
154  return StatusCode::SUCCESS;
155 }
156 
157 
167 
168  if ( !m_tableFilled ) {
169  m_tableFilled = true;
170  fillHashTables(p);
171  dumpHashTables(p);
172  ATH_MSG_INFO("**** after fillHashTables in first event");
173  }
174 
175  resetEnergies();
176 
177  typedef CaloCellContainer CONTAINER;
178  CONTAINER::const_iterator f_cell = p.begin();
179  CONTAINER::const_iterator l_cell = p.end();
180  for( ; f_cell != l_cell; ++f_cell ) {
181  const CaloCell* cell = ( *f_cell );
182  const Identifier id = cell->ID();
183  int scid = m_sc_hashTable[id];
184  m_sc_energy[scid] += cell->energy();
185  }
186 
187  int nSC = 0;
189  it=m_sc_list.begin();
190  for ( ; it!=m_sc_list.end(); ++it ) {
191  int key = *it;
192  // int sc_hash = (sc_side << 28) | ( sc_calo << 24 ) | (sc_region << 20 ) | ( sc_layer << 16 ) | ( sc_ieta << 8 ) | ( sc_jphi );
193  int pn = ((key >> 28) & 0x1) ? 1: -1;
194  int calo = ((key >> 24) & 0xf)*pn;
195  int region = (key>>20) & 0xf;
196  unsigned int lay = (key>>16) & 0xf;
197  int ieta = (key>>8) & 0xff;
198  int jphi = key & 0xff;
199 
200  float feta = m_sc_eta[key];
201  float fphi = m_sc_phi[key];
202  int lardet = abs((key >> 24) & 0xf);
203 
204  if (m_caloSelection) {
205  std::vector< unsigned int >::const_iterator theFound =
206  std::find( m_caloNums.begin(), m_caloNums.end(), lardet );
207  if( theFound == m_caloNums.end() ) continue;
208  }
209  if ( m_caloEtaSelection ) {
210  if (feta<m_etaCut[0] || feta>m_etaCut[1]) continue;
211  }
212  if ( m_caloPhiSelection ) {
213  if (fphi<m_phiCut[0] || fphi>m_phiCut[1]) continue;
214  }
215  if ( m_caloLayerSelection ) {
216  bool tmp=false;
217  for( unsigned int j=0; j<m_caloLayers.size(); j++) {
218  if (m_caloLayers[j]==lay) tmp=true;
219  }
220  if (!tmp) continue;
221  }
222  nSC++;
223  m_E->push_back( m_sc_energy[ key ] );
224  m_calo->push_back( calo );
225  m_region->push_back( region );
226  m_sampling->push_back( lay );
227  m_ieta->push_back( ieta );
228  m_jphi->push_back( jphi );
229  m_hashid->push_back( key );
230  m_eta->push_back( feta );
231  m_phi->push_back( m_sc_phi[ key ] );
232  m_Et->push_back( m_sc_energy[key]/cosh( feta ) );
233  }
234  *m_nSC = nSC;
235 
236  return StatusCode::SUCCESS;
237 }
238 
241  it=m_sc_energy.begin();
242  for ( ; it!=m_sc_energy.end(); ++it ) {
243  (*it).second=0.0;
244  }
245 }
246 
247 //---------------------------------------------------------------------------------
249 //---------------------------------------------------------------------------------
250  typedef CaloCellContainer CONTAINER;
251  CONTAINER::const_iterator f_cell = p.begin();
252  CONTAINER::const_iterator l_cell = p.end();
253 
254  for( ; f_cell != l_cell; ++f_cell ) {
255  const CaloCell* cell = ( *f_cell );
256  Identifier id = cell->ID();
257  int posneg = (cell->eta()>=0.0) ? 1: -1;
258  int sc_hash = m_sc_hashTable[ id ];
259  // m_sc_compId[sc_hash];
260  if ( posneg > 0 ) {
261  if ( m_emid->is_lar_em(id) ) {
262  if (m_emid->is_em_barrel(id) ) {
263  int ieta = m_emid->eta(id);
264  int jphi = m_emid->phi(id);
265  int lay = m_emid->sampling(id);
266  // int reg = m_emid->region(id);
267  std::cout << "SCFillerTool::dumpHashTables() [ONLY EM BARREL] ==> posneg,lay,ieta,jphi= " << posneg << ", " << lay << ", " << ieta << ", " << jphi << " ID: " << id << " sc_hash: " << sc_hash << std::endl;
268  }
269  }
270  }
271  }
272  std::map< int, std::vector<const CaloCell*> >::iterator it = m_sc_compId.begin();
273  for( ; it!=m_sc_compId.end(); ++it) {
274  int scID = (*it).first;
275  int key = scID;
276  std::vector<const CaloCell*> v = (*it).second;
277  int nl = v.size();
278  int pn = ((key >> 28) & 0x1) ? 1: -1;
279  int calo = ((key >> 24) & 0xf)*pn;
280  int region = (key>>20) & 0xf;
281  unsigned int lay = (key>>16) & 0xf;
282  int ieta = (key>>8) & 0xff;
283  int jphi = key & 0xff;
284  if (abs(calo)==1 && pn>0) {
285  std::cout << "SCFillerTool::dumpHashTables() ===> scID = " << scID << " calo,pn,region,lay,ieta,jphi: " << calo << ", " << pn << ", " << region << ", " << lay << ", " << ieta << ", " << jphi << std::endl;
286  std::cout << "SCFillerTool::dumpHashTables() ===> scID = " << scID << " No. of cells: " << nl << std::endl;
287  std::cout << "SCFillerTool::dumpHashTables() ===> " ;
288  for (const CaloCell* cell : v) {
289  std::cout << cell << ", " ;
290  }
291  std::cout << "" << std::endl;
292  }
293  }
294 }
295 
296 //---------------------------------------------------------------------------------
298 //---------------------------------------------------------------------------------
299  typedef CaloCellContainer CONTAINER;
300  CONTAINER::const_iterator f_cell = p.begin();
301  CONTAINER::const_iterator l_cell = p.end();
302 
303  int /*posneg,*/reg,lay,ieta,jphi;
304  int sc_side, sc_calo, sc_region, sc_layer, sc_ieta, sc_jphi;
305  //float sc_feta, sc_fphi;
306 
308 
309  for( ; f_cell != l_cell; ++f_cell ) {
310  const CaloCell* cell = ( *f_cell );
311  Identifier id = cell->ID();
312  //posneg = (cell->eta()>=0.0) ? 1: -1;
313  sc_side = (cell->eta()>=0.0) ? 1: 0;
314  sc_ieta = -999;
315  sc_jphi = -999;
316  //sc_feta = 0.;
317  //sc_fphi = 0.;
318  sc_calo = -1;
319  sc_region = -1;
320  sc_layer = -1;
321 
322  ieta = -999;
323  jphi = -999;
324 
325  if ( m_emid->is_lar_em(id) ) {
326  ieta = m_emid->eta(id);
327  jphi = m_emid->phi(id);
328  lay = m_emid->sampling(id);
329  reg = m_emid->region(id);
330  sc_region = reg;
331  sc_layer = lay;
332  if (m_emid->is_em_barrel(id) ) {
333  sc_calo = 1;
334  if ( lay == 0 ) {
335  sc_ieta = int(ieta/4);
336  sc_jphi = jphi;
337  } else if ( lay == 1 ) {
338  sc_ieta = (reg==0) ? int(ieta/8) : 56+ieta;
339  sc_jphi = (reg==0) ? jphi: int(jphi/4);
340  } else if ( lay == 2 ) {
341  sc_ieta = (reg==0) ? ieta: 56 + ieta;
342  sc_jphi = int(jphi/4);
343  } else if ( lay == 3 ) {
344  sc_ieta = int(ieta/2);
345  sc_jphi = int(jphi/4);
346  }
347  } else if ( m_emid->is_em_endcap_outer(id) ) {
348  sc_calo = 2;
349  if ( lay == 0 ) {
350  sc_ieta = int(ieta/4);
351  sc_jphi = jphi;
352  sc_region = 1;
353  } else if (lay == 1) {
354  // sc_ieta = (reg<=1) ? 0 : ((reg==2) ? 1+int(ieta/8) : ((reg==3) ? 13+int(ieta/8) : ((reg==4) ? 19+int(ieta/4): 35)));
355  sc_ieta = (reg<=1) ? 0 : ((reg==2) ? 1+int(ieta/8) : ((reg==3) ? 13+int(ieta/4) : ((reg==4) ? 25+int(ieta/4): 41)));
356  sc_jphi = jphi;
357  sc_region = (reg<2) ? 0: reg-1;
358  } else if (lay==2) {
359  sc_ieta = (reg==0) ? 0 : 1+ieta;
360  sc_jphi = int(jphi/4);
361  sc_region = (ieta<3) ? 0: ((ieta<15) ? 1 : ((ieta<23) ? 2 : ((ieta<39) ? 3 : 4)));
362  } else if (lay==3) {
363  sc_ieta = int(ieta/2);
364  sc_jphi = int(jphi/4);
365  sc_region = (ieta<6) ? 1: ((ieta<10) ? 2 : ((ieta<18) ? 3: 4));
366  } else {
367  sc_ieta = -999;
368  sc_jphi = -999;
369  sc_region = -999;
370  }
371  } else if ( m_emid->is_em_endcap_inner(id) ) {
372  sc_calo = 3;
373  sc_ieta = (ieta<6) ? int(ieta/2) : 47;
374  sc_jphi = int(jphi/2);
375  sc_region = (ieta<6) ? 5 : 6;
376  }
377  } else if (m_hecid->is_lar_hec(id)) {
378  sc_layer = m_hecid->sampling(id);
379  sc_region = m_hecid->region(id);
380  sc_calo= 4;
381  ieta = m_hecid->eta(id);
382  jphi = m_hecid->phi(id);
383  sc_ieta = (sc_region==0) ? ieta : 10+ieta;
384  sc_jphi = jphi;
385  sc_region = 0;
386  } else if (m_fcalid->is_lar_fcal(id)) {
387  HWIdentifier hwid = cabling->createSignalChannelID( id );
388  sc_calo = 5;
389  const int lay = m_fcalid->module(id);
390  const int s = m_onlineHelper->slot(hwid);
391  const int c = m_onlineHelper->channel(hwid);
392  const int c64 = c%64;
393  sc_layer = lay;
394  if (lay==3) {
395  sc_ieta = 4-int((c%16)/4);
396  int jphip = 8*(s-14) + 3 + 4*int(c/64)-int(c64/16);
397  int jphin = 8*(s-14) + 7 - int(c/16);
398  sc_jphi = (sc_side)>0 ? jphip : jphin;
399  sc_region = 0;
400  } else if (lay==2) {
401  sc_ieta = ((c%32)<16 ? 4 : 8) - int((c%32)/4);
402  int jphip = 4*(s-10) + 1 + 2*int(c/64)-int(c64/32);
403  int jphin = ((s>=12) ? 14 -4*(s-12): 6 -4*(s-10) ) + int(c64/32) -2*int(c/64);
404  sc_jphi = (sc_side>0) ? jphip : jphin;
405  sc_region = 0;
406  } else if (lay==1) {
407  ieta = 15-int(c64%16) + 16*int(c64/16);
408  sc_ieta = int(ieta/4);
409  int jphip = int(c/64) + 2*(s- ((s==9) ? 2 : 1));
410  int jphin = ((s<5) ? 7 - 2*(s-1) : 15 - 2*(s-((s==9)?6:5))) - int(c/64);
411  sc_jphi = (sc_side>0) ? jphip : jphin;
412  if (c64<16) {
413  sc_region = 0;
414  } else if (c64>=16 && c64<32 ) {
415  sc_region = 1;
416  } else if (c64>=32 && c64<48 ) {
417  sc_region = 2;
418  } else {
419  sc_region = 3;
420  }
421  }
422  } else if (m_tileid->is_tile(id) ) {
423  sc_region = 0;
424  sc_layer = m_tileid->sampling(id);
425  sc_side = (m_tileid->side(id)>0) ? 1 : 0;
426  ieta = m_tileid->tower(id);
427  jphi = m_tileid->module(id);
428  sc_ieta = ieta;
429  sc_jphi = jphi;
430  if ( m_tileid->is_tile_barrel(id) )
431  sc_calo = 6;
432  if ( m_tileid->is_tile_extbarrel(id) )
433  sc_calo = 7;
434  }
435  if( sc_ieta<0 || sc_jphi<0 || sc_calo<=0 || sc_region<0 || sc_layer<0 ) continue;
436  // This is a kludge so that for HEC/Tile (sc_calo=4,6,7) the SC hash id don't have any layer information...(11/27/12)
437  if (sc_calo==4)
438  sc_layer = 0;
439  if (sc_calo==6 || sc_calo==7) {
440  if ( sc_layer!=2 || !m_tileDLayerOption)
441  sc_layer = 0;
442  }
443  int sc_hash = (sc_side << 28) | ( sc_calo << 24 ) | (sc_region << 20 ) | ( sc_layer << 16 ) | ( sc_ieta << 8 ) | ( sc_jphi );
444  m_sc_hashTable[ id ] = sc_hash;
445  m_sc_compId[sc_hash].push_back( cell );
446  }
447 
448  std::map< int, std::vector<const CaloCell*> >::iterator it = m_sc_compId.begin();
449  for( ; it!=m_sc_compId.end(); ++it) {
450  int scID = (*it).first;
451  m_sc_list.push_back( scID );
452  std::vector<const CaloCell*> v = (*it).second;
453  int nl = v.size();
455  /*
456  if ( ((scID >> 24) & 0xf) >= 6 ) {
457  std::cout << "*** KAKKA TILECAL: THIS IS A TILECAL SCELL hash= " << std::hex << scID << " no. of cells: " << nl << std::endl;
458  for( vit=v.begin(); vit!=v.end(); ++vit) {
459  std::cout << " " << (*vit)->ID() << " ";
460  }
461  std::cout << "" << std::endl;
462  for( vit=v.begin(); vit!=v.end(); ++vit) {
463  std::cout << " " << (*vit)->eta() << " ";
464  }
465  std::cout << "" << std::endl;
466  for( vit=v.begin(); vit!=v.end(); ++vit) {
467  std::cout << " " << (*vit)->phi() << " ";
468  }
469  std::cout << "" << std::endl;
470  }
471  */
472  double feta = 0;
473  double fphi = 0;
474  for( vit=v.begin(); vit!=v.end(); ++vit) {
475  feta += (*vit)->eta();
476  fphi += (*vit)->phi();
477  }
478  if (nl>0) {
479  feta /= nl;
480  fphi /= nl;
481  }
482  m_sc_eta[ scID ] = feta;
483  m_sc_phi[ scID ] = fphi;
484  } // for (; it!=m_sc_compId...)
485 
486 
487 }
488 
489 
490 } // namespace D3PD
491 
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
D3PD::SCFillerTool::m_jphi
std::vector< int > * m_jphi
Definition: SCFillerTool.h:92
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LArEM_Base_ID::phi
int phi(const Identifier id) const
return phi according to :
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
D3PD::SCFillerTool::m_emid
const LArEM_ID * m_emid
Definition: SCFillerTool.h:69
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
D3PD::SCFillerTool::m_hashid
std::vector< int > * m_hashid
Definition: SCFillerTool.h:93
LArHEC_Base_ID::eta
int eta(const Identifier id) const
return eta [0,9] outer part [0,3] inner part
D3PD::SCFillerTool::m_calo
std::vector< int > * m_calo
Definition: SCFillerTool.h:88
D3PD::SCFillerTool::m_phi
std::vector< double > * m_phi
Definition: SCFillerTool.h:83
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
SCFillerTool.h
D3PD::SCFillerTool::fill
virtual StatusCode fill(const CaloCellContainer &p)
Fill one block — type-safe version.
Definition: SCFillerTool.cxx:166
AtlasDetectorID::is_lar_fcal
bool is_lar_fcal(Identifier id) const
Definition: AtlasDetectorID.h:839
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
LArEM_Base_ID::is_em_endcap_outer
bool is_em_endcap_outer(const Identifier id) const
test if the id belongs to the EM Endcap outer wheel
index
Definition: index.py:1
D3PD::SCFillerTool::m_tableFilled
bool m_tableFilled
Definition: SCFillerTool.h:95
D3PD::SCFillerTool::m_hecid
const LArHEC_ID * m_hecid
Definition: SCFillerTool.h:71
D3PD::SCFillerTool::m_quality
std::vector< double > * m_quality
Definition: SCFillerTool.h:86
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
Tile_Base_ID::side
int side(const Identifier &id) const
Definition: Tile_Base_ID.cxx:153
skel.it
it
Definition: skel.GENtoEVGEN.py:423
D3PD::SCFillerTool::m_nSC
int * m_nSC
parameters
Definition: SCFillerTool.h:80
LArOnlineID_Base::slot
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
Definition: LArOnlineID_Base.cxx:1961
LArFCAL_Base_ID::module
int module(const Identifier id) const
module [1,3]
CaloCell.h
LArEM_Base_ID::region
int region(const Identifier id) const
return region according to :
Tile_Base_ID::is_tile_extbarrel
bool is_tile_extbarrel(const Identifier &id) const
Definition: Tile_Base_ID.cxx:214
LArEM_Base_ID::sampling
int sampling(const Identifier id) const
return sampling according to :
D3PD::SCFillerTool::m_time
std::vector< double > * m_time
Definition: SCFillerTool.h:85
D3PD::AddVariable::addVariable
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
Add a variable to the tuple.
Definition: AddVariable.cxx:85
Tile_Base_ID::tower
int tower(const Identifier &id) const
Definition: Tile_Base_ID.cxx:165
D3PD::SCFillerTool::SCFillerTool
SCFillerTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition: SCFillerTool.cxx:32
D3PD::SCFillerTool::m_fcalid
const LArFCAL_ID * m_fcalid
Definition: SCFillerTool.h:70
D3PD::SCFillerTool::m_etaCut
std::vector< float > m_etaCut
Definition: SCFillerTool.h:103
D3PD::SCFillerTool::m_ieta
std::vector< int > * m_ieta
Definition: SCFillerTool.h:91
HWIdentifier
Definition: HWIdentifier.h:13
D3PD::SCFillerTool::book
virtual StatusCode book()
Book variables for this block.
Definition: SCFillerTool.cxx:138
python.DomainsRegistry.reg
reg
globals -----------------------------------------------------------------—
Definition: DomainsRegistry.py:343
D3PD::SCFillerTool::m_Et
std::vector< double > * m_Et
Definition: SCFillerTool.h:84
D3PD::SCFillerTool::m_caloSelection
bool m_caloSelection
Definition: SCFillerTool.h:111
ReadCondHandle.h
D3PD::SCFillerTool::m_sampling
std::vector< int > * m_sampling
Definition: SCFillerTool.h:90
LArEM_Base_ID::eta
int eta(const Identifier id) const
return eta according to :
D3PD::SCFillerTool::m_E
std::vector< double > * m_E
Definition: SCFillerTool.h:81
D3PD::SCFillerTool::m_caloNums
std::vector< unsigned int > m_caloNums
Definition: SCFillerTool.h:105
python.ZdcRecConfig.pn
pn
Definition: ZdcRecConfig.py:357
D3PD::SCFillerTool::m_sc_hashTable
std::map< const Identifier, int > m_sc_hashTable
Definition: SCFillerTool.h:96
D3PD
Block filler tool for noisy FEB information.
Definition: InnerDetector/InDetMonitoring/InDetGlobalMonitoring/macros/EnhancedPrimaryVertexMonitoring/TrigD3PD/ChainGroup.h:21
D3PD::SCFillerTool::initialize
virtual StatusCode initialize()
Definition: SCFillerTool.cxx:53
LArOnlineID_Base::channel
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Definition: LArOnlineID_Base.cxx:1967
D3PD::SCFillerTool::m_sc_energy
std::map< int, double > m_sc_energy
Definition: SCFillerTool.h:98
D3PD::SCFillerTool::m_sc_list
std::vector< int > m_sc_list
Definition: SCFillerTool.h:97
D3PD::SCFillerTool::fillHashTables
virtual void fillHashTables(const CaloCellContainer &p)
Definition: SCFillerTool.cxx:297
Tile_Base_ID::module
int module(const Identifier &id) const
Definition: Tile_Base_ID.cxx:159
D3PD::SCFillerTool::m_caloPhiSelection
bool m_caloPhiSelection
Definition: SCFillerTool.h:109
D3PD::SCFillerTool::m_eta
std::vector< double > * m_eta
Definition: SCFillerTool.h:82
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
D3PD::SCFillerTool::dumpHashTables
virtual void dumpHashTables(const CaloCellContainer &p)
Definition: SCFillerTool.cxx:248
D3PD::SCFillerTool::m_onlineHelper
const LArOnlineID * m_onlineHelper
Definition: SCFillerTool.h:73
D3PD::SCFillerTool::m_sc_eta
std::map< int, double > m_sc_eta
Definition: SCFillerTool.h:99
test_pyathena.parent
parent
Definition: test_pyathena.py:15
D3PD::BlockFillerTool
Type-safe wrapper for block filler tools.
Definition: BlockFillerTool.h:68
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
AtlasDetectorID::is_tile
bool is_tile(Identifier id) const
Definition: AtlasDetectorID.h:695
AtlasDetectorID::is_lar_hec
bool is_lar_hec(Identifier id) const
Definition: AtlasDetectorID.h:829
Tile_Base_ID::sampling
int sampling(const Identifier &id) const
Definition: Tile_Base_ID.h:164
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
D3PD::SCFillerTool::m_sc_phi
std::map< int, double > m_sc_phi
Definition: SCFillerTool.h:100
D3PD::SCFillerTool::m_sc_compId
std::map< int, std::vector< const CaloCell * > > m_sc_compId
Definition: SCFillerTool.h:101
D3PD::SCFillerTool::m_tileid
const TileID * m_tileid
Definition: SCFillerTool.h:72
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
errorcheck.h
Helpers for checking error return status codes and reporting errors.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
D3PD::SCFillerTool::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: SCFillerTool.h:75
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
LArEM_Base_ID::is_em_endcap_inner
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
D3PD::SCFillerTool::m_caloEtaSelection
bool m_caloEtaSelection
Definition: SCFillerTool.h:108
D3PD::SCFillerTool::m_caloLayerSelection
bool m_caloLayerSelection
Definition: SCFillerTool.h:110
python.PyAthena.v
v
Definition: PyAthena.py:157
DeMoScan.index
string index
Definition: DeMoScan.py:362
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
LArEM_Base_ID::is_em_barrel
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
D3PD::SCFillerTool::m_phiCut
std::vector< float > m_phiCut
Definition: SCFillerTool.h:104
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArHEC_Base_ID::sampling
int sampling(const Identifier id) const
return sampling [0,3] (only 0 for supercells)
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
D3PD::SCFillerTool::resetEnergies
virtual void resetEnergies()
Definition: SCFillerTool.cxx:239
xAOD::JetConstituent::eta
double eta() const
The pseudorapidity ( ) of the particle.
Definition: JetConstituentVector.h:70
D3PD::SCFillerTool::m_tileDLayerOption
bool m_tileDLayerOption
Definition: SCFillerTool.h:113
D3PD::SCFillerTool::m_region
std::vector< int > * m_region
Definition: SCFillerTool.h:89
Tile_Base_ID::is_tile_barrel
bool is_tile_barrel(const Identifier &id) const
Test of an Identifier to see if it belongs to a particular part of the calorimeter.
Definition: Tile_Base_ID.cxx:205
LArHEC_Base_ID::region
int region(const Identifier id) const
return region [0,1]
python.compressB64.c
def c
Definition: compressB64.py:93
AtlasDetectorID::is_lar_em
bool is_lar_em(Identifier id) const
Definition: AtlasDetectorID.h:818
D3PD::SCFillerTool::m_caloLayers
std::vector< unsigned int > m_caloLayers
Definition: SCFillerTool.h:106
LArOnlineID.h
LArHEC_Base_ID::phi
int phi(const Identifier id) const
return phi[0,63] outer part [0,31] inner part
ServiceHandle< StoreGateSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37