ATLAS Offline Software
TileCellsDecorator.cxx
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // TileCellsDecorator.cxx
8 // Implementation file for class TileCellsDecorator
10 
11 // Tile includes
12 #include "TileCellsDecorator.h"
13 #include "TileEvent/TileCell.h"
15 
16 // Athena includes
19 #include "xAODBase/IParticle.h"
20 
21 // Calo includes
22 #include "CaloIdentifier/TileID.h"
23 #include "CaloEvent/CaloCell.h"
24 #include "CaloIdentifier/TileID.h"
25 
26 
27 #include <vector>
28 
29 
30 namespace DerivationFramework {
31 
32 
33  TileCellsDecorator::TileCellsDecorator( const std::string& type, const std::string& name, const IInterface* parent )
35  {
36  }
37 
38 
40 
41  ATH_CHECK( m_cablingSvc.retrieve() );
44 
45  const std::string baseName = m_muonContainer + ".";
46 
47  m_cellsEnergyKey = baseName + m_prefix + m_cellsEnergyKey.key();
48  ATH_CHECK( m_cellsEnergyKey.initialize() );
49 
50  m_cellsEtKey = baseName + m_prefix + m_cellsEtKey.key();
51  ATH_CHECK( m_cellsEtKey.initialize() );
52 
53  m_cellsEtaKey = baseName + m_prefix + m_cellsEtaKey.key();
54  ATH_CHECK( m_cellsEtaKey.initialize() );
55 
56  m_cellsPhiKey = baseName + m_prefix + m_cellsPhiKey.key();
57  ATH_CHECK( m_cellsPhiKey.initialize() );
58 
59  m_cellsGainKey = baseName + m_prefix + m_cellsGainKey.key();
60  ATH_CHECK( m_cellsGainKey.initialize() );
61 
62  m_cellsBadKey = baseName + m_prefix + m_cellsBadKey.key();
63  ATH_CHECK( m_cellsBadKey.initialize() );
64 
65  m_cellsSamplingKey = baseName + m_prefix + m_cellsSamplingKey.key();
66  ATH_CHECK( m_cellsSamplingKey.initialize() );
67 
68  m_cellsTimeKey = baseName + m_prefix + m_cellsTimeKey.key();
69  ATH_CHECK( m_cellsTimeKey.initialize() );
70 
71  m_cellsQualityKey = baseName + m_prefix + m_cellsQualityKey.key();
72  ATH_CHECK( m_cellsQualityKey.initialize() );
73 
74  m_cellsSinThKey = baseName + m_prefix + m_cellsSinThKey.key();
75  ATH_CHECK( m_cellsSinThKey.initialize() );
76 
77  m_cellsCosThKey = baseName + m_prefix + m_cellsCosThKey.key();
78  ATH_CHECK( m_cellsCosThKey.initialize() );
79 
80  m_cellsCotThKey = baseName + m_prefix + m_cellsCotThKey.key();
81  ATH_CHECK( m_cellsCotThKey.initialize() );
82 
83  m_cellsXKey = baseName + m_prefix + m_cellsXKey.key();
84  ATH_CHECK( m_cellsXKey.initialize() );
85 
86  m_cellsYKey = baseName + m_prefix + m_cellsYKey.key();
87  ATH_CHECK( m_cellsYKey.initialize() );
88 
89  m_cellsZKey = baseName + m_prefix + m_cellsZKey.key();
90  ATH_CHECK( m_cellsZKey.initialize() );
91 
92  m_cellsRKey = baseName + m_prefix + m_cellsRKey.key();
93  ATH_CHECK( m_cellsRKey.initialize() );
94 
95  m_cellsDxKey = baseName + m_prefix + m_cellsDxKey.key();
96  ATH_CHECK( m_cellsDxKey.initialize() );
97 
98  m_cellsDyKey = baseName + m_prefix + m_cellsDyKey.key();
99  ATH_CHECK( m_cellsDyKey.initialize() );
100 
101  m_cellsDzKey = baseName + m_prefix + m_cellsDzKey.key();
102  ATH_CHECK( m_cellsDzKey.initialize() );
103 
104  m_cellsDrKey = baseName + m_prefix + m_cellsDrKey.key();
105  ATH_CHECK( m_cellsDrKey.initialize() );
106 
107  m_cellsVolumeKey = baseName + m_prefix + m_cellsVolumeKey.key();
108  ATH_CHECK( m_cellsVolumeKey.initialize() );
109 
110  m_cellsDetaKey = baseName + m_prefix + m_cellsDetaKey.key();
111  ATH_CHECK( m_cellsDetaKey.initialize() );
112 
113  m_cellsDphiKey = baseName + m_prefix + m_cellsDphiKey.key();
114  ATH_CHECK( m_cellsDphiKey.initialize() );
115 
116  m_cellsSideKey = baseName + m_prefix + m_cellsSideKey.key();
117  ATH_CHECK( m_cellsSideKey.initialize() );
118 
119  m_cellsSectionKey = baseName + m_prefix + m_cellsSectionKey.key();
120  ATH_CHECK( m_cellsSectionKey.initialize() );
121 
122  m_cellsModuleKey = baseName + m_prefix + m_cellsModuleKey.key();
123  ATH_CHECK( m_cellsModuleKey.initialize() );
124 
125  m_cellsTowerKey = baseName + m_prefix + m_cellsTowerKey.key();
126  ATH_CHECK( m_cellsTowerKey.initialize() );
127 
128  m_cellsSampleKey = baseName + m_prefix + m_cellsSampleKey.key();
129  ATH_CHECK( m_cellsSampleKey.initialize() );
130 
131  m_cellsPmt1RosKey = baseName + m_prefix + m_cellsPmt1RosKey.key();
132  ATH_CHECK( m_cellsPmt1RosKey.initialize() );
133 
134  m_cellsPmt2RosKey = baseName + m_prefix + m_cellsPmt2RosKey.key();
135  ATH_CHECK( m_cellsPmt2RosKey.initialize() );
136 
138  ATH_CHECK( m_cellsPmt1DrawerKey.initialize() );
139 
141  ATH_CHECK( m_cellsPmt2DrawerKey.initialize() );
142 
144  ATH_CHECK( m_cellsPmt1ChannelKey.initialize() );
145 
147  ATH_CHECK( m_cellsPmt2ChannelKey.initialize() );
148 
150  ATH_CHECK( m_cellsPmt1EnergyKey.initialize() );
151 
153  ATH_CHECK( m_cellsPmt2EnergyKey.initialize() );
154 
155  m_cellsPmt1TimeKey = baseName + m_prefix + m_cellsPmt1TimeKey.key();
156  ATH_CHECK( m_cellsPmt1TimeKey.initialize() );
157 
158  m_cellsPmt2TimeKey = baseName + m_prefix + m_cellsPmt2TimeKey.key();
159  ATH_CHECK( m_cellsPmt2TimeKey.initialize() );
160 
162  ATH_CHECK( m_cellsPmt1QualityKey.initialize() );
163 
165  ATH_CHECK( m_cellsPmt2QualityKey.initialize() );
166 
167  m_cellsPmt1QbitKey = baseName + m_prefix + m_cellsPmt1QbitKey.key();
168  ATH_CHECK( m_cellsPmt1QbitKey.initialize() );
169 
170  m_cellsPmt2QbitKey = baseName + m_prefix + m_cellsPmt2QbitKey.key();
171  ATH_CHECK( m_cellsPmt2QbitKey.initialize() );
172 
173  m_cellsPmt1BadKey = baseName + m_prefix + m_cellsPmt1BadKey.key();
174  ATH_CHECK( m_cellsPmt1BadKey.initialize() );
175 
176  m_cellsPmt2BadKey = baseName + m_prefix + m_cellsPmt2BadKey.key();
177  ATH_CHECK( m_cellsPmt2BadKey.initialize() );
178 
179  m_cellsPmt1GainKey = baseName + m_prefix + m_cellsPmt1GainKey.key();
180  ATH_CHECK( m_cellsPmt1GainKey.initialize() );
181 
182  m_cellsPmt2GainKey = baseName + m_prefix + m_cellsPmt2GainKey.key();
183  ATH_CHECK( m_cellsPmt2GainKey.initialize() );
184 
185  return StatusCode::SUCCESS;
186  }
187 
188  StatusCode TileCellsDecorator::decorate(const std::map<const xAOD::IParticle*, std::vector<const CaloCell*>>& muonCellsMap, const EventContext& ctx) const {
189 
236 
237  for (std::pair<const xAOD::IParticle*, const std::vector<const CaloCell*>> particleCellsPair : muonCellsMap) {
238 
239  const xAOD::IParticle* particle = particleCellsPair.first;
240  const std::vector<const CaloCell*>& cells = particleCellsPair.second;
241 
242  std::vector< float > cells_energy;
243  std::vector< float > cells_et;
244  std::vector< float > cells_eta;
245  std::vector< float > cells_phi;
246 
247  std::vector< int > cells_gain;
248  std::vector< bool > cells_bad;
249  std::vector< int > cells_sampling;
250  std::vector< float > cells_time;
251  std::vector< unsigned short > cells_quality;
252 
253  std::vector< float > cells_sinTh;
254  std::vector< float > cells_cosTh;
255  std::vector< float > cells_cotTh;
256  std::vector< float > cells_x;
257  std::vector< float > cells_y;
258  std::vector< float > cells_z;
259 
260  std::vector< float > cells_r;
261  std::vector< float > cells_dx;
262  std::vector< float > cells_dy;
263  std::vector< float > cells_dz;
264  std::vector< float > cells_dr;
265  std::vector< float > cells_volume;
266  std::vector< float > cells_dphi;
267  std::vector< float > cells_deta;
268 
269  std::vector< int > cells_side;
270  std::vector< unsigned short > cells_section;
271  std::vector< unsigned short > cells_module;
272  std::vector< unsigned short > cells_tower;
273  std::vector< unsigned short > cells_sample;
274 
275  std::vector< unsigned short > cells_pmt1_ros;
276  std::vector< unsigned short > cells_pmt2_ros;
277  std::vector< unsigned short > cells_pmt1_drawer;
278  std::vector< unsigned short > cells_pmt2_drawer;
279  std::vector< unsigned short > cells_pmt1_channel;
280  std::vector< unsigned short > cells_pmt2_channel;
281 
282  std::vector< float > cells_pmt1_energy;
283  std::vector< float > cells_pmt2_energy;
284  std::vector< float > cells_pmt1_time;
285  std::vector< float > cells_pmt2_time;
286 
287  std::vector< unsigned short > cells_pmt1_quality;
288  std::vector< unsigned short > cells_pmt2_quality;
289  std::vector< unsigned short > cells_pmt1_qbit;
290  std::vector< unsigned short > cells_pmt2_qbit;
291 
292  std::vector< bool > cells_pmt1_bad;
293  std::vector< bool > cells_pmt2_bad;
294  std::vector< unsigned short > cells_pmt1_gain;
295  std::vector< unsigned short > cells_pmt2_gain;
296 
297 
298  for (const CaloCell* cell : cells) {
299 
300  const CaloDetDescrElement* cell_dde = cell->caloDDE();
301 
302  // Cell energy and eta/phi
303  cells_energy.push_back( cell->energy() );
304  cells_et.push_back( cell->et() );
305  cells_eta.push_back( cell->eta() );
306  cells_phi.push_back( cell->phi() );
307 
308 
309  cells_gain.push_back( cell->gain() );
310  cells_bad.push_back( cell->badcell() );
311  cells_sampling.push_back( cell_dde->getSampling() );
312  cells_time.push_back( cell->time() );
313  cells_quality.push_back( cell->quality() );
314 
315  // Cell positioning
316  cells_sinTh.push_back( cell->sinTh() );
317  cells_cosTh.push_back( cell->cosTh() );
318  cells_cotTh.push_back( cell->cotTh() );
319  cells_x.push_back( cell->x() );
320  cells_y.push_back( cell->y() );
321  cells_z.push_back( cell->z() );
322 
323  // Cells dimensions
324  cells_r.push_back( cell_dde->r() );
325  cells_dx.push_back( cell_dde->dx() );
326  cells_dy.push_back( cell_dde->dy() );
327  cells_dz.push_back( cell_dde->dz() );
328  cells_dr.push_back( cell_dde->dr() );
329  cells_volume.push_back( cell_dde->volume() );
330  cells_dphi.push_back( cell_dde->dphi() );
331  cells_deta.push_back( cell_dde->deta() );
332 
333  cells_side.push_back( m_tileID->side(cell->ID()) );
334  cells_section.push_back( m_tileID->section(cell->ID()) );
335  cells_module.push_back( m_tileID->module(cell->ID()) );
336  cells_tower.push_back( m_tileID->tower(cell->ID()) );
337  cells_sample.push_back( m_tileID->sample(cell->ID()) );
338 
339  // Tile PMT information
340  const TileCell* tile_cell = dynamic_cast<const TileCell*> (cell);
341 
342  IdentifierHash hash1 = cell_dde->onl1();
343  IdentifierHash hash2 = cell_dde->onl2();
344 
345  // Tile cell positioning
346  int ros1 = -1;
347  int drawer1 = -1;
348  int channel1 = -1;
349  if (hash1 != TileHWID::NOT_VALID_HASH) {
350  ros1 = m_tileHWID->ros(m_tileHWID->adc_id(hash1, tile_cell->gain1()));
351  drawer1 = m_tileHWID->drawer(m_tileHWID->adc_id(hash1, tile_cell->gain1()));
352  channel1 = m_tileHWID->channel(m_tileHWID->adc_id(hash1, tile_cell->gain1()));
353  }
354 
355  int ros2 = -1;
356  int drawer2 = -1;
357  int channel2 = -1;
358  if (hash2 != TileHWID::NOT_VALID_HASH) {
359  ros2 = m_tileHWID->ros(m_tileHWID->adc_id(hash2, tile_cell->gain2()));
360  drawer2 = m_tileHWID->drawer(m_tileHWID->adc_id(hash2, tile_cell->gain2()));
361  channel2 = m_tileHWID->channel(m_tileHWID->adc_id(hash2, tile_cell->gain2()));
362  }
363 
364  cells_pmt1_ros.push_back( ros1 );
365  cells_pmt2_ros.push_back( ros2 );
366  cells_pmt1_drawer.push_back( drawer1 );
367  cells_pmt2_drawer.push_back( drawer2 );
368  cells_pmt1_channel.push_back( channel1 );
369  cells_pmt2_channel.push_back( channel2 );
370 
371  cells_pmt1_energy.push_back( tile_cell->ene1() );
372  cells_pmt2_energy.push_back( tile_cell->ene2() );
373  cells_pmt1_time.push_back( tile_cell->time1() );
374  cells_pmt2_time.push_back( tile_cell->time2() );
375  cells_pmt1_quality.push_back( tile_cell->qual1() );
376  cells_pmt2_quality.push_back( tile_cell->qual2() );
377  cells_pmt1_qbit.push_back( tile_cell->qbit1() );
378  cells_pmt2_qbit.push_back( tile_cell->qbit2() );
379  cells_pmt1_bad.push_back( tile_cell->badch1() );
380  cells_pmt2_bad.push_back( tile_cell->badch2() );
381  cells_pmt1_gain.push_back( tile_cell->gain1() );
382  cells_pmt2_gain.push_back( tile_cell->gain2() );
383  }
384 
385  cellsEnergy(*particle) = std::move(cells_energy);
386  cellsEt(*particle) = std::move(cells_et);
387  cellsEta(*particle) = std::move(cells_eta);
388  cellsPhi(*particle) = std::move(cells_phi);
389  cellsGain(*particle) = std::move(cells_gain);
390  cellsBad(*particle) = std::move(cells_bad);
391  cellsSampling(*particle) = std::move(cells_sampling);
392  cellsTime(*particle) = std::move(cells_time);
393  cellsQuality(*particle) = std::move(cells_quality);
394 
395  cellsSinTh(*particle) = std::move(cells_sinTh);
396  cellsCosTh(*particle) = std::move(cells_cosTh);
397  cellsCotTh(*particle) = std::move(cells_cotTh);
398  cellsX(*particle) = std::move(cells_x);
399  cellsY(*particle) = std::move(cells_y);
400  cellsZ(*particle) = std::move(cells_z);
401  cellsR(*particle) = std::move(cells_r);
402  cellsDx(*particle) = std::move(cells_dx);
403  cellsDy(*particle) = std::move(cells_dy);
404  cellsDz(*particle) = std::move(cells_dz);
405  cellsDr(*particle) = std::move(cells_dr);
406  cellsVolume(*particle) = std::move(cells_volume);
407  cellsDeta(*particle) = std::move(cells_deta);
408  cellsDphi(*particle) = std::move(cells_dphi);
409  cellsSide(*particle) = std::move(cells_side);
410  cellsSection(*particle) = std::move(cells_section);
411  cellsModule(*particle) = std::move(cells_module);
412  cellsTower(*particle) = std::move(cells_tower);
413  cellsSample(*particle) = std::move(cells_sample);
414 
415  cellsPmt1Ros(*particle) = std::move(cells_pmt1_ros);
416  cellsPmt2Ros(*particle) = std::move(cells_pmt2_ros);
417  cellsPmt1Drawer(*particle) = std::move(cells_pmt1_drawer);
418  cellsPmt2Drawer(*particle) = std::move(cells_pmt2_drawer);
419  cellsPmt1Channel(*particle) = std::move(cells_pmt1_channel);
420  cellsPmt2Channel(*particle) = std::move(cells_pmt2_channel);
421  cellsPmt1Energy(*particle) = std::move(cells_pmt1_energy);
422  cellsPmt2Energy(*particle) = std::move(cells_pmt2_energy);
423  cellsPmt1Time(*particle) = std::move(cells_pmt1_time);
424  cellsPmt2Time(*particle) = std::move(cells_pmt2_time);
425  cellsPmt1Quality(*particle) = std::move(cells_pmt1_quality);
426  cellsPmt2Quality(*particle) = std::move(cells_pmt2_quality);
427  cellsPmt1_Qbit(*particle) = std::move(cells_pmt1_qbit);
428  cellsPmt2_Qbit(*particle) = std::move(cells_pmt2_qbit);
429  cellsPmt1Bad(*particle) = std::move(cells_pmt1_bad);
430  cellsPmt2Bad(*particle) = std::move(cells_pmt2_bad);
431  cellsPmt1Gain(*particle) = std::move(cells_pmt1_gain);
432  cellsPmt2Gain(*particle) = std::move(cells_pmt2_gain);
433 
434  }
435 
436  return StatusCode::SUCCESS;
437  }
438 
439 }
CaloDetDescrElement::deta
float deta() const
cell deta
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:356
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TileCell
Definition: TileCell.h:57
CaloDetDescrElement::onl2
IdentifierHash onl2() const
cell online identifier 2
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:408
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:281
DerivationFramework::TileCellsDecorator::m_cellsPmt1TimeKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1TimeKey
Definition: TileCellsDecorator.h:100
DerivationFramework::TileCellsDecorator::m_cellsPmt2RosKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2RosKey
Definition: TileCellsDecorator.h:92
TileCell::time1
float time1(void) const
get time of first PMT
Definition: TileCell.h:192
DerivationFramework::TileCellsDecorator::m_cellsPmt1EnergyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1EnergyKey
Definition: TileCellsDecorator.h:98
DerivationFramework::TileCellsDecorator::m_cellsBadKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsBadKey
Definition: TileCellsDecorator.h:64
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
DerivationFramework::TileCellsDecorator::m_cellsPmt1ChannelKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1ChannelKey
Definition: TileCellsDecorator.h:95
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
IParticle.h
DerivationFramework::TileCellsDecorator::m_cellsTowerKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsTowerKey
Definition: TileCellsDecorator.h:88
DerivationFramework::TileCellsDecorator::m_cellsPmt2GainKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2GainKey
Definition: TileCellsDecorator.h:111
DerivationFramework::TileCellsDecorator::m_cellsSampleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSampleKey
Definition: TileCellsDecorator.h:89
DerivationFramework::TileCellsDecorator::m_cellsDyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDyKey
Definition: TileCellsDecorator.h:78
TileCell::time2
float time2(void) const
get time of second PMT
Definition: TileCell.h:194
DerivationFramework::TileCellsDecorator::m_cellsPmt1DrawerKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1DrawerKey
Definition: TileCellsDecorator.h:93
DerivationFramework::TileCellsDecorator::m_prefix
Gaudi::Property< std::string > m_prefix
Definition: TileCellsDecorator.h:55
TileCell::ene1
float ene1(void) const
get energy of first PMT
Definition: TileCell.h:187
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
TileCell::badch1
bool badch1(void) const
check if first PMT is in bad channel list and masked
Definition: TileCell.h:209
DerivationFramework::TileCellsDecorator::m_cellsPmt2DrawerKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2DrawerKey
Definition: TileCellsDecorator.h:94
DerivationFramework::TileCellsDecorator::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileCellsDecorator.h:120
Tile_Base_ID::side
int side(const Identifier &id) const
Definition: Tile_Base_ID.cxx:153
CaloDetDescrElement::dr
float dr() const
cell dr
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:360
Tile_Base_ID::sample
int sample(const Identifier &id) const
Definition: Tile_Base_ID.cxx:171
CaloCell.h
DerivationFramework::TileCellsDecorator::m_tileID
const TileID * m_tileID
Definition: TileCellsDecorator.h:119
DerivationFramework::TileCellsDecorator::m_cellsPmt1BadKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1BadKey
Definition: TileCellsDecorator.h:108
DerivationFramework::TileCellsDecorator::m_cellsSideKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSideKey
Definition: TileCellsDecorator.h:85
Tile_Base_ID::tower
int tower(const Identifier &id) const
Definition: Tile_Base_ID.cxx:165
DerivationFramework::TileCellsDecorator::m_muonContainer
Gaudi::Property< std::string > m_muonContainer
Definition: TileCellsDecorator.h:56
DerivationFramework::TileCellsDecorator::m_cellsPmt2BadKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2BadKey
Definition: TileCellsDecorator.h:109
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
DerivationFramework::TileCellsDecorator::m_cellsGainKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsGainKey
Definition: TileCellsDecorator.h:63
DerivationFramework::TileCellsDecorator::m_cellsEtaKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsEtaKey
Definition: TileCellsDecorator.h:60
TileHWID::NOT_VALID_HASH
@ NOT_VALID_HASH
Definition: TileHWID.h:314
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
TileHWID::channel
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
Definition: TileHWID.h:189
TileID.h
DerivationFramework::TileCellsDecorator::m_cellsSinThKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSinThKey
Definition: TileCellsDecorator.h:69
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
DerivationFramework::TileCellsDecorator::m_cellsVolumeKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsVolumeKey
Definition: TileCellsDecorator.h:81
TileHWID::ros
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
Definition: TileHWID.h:167
CaloDetDescrElement::dz
float dz() const
cell dz
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:379
CaloDetDescrElement::onl1
IdentifierHash onl1() const
cell online identifier 1
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:404
DerivationFramework::TileCellsDecorator::m_cellsEtKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsEtKey
Definition: TileCellsDecorator.h:59
DerivationFramework::TileCellsDecorator::m_cellsDzKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDzKey
Definition: TileCellsDecorator.h:79
TileCell::qual2
uint8_t qual2(void) const
get quality of second PMT (data member)
Definition: TileCell.h:200
DerivationFramework::TileCellsDecorator::m_cellsPmt1GainKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1GainKey
Definition: TileCellsDecorator.h:110
DerivationFramework::TileCellsDecorator::m_cellsPmt1QbitKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1QbitKey
Definition: TileCellsDecorator.h:105
DerivationFramework::TileCellsDecorator::m_cellsRKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsRKey
Definition: TileCellsDecorator.h:76
DerivationFramework::TileCellsDecorator::m_cellsDphiKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDphiKey
Definition: TileCellsDecorator.h:83
TileHWID.h
DerivationFramework::TileCellsDecorator::m_cellsPhiKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPhiKey
Definition: TileCellsDecorator.h:61
DerivationFramework::TileCellsDecorator::m_cellsQualityKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsQualityKey
Definition: TileCellsDecorator.h:67
Tile_Base_ID::module
int module(const Identifier &id) const
Definition: Tile_Base_ID.cxx:159
DerivationFramework::TileCellsDecorator::initialize
StatusCode initialize() override final
Definition: TileCellsDecorator.cxx:39
DerivationFramework::TileCellsDecorator::m_cellsSectionKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSectionKey
Definition: TileCellsDecorator.h:86
DerivationFramework::TileCellsDecorator::decorate
StatusCode decorate(const std::map< const xAOD::IParticle *, std::vector< const CaloCell * >> &muonCellsMap, const EventContext &ctx) const
Definition: TileCellsDecorator.cxx:188
DerivationFramework::TileCellsDecorator::m_cellsPmt2TimeKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2TimeKey
Definition: TileCellsDecorator.h:101
DerivationFramework::TileCellsDecorator::m_cellsPmt2ChannelKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2ChannelKey
Definition: TileCellsDecorator.h:96
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::TileCellsDecorator::m_cellsDetaKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDetaKey
Definition: TileCellsDecorator.h:82
TileCell::badch2
bool badch2(void) const
check if second PMT is in bad channel list and masked
Definition: TileCell.h:212
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
DerivationFramework::TileCellsDecorator::m_cellsCotThKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsCotThKey
Definition: TileCellsDecorator.h:71
TileCell.h
WriteDecorHandle.h
Handle class for adding a decoration to an object.
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TileCell::qbit1
uint8_t qbit1(void) const
get quality bits of first PMT (data member)
Definition: TileCell.h:203
DerivationFramework::TileCellsDecorator::TileCellsDecorator
TileCellsDecorator(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition: TileCellsDecorator.cxx:33
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
TileCell::gain1
int gain1(void) const
get gain of first PMT
Definition: TileCell.cxx:168
DerivationFramework::TileCellsDecorator::m_cellsSamplingKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSamplingKey
Definition: TileCellsDecorator.h:65
DerivationFramework::TileCellsDecorator::m_cablingSvc
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Definition: TileCellsDecorator.h:116
DerivationFramework::TileCellsDecorator::m_cellsCosThKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsCosThKey
Definition: TileCellsDecorator.h:70
DerivationFramework::TileCellsDecorator::m_cellsModuleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsModuleKey
Definition: TileCellsDecorator.h:87
DerivationFramework::TileCellsDecorator::m_cellsPmt2QbitKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2QbitKey
Definition: TileCellsDecorator.h:106
CaloDetDescrElement::volume
float volume() const
cell volume
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:381
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
errorcheck.h
Helpers for checking error return status codes and reporting errors.
DerivationFramework::TileCellsDecorator::m_cellsXKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsXKey
Definition: TileCellsDecorator.h:72
DerivationFramework::TileCellsDecorator::m_cellsTimeKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsTimeKey
Definition: TileCellsDecorator.h:66
TileHWID::adc_id
HWIdentifier adc_id(int ros, int drawer, int channel, int adc) const
adc HWIdentifer
Definition: TileHWID.cxx:228
TileCell::qbit2
uint8_t qbit2(void) const
get quality bits of second PMT (data member)
Definition: TileCell.h:206
DerivationFramework::TileCellsDecorator::m_cellsPmt1QualityKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1QualityKey
Definition: TileCellsDecorator.h:103
CaloDetDescrElement::dphi
float dphi() const
cell dphi
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:358
TileCell::gain2
int gain2(void) const
get gain of second PMT
Definition: TileCell.cxx:175
TileCell::ene2
float ene2(void) const
get energy of second PMT
Definition: TileCell.h:189
TileHWID::drawer
int drawer(const HWIdentifier &id) const
extract drawer field from HW identifier
Definition: TileHWID.h:171
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
DerivationFramework::TileCellsDecorator::m_cellsDrKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDrKey
Definition: TileCellsDecorator.h:80
CaloDetDescrElement::dx
float dx() const
cell dx
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:375
CaloDetDescrElement::getSampling
CaloCell_ID::CaloSample getSampling() const
cell sampling
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:395
DerivationFramework::TileCellsDecorator::m_cellsYKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsYKey
Definition: TileCellsDecorator.h:73
TileCell::qual1
uint8_t qual1(void) const
get quality of first PMT (data member)
Definition: TileCell.h:197
DerivationFramework::TileCellsDecorator::m_cellsZKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsZKey
Definition: TileCellsDecorator.h:74
Tile_Base_ID::section
int section(const Identifier &id) const
Definition: Tile_Base_ID.cxx:147
CaloDetDescrElement::r
float r() const
cell r
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:348
AthAlgTool
Definition: AthAlgTool.h:26
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
CaloDetDescrElement::dy
float dy() const
cell dy
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:377
DerivationFramework::TileCellsDecorator::m_cellsDxKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDxKey
Definition: TileCellsDecorator.h:77
DerivationFramework::TileCellsDecorator::m_cellsPmt1RosKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1RosKey
Definition: TileCellsDecorator.h:91
TileCellsDecorator.h
DerivationFramework::TileCellsDecorator::m_cellsPmt2EnergyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2EnergyKey
Definition: TileCellsDecorator.h:99
DerivationFramework::TileCellsDecorator::m_cellsPmt2QualityKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2QualityKey
Definition: TileCellsDecorator.h:104
DerivationFramework::TileCellsDecorator::m_cellsEnergyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsEnergyKey
Definition: TileCellsDecorator.h:58