ATLAS Offline Software
Loading...
Searching...
No Matches
MbtsToVectorsTool.cxx
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5*/
6
7// MbtsToVectorsTool.cxx
8// Implementation file for class MbtsToVectorsTool
10
11// Tile includes
12#include "MbtsToVectorsTool.h"
13
14#include "TileEvent/TileCell.h"
20
21#include <vector>
22
23namespace DerivationFramework {
24
26
27 ATH_CHECK( m_cellContainerKey.initialize() );
28 ATH_CHECK( m_energyKey.initialize() );
29 ATH_CHECK( m_timeKey.initialize() );
30 ATH_CHECK( m_qualityKey.initialize() );
31 ATH_CHECK( m_typeKey.initialize() );
32 ATH_CHECK( m_moduleKey.initialize() );
33 ATH_CHECK( m_channelKey.initialize() );
34 ATH_CHECK( m_etaKey.initialize(m_saveEtaPhi) );
35 ATH_CHECK( m_phiKey.initialize(m_saveEtaPhi) );
36
37 ATH_CHECK( detStore()->retrieve (m_tileTBID) );
38
39 return StatusCode::SUCCESS;
40 }
41
42
43 StatusCode MbtsToVectorsTool::addBranches(const EventContext& ctx) const {
44
45
47 ATH_CHECK( energy.record(std::make_unique<std::vector<float> >()) );
48 energy->reserve(MAX_MBTS_COUNTER);
49
51 ATH_CHECK( time.record(std::make_unique<std::vector<float> >()) );
52 time->reserve(MAX_MBTS_COUNTER);
53
55 ATH_CHECK( quality.record(std::make_unique<std::vector<int> >()) );
56 quality->reserve(MAX_MBTS_COUNTER);
57
59 ATH_CHECK( module.record(std::make_unique<std::vector<int> >()) );
60 module->reserve(MAX_MBTS_COUNTER);
61
63 ATH_CHECK( type.record(std::make_unique<std::vector<int> >()) );
64 type->reserve(MAX_MBTS_COUNTER);
65
67 ATH_CHECK( channel.record(std::make_unique<std::vector<int> >()) );
68 channel->reserve(MAX_MBTS_COUNTER);
69
71 ATH_CHECK( tileCells.isValid() );
72
73 if (m_saveEtaPhi) {
75 ATH_CHECK( eta.record(std::make_unique<std::vector<float> >()) );
76 eta->reserve(MAX_MBTS_COUNTER);
77
79 ATH_CHECK( phi.record(std::make_unique<std::vector<float> >()) );
80 phi->reserve(MAX_MBTS_COUNTER);
81
82 for ( const TileCell* cell : *tileCells ){
83 energy->push_back( cell->energy() );
84 eta->push_back( cell->eta() );
85 phi->push_back( cell->phi() );
86 time->push_back( cell->time() );
87 quality->push_back(cell->quality() );
88 module->push_back(m_tileTBID->module( cell->ID() ) );
89 type->push_back(m_tileTBID->type( cell->ID() ) );
90 channel->push_back(m_tileTBID->channel( cell->ID() ) );
91 }
92
93 } else {
94
95 for ( const TileCell* cell : *tileCells ){
96 energy->push_back( cell->energy() );
97 time->push_back( cell->time() );
98 quality->push_back(cell->quality() );
99 module->push_back(m_tileTBID->module( cell->ID() ) );
100 type->push_back(m_tileTBID->type( cell->ID() ) );
101 channel->push_back(m_tileTBID->channel( cell->ID() ) );
102 }
103
104 }
105
106 return StatusCode::SUCCESS;
107 }
108
109}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
Helpers for checking error return status codes and reporting errors.
Handle class for reading from StoreGate.
Handle class for recording to StoreGate.
SG::WriteHandleKey< std::vector< int > > m_typeKey
SG::WriteHandleKey< std::vector< int > > m_moduleKey
SG::WriteHandleKey< std::vector< int > > m_qualityKey
SG::WriteHandleKey< std::vector< float > > m_etaKey
SG::ReadHandleKey< TileCellContainer > m_cellContainerKey
virtual StatusCode addBranches(const EventContext &ctx) const override final
virtual StatusCode initialize() override final
SG::WriteHandleKey< std::vector< float > > m_energyKey
SG::WriteHandleKey< std::vector< float > > m_phiKey
SG::WriteHandleKey< std::vector< int > > m_channelKey
SG::WriteHandleKey< std::vector< float > > m_timeKey
static const unsigned int MAX_MBTS_COUNTER
virtual bool isValid() override final
Can the handle be successfully dereferenced?
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
THE reconstruction tool.