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  static const InterfaceID IID_TileCellsDecorator("TileCellsDecorator", 1, 0);
33  const InterfaceID& TileCellsDecorator::interfaceID( ) { return IID_TileCellsDecorator; }
34 
35 
36  TileCellsDecorator::TileCellsDecorator( const std::string& type, const std::string& name, const IInterface* parent )
38  {
39  declareInterface<TileCellsDecorator>(this);
40  }
41 
42 
44 
45  ATH_CHECK( m_cablingSvc.retrieve() );
48 
49  const std::string baseName = m_muonContainer + ".";
50 
51  m_cellsEnergyKey = baseName + m_prefix + m_cellsEnergyKey.key();
52  ATH_CHECK( m_cellsEnergyKey.initialize() );
53 
54  m_cellsEtKey = baseName + m_prefix + m_cellsEtKey.key();
55  ATH_CHECK( m_cellsEtKey.initialize() );
56 
57  m_cellsEtaKey = baseName + m_prefix + m_cellsEtaKey.key();
58  ATH_CHECK( m_cellsEtaKey.initialize() );
59 
60  m_cellsPhiKey = baseName + m_prefix + m_cellsPhiKey.key();
61  ATH_CHECK( m_cellsPhiKey.initialize() );
62 
63  m_cellsGainKey = baseName + m_prefix + m_cellsGainKey.key();
64  ATH_CHECK( m_cellsGainKey.initialize() );
65 
66  m_cellsBadKey = baseName + m_prefix + m_cellsBadKey.key();
67  ATH_CHECK( m_cellsBadKey.initialize() );
68 
69  m_cellsSamplingKey = baseName + m_prefix + m_cellsSamplingKey.key();
70  ATH_CHECK( m_cellsSamplingKey.initialize() );
71 
72  m_cellsTimeKey = baseName + m_prefix + m_cellsTimeKey.key();
73  ATH_CHECK( m_cellsTimeKey.initialize() );
74 
75  m_cellsQualityKey = baseName + m_prefix + m_cellsQualityKey.key();
76  ATH_CHECK( m_cellsQualityKey.initialize() );
77 
78  m_cellsSinThKey = baseName + m_prefix + m_cellsSinThKey.key();
79  ATH_CHECK( m_cellsSinThKey.initialize() );
80 
81  m_cellsCosThKey = baseName + m_prefix + m_cellsCosThKey.key();
82  ATH_CHECK( m_cellsCosThKey.initialize() );
83 
84  m_cellsCotThKey = baseName + m_prefix + m_cellsCotThKey.key();
85  ATH_CHECK( m_cellsCotThKey.initialize() );
86 
87  m_cellsXKey = baseName + m_prefix + m_cellsXKey.key();
88  ATH_CHECK( m_cellsXKey.initialize() );
89 
90  m_cellsYKey = baseName + m_prefix + m_cellsYKey.key();
91  ATH_CHECK( m_cellsYKey.initialize() );
92 
93  m_cellsZKey = baseName + m_prefix + m_cellsZKey.key();
94  ATH_CHECK( m_cellsZKey.initialize() );
95 
96  m_cellsRKey = baseName + m_prefix + m_cellsRKey.key();
97  ATH_CHECK( m_cellsRKey.initialize() );
98 
99  m_cellsDxKey = baseName + m_prefix + m_cellsDxKey.key();
100  ATH_CHECK( m_cellsDxKey.initialize() );
101 
102  m_cellsDyKey = baseName + m_prefix + m_cellsDyKey.key();
103  ATH_CHECK( m_cellsDyKey.initialize() );
104 
105  m_cellsDzKey = baseName + m_prefix + m_cellsDzKey.key();
106  ATH_CHECK( m_cellsDzKey.initialize() );
107 
108  m_cellsDrKey = baseName + m_prefix + m_cellsDrKey.key();
109  ATH_CHECK( m_cellsDrKey.initialize() );
110 
111  m_cellsVolumeKey = baseName + m_prefix + m_cellsVolumeKey.key();
112  ATH_CHECK( m_cellsVolumeKey.initialize() );
113 
114  m_cellsDetaKey = baseName + m_prefix + m_cellsDetaKey.key();
115  ATH_CHECK( m_cellsDetaKey.initialize() );
116 
117  m_cellsDphiKey = baseName + m_prefix + m_cellsDphiKey.key();
118  ATH_CHECK( m_cellsDphiKey.initialize() );
119 
120  m_cellsSideKey = baseName + m_prefix + m_cellsSideKey.key();
121  ATH_CHECK( m_cellsSideKey.initialize() );
122 
123  m_cellsSectionKey = baseName + m_prefix + m_cellsSectionKey.key();
124  ATH_CHECK( m_cellsSectionKey.initialize() );
125 
126  m_cellsModuleKey = baseName + m_prefix + m_cellsModuleKey.key();
127  ATH_CHECK( m_cellsModuleKey.initialize() );
128 
129  m_cellsTowerKey = baseName + m_prefix + m_cellsTowerKey.key();
130  ATH_CHECK( m_cellsTowerKey.initialize() );
131 
132  m_cellsSampleKey = baseName + m_prefix + m_cellsSampleKey.key();
133  ATH_CHECK( m_cellsSampleKey.initialize() );
134 
135  m_cellsPmt1RosKey = baseName + m_prefix + m_cellsPmt1RosKey.key();
136  ATH_CHECK( m_cellsPmt1RosKey.initialize() );
137 
138  m_cellsPmt2RosKey = baseName + m_prefix + m_cellsPmt2RosKey.key();
139  ATH_CHECK( m_cellsPmt2RosKey.initialize() );
140 
142  ATH_CHECK( m_cellsPmt1DrawerKey.initialize() );
143 
145  ATH_CHECK( m_cellsPmt2DrawerKey.initialize() );
146 
148  ATH_CHECK( m_cellsPmt1ChannelKey.initialize() );
149 
151  ATH_CHECK( m_cellsPmt2ChannelKey.initialize() );
152 
154  ATH_CHECK( m_cellsPmt1EnergyKey.initialize() );
155 
157  ATH_CHECK( m_cellsPmt2EnergyKey.initialize() );
158 
159  m_cellsPmt1TimeKey = baseName + m_prefix + m_cellsPmt1TimeKey.key();
160  ATH_CHECK( m_cellsPmt1TimeKey.initialize() );
161 
162  m_cellsPmt2TimeKey = baseName + m_prefix + m_cellsPmt2TimeKey.key();
163  ATH_CHECK( m_cellsPmt2TimeKey.initialize() );
164 
166  ATH_CHECK( m_cellsPmt1QualityKey.initialize() );
167 
169  ATH_CHECK( m_cellsPmt2QualityKey.initialize() );
170 
171  m_cellsPmt1QbitKey = baseName + m_prefix + m_cellsPmt1QbitKey.key();
172  ATH_CHECK( m_cellsPmt1QbitKey.initialize() );
173 
174  m_cellsPmt2QbitKey = baseName + m_prefix + m_cellsPmt2QbitKey.key();
175  ATH_CHECK( m_cellsPmt2QbitKey.initialize() );
176 
177  m_cellsPmt1BadKey = baseName + m_prefix + m_cellsPmt1BadKey.key();
178  ATH_CHECK( m_cellsPmt1BadKey.initialize() );
179 
180  m_cellsPmt2BadKey = baseName + m_prefix + m_cellsPmt2BadKey.key();
181  ATH_CHECK( m_cellsPmt2BadKey.initialize() );
182 
183  m_cellsPmt1GainKey = baseName + m_prefix + m_cellsPmt1GainKey.key();
184  ATH_CHECK( m_cellsPmt1GainKey.initialize() );
185 
186  m_cellsPmt2GainKey = baseName + m_prefix + m_cellsPmt2GainKey.key();
187  ATH_CHECK( m_cellsPmt2GainKey.initialize() );
188 
189  return StatusCode::SUCCESS;
190  }
191 
192  StatusCode TileCellsDecorator::decorate(const std::map<const xAOD::IParticle*, std::vector<const CaloCell*>>& muonCellsMap, const EventContext& ctx) const {
193 
240 
241  for (std::pair<const xAOD::IParticle*, const std::vector<const CaloCell*>> particleCellsPair : muonCellsMap) {
242 
243  const xAOD::IParticle* particle = particleCellsPair.first;
244  const std::vector<const CaloCell*>& cells = particleCellsPair.second;
245 
246  std::vector< float > cells_energy;
247  std::vector< float > cells_et;
248  std::vector< float > cells_eta;
249  std::vector< float > cells_phi;
250 
251  std::vector< int > cells_gain;
252  std::vector< bool > cells_bad;
253  std::vector< int > cells_sampling;
254  std::vector< float > cells_time;
255  std::vector< unsigned short > cells_quality;
256 
257  std::vector< float > cells_sinTh;
258  std::vector< float > cells_cosTh;
259  std::vector< float > cells_cotTh;
260  std::vector< float > cells_x;
261  std::vector< float > cells_y;
262  std::vector< float > cells_z;
263 
264  std::vector< float > cells_r;
265  std::vector< float > cells_dx;
266  std::vector< float > cells_dy;
267  std::vector< float > cells_dz;
268  std::vector< float > cells_dr;
269  std::vector< float > cells_volume;
270  std::vector< float > cells_dphi;
271  std::vector< float > cells_deta;
272 
273  std::vector< int > cells_side;
274  std::vector< unsigned short > cells_section;
275  std::vector< unsigned short > cells_module;
276  std::vector< unsigned short > cells_tower;
277  std::vector< unsigned short > cells_sample;
278 
279  std::vector< unsigned short > cells_pmt1_ros;
280  std::vector< unsigned short > cells_pmt2_ros;
281  std::vector< unsigned short > cells_pmt1_drawer;
282  std::vector< unsigned short > cells_pmt2_drawer;
283  std::vector< unsigned short > cells_pmt1_channel;
284  std::vector< unsigned short > cells_pmt2_channel;
285 
286  std::vector< float > cells_pmt1_energy;
287  std::vector< float > cells_pmt2_energy;
288  std::vector< float > cells_pmt1_time;
289  std::vector< float > cells_pmt2_time;
290 
291  std::vector< unsigned short > cells_pmt1_quality;
292  std::vector< unsigned short > cells_pmt2_quality;
293  std::vector< unsigned short > cells_pmt1_qbit;
294  std::vector< unsigned short > cells_pmt2_qbit;
295 
296  std::vector< bool > cells_pmt1_bad;
297  std::vector< bool > cells_pmt2_bad;
298  std::vector< unsigned short > cells_pmt1_gain;
299  std::vector< unsigned short > cells_pmt2_gain;
300 
301 
302  for (const CaloCell* cell : cells) {
303 
304  const CaloDetDescrElement* cell_dde = cell->caloDDE();
305 
306  // Cell energy and eta/phi
307  cells_energy.push_back( cell->energy() );
308  cells_et.push_back( cell->et() );
309  cells_eta.push_back( cell->eta() );
310  cells_phi.push_back( cell->phi() );
311 
312 
313  cells_gain.push_back( cell->gain() );
314  cells_bad.push_back( cell->badcell() );
315  cells_sampling.push_back( cell_dde->getSampling() );
316  cells_time.push_back( cell->time() );
317  cells_quality.push_back( cell->quality() );
318 
319  // Cell positioning
320  cells_sinTh.push_back( cell->sinTh() );
321  cells_cosTh.push_back( cell->cosTh() );
322  cells_cotTh.push_back( cell->cotTh() );
323  cells_x.push_back( cell->x() );
324  cells_y.push_back( cell->y() );
325  cells_z.push_back( cell->z() );
326 
327  // Cells dimensions
328  cells_r.push_back( cell_dde->r() );
329  cells_dx.push_back( cell_dde->dx() );
330  cells_dy.push_back( cell_dde->dy() );
331  cells_dz.push_back( cell_dde->dz() );
332  cells_dr.push_back( cell_dde->dr() );
333  cells_volume.push_back( cell_dde->volume() );
334  cells_dphi.push_back( cell_dde->dphi() );
335  cells_deta.push_back( cell_dde->deta() );
336 
337  cells_side.push_back( m_tileID->side(cell->ID()) );
338  cells_section.push_back( m_tileID->section(cell->ID()) );
339  cells_module.push_back( m_tileID->module(cell->ID()) );
340  cells_tower.push_back( m_tileID->tower(cell->ID()) );
341  cells_sample.push_back( m_tileID->sample(cell->ID()) );
342 
343  // Tile PMT information
344  const TileCell* tile_cell = dynamic_cast<const TileCell*> (cell);
345 
346  IdentifierHash hash1 = cell_dde->onl1();
347  IdentifierHash hash2 = cell_dde->onl2();
348 
349  // Tile cell positioning
350  int ros1 = -1;
351  int drawer1 = -1;
352  int channel1 = -1;
353  if (hash1 != TileHWID::NOT_VALID_HASH) {
354  ros1 = m_tileHWID->ros(m_tileHWID->adc_id(hash1, tile_cell->gain1()));
355  drawer1 = m_tileHWID->drawer(m_tileHWID->adc_id(hash1, tile_cell->gain1()));
356  channel1 = m_tileHWID->channel(m_tileHWID->adc_id(hash1, tile_cell->gain1()));
357  }
358 
359  int ros2 = -1;
360  int drawer2 = -1;
361  int channel2 = -1;
362  if (hash2 != TileHWID::NOT_VALID_HASH) {
363  ros2 = m_tileHWID->ros(m_tileHWID->adc_id(hash2, tile_cell->gain2()));
364  drawer2 = m_tileHWID->drawer(m_tileHWID->adc_id(hash2, tile_cell->gain2()));
365  channel2 = m_tileHWID->channel(m_tileHWID->adc_id(hash2, tile_cell->gain2()));
366  }
367 
368  cells_pmt1_ros.push_back( ros1 );
369  cells_pmt2_ros.push_back( ros2 );
370  cells_pmt1_drawer.push_back( drawer1 );
371  cells_pmt2_drawer.push_back( drawer2 );
372  cells_pmt1_channel.push_back( channel1 );
373  cells_pmt2_channel.push_back( channel2 );
374 
375  cells_pmt1_energy.push_back( tile_cell->ene1() );
376  cells_pmt2_energy.push_back( tile_cell->ene2() );
377  cells_pmt1_time.push_back( tile_cell->time1() );
378  cells_pmt2_time.push_back( tile_cell->time2() );
379  cells_pmt1_quality.push_back( tile_cell->qual1() );
380  cells_pmt2_quality.push_back( tile_cell->qual2() );
381  cells_pmt1_qbit.push_back( tile_cell->qbit1() );
382  cells_pmt2_qbit.push_back( tile_cell->qbit2() );
383  cells_pmt1_bad.push_back( tile_cell->badch1() );
384  cells_pmt2_bad.push_back( tile_cell->badch2() );
385  cells_pmt1_gain.push_back( tile_cell->gain1() );
386  cells_pmt2_gain.push_back( tile_cell->gain2() );
387  }
388 
389  cellsEnergy(*particle) = std::move(cells_energy);
390  cellsEt(*particle) = std::move(cells_et);
391  cellsEta(*particle) = std::move(cells_eta);
392  cellsPhi(*particle) = std::move(cells_phi);
393  cellsGain(*particle) = std::move(cells_gain);
394  cellsBad(*particle) = std::move(cells_bad);
395  cellsSampling(*particle) = std::move(cells_sampling);
396  cellsTime(*particle) = std::move(cells_time);
397  cellsQuality(*particle) = std::move(cells_quality);
398 
399  cellsSinTh(*particle) = std::move(cells_sinTh);
400  cellsCosTh(*particle) = std::move(cells_cosTh);
401  cellsCotTh(*particle) = std::move(cells_cotTh);
402  cellsX(*particle) = std::move(cells_x);
403  cellsY(*particle) = std::move(cells_y);
404  cellsZ(*particle) = std::move(cells_z);
405  cellsR(*particle) = std::move(cells_r);
406  cellsDx(*particle) = std::move(cells_dx);
407  cellsDy(*particle) = std::move(cells_dy);
408  cellsDz(*particle) = std::move(cells_dz);
409  cellsDr(*particle) = std::move(cells_dr);
410  cellsVolume(*particle) = std::move(cells_volume);
411  cellsDeta(*particle) = std::move(cells_deta);
412  cellsDphi(*particle) = std::move(cells_dphi);
413  cellsSide(*particle) = std::move(cells_side);
414  cellsSection(*particle) = std::move(cells_section);
415  cellsModule(*particle) = std::move(cells_module);
416  cellsTower(*particle) = std::move(cells_tower);
417  cellsSample(*particle) = std::move(cells_sample);
418 
419  cellsPmt1Ros(*particle) = std::move(cells_pmt1_ros);
420  cellsPmt2Ros(*particle) = std::move(cells_pmt2_ros);
421  cellsPmt1Drawer(*particle) = std::move(cells_pmt1_drawer);
422  cellsPmt2Drawer(*particle) = std::move(cells_pmt2_drawer);
423  cellsPmt1Channel(*particle) = std::move(cells_pmt1_channel);
424  cellsPmt2Channel(*particle) = std::move(cells_pmt2_channel);
425  cellsPmt1Energy(*particle) = std::move(cells_pmt1_energy);
426  cellsPmt2Energy(*particle) = std::move(cells_pmt2_energy);
427  cellsPmt1Time(*particle) = std::move(cells_pmt1_time);
428  cellsPmt2Time(*particle) = std::move(cells_pmt2_time);
429  cellsPmt1Quality(*particle) = std::move(cells_pmt1_quality);
430  cellsPmt2Quality(*particle) = std::move(cells_pmt2_quality);
431  cellsPmt1_Qbit(*particle) = std::move(cells_pmt1_qbit);
432  cellsPmt2_Qbit(*particle) = std::move(cells_pmt2_qbit);
433  cellsPmt1Bad(*particle) = std::move(cells_pmt1_bad);
434  cellsPmt2Bad(*particle) = std::move(cells_pmt2_bad);
435  cellsPmt1Gain(*particle) = std::move(cells_pmt1_gain);
436  cellsPmt2Gain(*particle) = std::move(cells_pmt2_gain);
437 
438  }
439 
440  return StatusCode::SUCCESS;
441  }
442 
443 }
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:271
DerivationFramework::TileCellsDecorator::m_cellsPmt1TimeKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1TimeKey
Definition: TileCellsDecorator.h:102
DerivationFramework::TileCellsDecorator::m_cellsPmt2RosKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2RosKey
Definition: TileCellsDecorator.h:94
TileCell::time1
float time1(void) const
get time of first PMT
Definition: TileCell.h:198
DerivationFramework::TileCellsDecorator::m_cellsPmt1EnergyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1EnergyKey
Definition: TileCellsDecorator.h:100
DerivationFramework::TileCellsDecorator::m_cellsBadKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsBadKey
Definition: TileCellsDecorator.h:66
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
DerivationFramework::TileCellsDecorator::m_cellsPmt1ChannelKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1ChannelKey
Definition: TileCellsDecorator.h:97
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
IParticle.h
DerivationFramework::TileCellsDecorator::m_cellsTowerKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsTowerKey
Definition: TileCellsDecorator.h:90
DerivationFramework::TileCellsDecorator::m_cellsPmt2GainKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2GainKey
Definition: TileCellsDecorator.h:113
DerivationFramework::TileCellsDecorator::m_cellsSampleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSampleKey
Definition: TileCellsDecorator.h:91
DerivationFramework::TileCellsDecorator::m_cellsDyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDyKey
Definition: TileCellsDecorator.h:80
TileCell::time2
float time2(void) const
get time of second PMT
Definition: TileCell.h:200
DerivationFramework::TileCellsDecorator::m_cellsPmt1DrawerKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1DrawerKey
Definition: TileCellsDecorator.h:95
DerivationFramework::TileCellsDecorator::m_prefix
Gaudi::Property< std::string > m_prefix
Definition: TileCellsDecorator.h:57
TileCell::ene1
float ene1(void) const
get energy of first PMT
Definition: TileCell.h:193
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:215
DerivationFramework::TileCellsDecorator::m_cellsPmt2DrawerKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2DrawerKey
Definition: TileCellsDecorator.h:96
DerivationFramework::TileCellsDecorator::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileCellsDecorator.h:122
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:121
DerivationFramework::TileCellsDecorator::m_cellsPmt1BadKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1BadKey
Definition: TileCellsDecorator.h:110
DerivationFramework::TileCellsDecorator::m_cellsSideKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSideKey
Definition: TileCellsDecorator.h:87
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:58
DerivationFramework::TileCellsDecorator::m_cellsPmt2BadKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2BadKey
Definition: TileCellsDecorator.h:111
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
DerivationFramework::TileCellsDecorator::m_cellsGainKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsGainKey
Definition: TileCellsDecorator.h:65
DerivationFramework::TileCellsDecorator::m_cellsEtaKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsEtaKey
Definition: TileCellsDecorator.h:62
DerivationFramework::TileCellsDecorator::interfaceID
static const InterfaceID & interfaceID()
Definition: TileCellsDecorator.cxx:33
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:71
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:83
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:61
DerivationFramework::TileCellsDecorator::m_cellsDzKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDzKey
Definition: TileCellsDecorator.h:81
TileCell::qual2
uint8_t qual2(void) const
get quality of second PMT (data member)
Definition: TileCell.h:206
DerivationFramework::TileCellsDecorator::m_cellsPmt1GainKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1GainKey
Definition: TileCellsDecorator.h:112
DerivationFramework::TileCellsDecorator::m_cellsPmt1QbitKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1QbitKey
Definition: TileCellsDecorator.h:107
DerivationFramework::TileCellsDecorator::m_cellsRKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsRKey
Definition: TileCellsDecorator.h:78
DerivationFramework::TileCellsDecorator::m_cellsDphiKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsDphiKey
Definition: TileCellsDecorator.h:85
TileHWID.h
DerivationFramework::TileCellsDecorator::m_cellsPhiKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPhiKey
Definition: TileCellsDecorator.h:63
DerivationFramework::TileCellsDecorator::m_cellsQualityKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsQualityKey
Definition: TileCellsDecorator.h:69
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:43
DerivationFramework::TileCellsDecorator::m_cellsSectionKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSectionKey
Definition: TileCellsDecorator.h:88
DerivationFramework::TileCellsDecorator::decorate
StatusCode decorate(const std::map< const xAOD::IParticle *, std::vector< const CaloCell * >> &muonCellsMap, const EventContext &ctx) const
Definition: TileCellsDecorator.cxx:192
DerivationFramework::TileCellsDecorator::m_cellsPmt2TimeKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2TimeKey
Definition: TileCellsDecorator.h:103
DerivationFramework::TileCellsDecorator::m_cellsPmt2ChannelKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2ChannelKey
Definition: TileCellsDecorator.h:98
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:84
TileCell::badch2
bool badch2(void) const
check if second PMT is in bad channel list and masked
Definition: TileCell.h:218
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:99
DerivationFramework::TileCellsDecorator::m_cellsCotThKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsCotThKey
Definition: TileCellsDecorator.h:73
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:209
DerivationFramework::TileCellsDecorator::TileCellsDecorator
TileCellsDecorator(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition: TileCellsDecorator.cxx:36
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
TileCell::gain1
int gain1(void) const
get gain of first PMT
Definition: TileCell.cxx:182
DerivationFramework::TileCellsDecorator::m_cellsSamplingKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsSamplingKey
Definition: TileCellsDecorator.h:67
DerivationFramework::TileCellsDecorator::m_cablingSvc
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Definition: TileCellsDecorator.h:118
DerivationFramework::TileCellsDecorator::m_cellsCosThKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsCosThKey
Definition: TileCellsDecorator.h:72
DerivationFramework::TileCellsDecorator::m_cellsModuleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsModuleKey
Definition: TileCellsDecorator.h:89
DerivationFramework::TileCellsDecorator::m_cellsPmt2QbitKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2QbitKey
Definition: TileCellsDecorator.h:108
CaloDetDescrElement::volume
float volume() const
cell volume
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:381
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
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:74
DerivationFramework::TileCellsDecorator::m_cellsTimeKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsTimeKey
Definition: TileCellsDecorator.h:68
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:212
DerivationFramework::TileCellsDecorator::m_cellsPmt1QualityKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1QualityKey
Definition: TileCellsDecorator.h:105
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:189
TileCell::ene2
float ene2(void) const
get energy of second PMT
Definition: TileCell.h:195
TileHWID::NOT_VALID_HASH
@ NOT_VALID_HASH
Definition: TileHWID.h:314
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:82
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:75
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileCell::qual1
uint8_t qual1(void) const
get quality of first PMT (data member)
Definition: TileCell.h:203
DerivationFramework::TileCellsDecorator::m_cellsZKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsZKey
Definition: TileCellsDecorator.h:76
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
Definition: IdentifierHash.h:38
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:79
DerivationFramework::TileCellsDecorator::m_cellsPmt1RosKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt1RosKey
Definition: TileCellsDecorator.h:93
TileCellsDecorator.h
DerivationFramework::TileCellsDecorator::m_cellsPmt2EnergyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2EnergyKey
Definition: TileCellsDecorator.h:101
DerivationFramework::TileCellsDecorator::m_cellsPmt2QualityKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsPmt2QualityKey
Definition: TileCellsDecorator.h:106
DerivationFramework::TileCellsDecorator::m_cellsEnergyKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_cellsEnergyKey
Definition: TileCellsDecorator.h:60