ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1::L1CaloMonitoringCaloTool Class Reference

#include <L1CaloMonitoringCaloTool.h>

Inheritance diagram for LVL1::L1CaloMonitoringCaloTool:
Collaboration diagram for LVL1::L1CaloMonitoringCaloTool:

Public Member Functions

 L1CaloMonitoringCaloTool (const std::string &name)
 Create a proper constructor for Athena.
virtual ~L1CaloMonitoringCaloTool ()
 destructor
 L1CaloMonitoringCaloTool ()=delete
 delete the big 4
 L1CaloMonitoringCaloTool (const L1CaloMonitoringCaloTool &rhs)=delete
 L1CaloMonitoringCaloTool (L1CaloMonitoringCaloTool &&rhs)=delete
L1CaloMonitoringCaloTooloperator= (const L1CaloMonitoringCaloTool &rhs)=delete
virtual StatusCode initialize ()
 Dummy implementation of the initialisation function.
virtual StatusCode finalize ()
StatusCode loadCaloCells ()
 Declare the interface that the class provides.
float et (const Identifier &ttid) const
float caloQuality (const Identifier &ttid) const
virtual void print () const
 Print the state of the tool.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

int towerIndex (const Identifier &ttId) const
int region (const int index) const
int etaBin (const int index) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
ToolHandle< LVL1::IL1CaloMatchCell2Towerm_cellMatch { this, "L1CaloMatchCell2Tower", "LVL1::L1CaloMatchCell2Tower", "L1CaloMatchCell2Tower" }
const CaloLVL1_IDm_lvl1Helper
std::string m_caloCellContainerName
std::vector< float > m_energySums
std::vector< float > m_quality
std::vector< float > m_denom
std::vector< float > m_sinTh
std::vector< unsigned int > m_cellIds
std::vector< int > m_ttIdx
unsigned int m_maxCells
int m_events
int m_lastRun
int m_lastEvent
int m_sideOffset
int m_layerOffset
std::vector< int > m_binOffset
std::vector< int > m_indexOffset
std::vector< int > m_etaShift
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Static Private Attributes

static const int s_maxTowers = 7168
static const int s_nregions = 4
static const int s_nsinThBins = 33

Detailed Description

Definition at line 36 of file L1CaloMonitoringCaloTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ L1CaloMonitoringCaloTool() [1/4]

LVL1::L1CaloMonitoringCaloTool::L1CaloMonitoringCaloTool ( const std::string & name)

Create a proper constructor for Athena.

constructor

Definition at line 42 of file L1CaloMonitoringCaloTool.cxx.

42 :
43 asg::AsgTool( name ),
44 m_lvl1Helper(nullptr),
46 m_events(0),
47 m_lastRun(0),
48 m_lastEvent(0),
49 m_sideOffset(0),
54/*---------------------------------------------------*/
55{
56 declareProperty("CaloCellContainer", m_caloCellContainerName = "AllCalo");
57 declareProperty("MappingVectorSize", m_maxCells = 188080);
58}
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ ~L1CaloMonitoringCaloTool()

virtual LVL1::L1CaloMonitoringCaloTool::~L1CaloMonitoringCaloTool ( )
inlinevirtual

destructor

Definition at line 45 of file L1CaloMonitoringCaloTool.h.

45{}

◆ L1CaloMonitoringCaloTool() [2/4]

LVL1::L1CaloMonitoringCaloTool::L1CaloMonitoringCaloTool ( )
delete

delete the big 4

◆ L1CaloMonitoringCaloTool() [3/4]

LVL1::L1CaloMonitoringCaloTool::L1CaloMonitoringCaloTool ( const L1CaloMonitoringCaloTool & rhs)
delete

◆ L1CaloMonitoringCaloTool() [4/4]

LVL1::L1CaloMonitoringCaloTool::L1CaloMonitoringCaloTool ( L1CaloMonitoringCaloTool && rhs)
delete

Member Function Documentation

◆ caloQuality()

float LVL1::L1CaloMonitoringCaloTool::caloQuality ( const Identifier & ttid) const
virtual

Implements LVL1::IL1CaloMonitoringCaloTool.

Definition at line 282 of file L1CaloMonitoringCaloTool.cxx.

283{
284 float q = -1e6;
285 const int index = towerIndex(ttId);
286 if (index < s_maxTowers) q = m_quality[index];
287 return q;
288}
int towerIndex(const Identifier &ttId) const
str index
Definition DeMoScan.py:362

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ et()

float LVL1::L1CaloMonitoringCaloTool::et ( const Identifier & ttid) const
virtual

Implements LVL1::IL1CaloMonitoringCaloTool.

Definition at line 272 of file L1CaloMonitoringCaloTool.cxx.

273{
274 float e = 0.;
275 const int index = towerIndex(ttId);
276 if (index < s_maxTowers) e = m_energySums[index];
277 return e;
278}

◆ etaBin()

int LVL1::L1CaloMonitoringCaloTool::etaBin ( const int index) const
private

Definition at line 325 of file L1CaloMonitoringCaloTool.cxx.

326{
327 int bin = 0;
328 int ix = index;
329 if (ix >= m_layerOffset) ix -= m_layerOffset;
330 if (ix >= m_sideOffset) ix -= m_sideOffset;
331 for (int r = s_nregions-1; r >= 0; --r) {
332 if (ix >= m_indexOffset[r]) {
333 const int ieta = (ix - m_indexOffset[r])>>(m_etaShift[r]);
334 bin = m_binOffset[r] + ieta;
335 break;
336 }
337 }
338 return bin;
339}
int r
Definition globals.cxx:22

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode LVL1::L1CaloMonitoringCaloTool::finalize ( )
virtual

Definition at line 129 of file L1CaloMonitoringCaloTool.cxx.

131{
132 return StatusCode::SUCCESS;
133}

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void * ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119 {
120
121#ifdef XAOD_STANDALONE
122 // In case we use @c xAOD::TEvent, we have a direct function call
123 // for this.
124 return evtStore()->event()->getKey( ptr );
125#else
126 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127 return ( proxy == nullptr ? 0 : proxy->sgkey() );
128#endif // XAOD_STANDALONE
129 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ getName()

const std::string & asg::AsgTool::getName ( const void * ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106 {
107
108#ifdef XAOD_STANDALONE
109 // In case we use @c xAOD::TEvent, we have a direct function call
110 // for this.
111 return evtStore()->event()->getName( ptr );
112#else
113 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114 static const std::string dummy = "";
115 return ( proxy == nullptr ? dummy : proxy->name() );
116#endif // XAOD_STANDALONE
117 }

◆ getProperty()

template<class T>
const T * asg::AsgTool::getProperty ( const std::string & name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode LVL1::L1CaloMonitoringCaloTool::initialize ( void )
virtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 61 of file L1CaloMonitoringCaloTool.cxx.

63{
64 ATH_MSG_INFO("Initializing " << name());
65
66 ATH_CHECK( m_cellMatch.retrieve() );
67
69
70 // Get LVL1 idhelper from detector store
71 const CaloLVL1_ID* lvl1_id = 0;
72 sc = detStore()->retrieve(lvl1_id, "CaloLVL1_ID");
73 if (sc.isFailure() || !lvl1_id) {
74 ATH_MSG_ERROR("Could not get CaloLVL1_ID helper !");
75 return sc;
76 }
77 else {
78 m_lvl1Helper = static_cast<const CaloLVL1_ID*> (lvl1_id);
79 }
80
81 // Set up cell to tt mapping arrays
82 const unsigned int maxCaloCells = 188080;
83 if (m_maxCells > maxCaloCells) m_maxCells = maxCaloCells;
84 if (m_maxCells > 0) {
85 m_cellIds.reserve(m_maxCells);
86 m_cellIds.assign(m_maxCells, 0);
87 m_ttIdx.reserve(m_maxCells);
88 m_ttIdx.assign(m_maxCells, 0);
89 }
91 m_quality.reserve(s_maxTowers);
92 m_denom.reserve(s_maxTowers);
93
94 // Set up arrays for indexing and sinTh
95 int binsEta[s_nregions] = { 25, 3, 1, 4 };
96 int binsPhi[s_nregions] = { 64, 32, 32, 16 };
97 double grans[s_nregions] = { 0.1, 0.2, 0.1, 0.425 };
98 double etaOffset[s_nregions] = { 0., 2.5, 3.1, 3.2 };
99 int bin = 0;
100 for (int r = 0; r < s_nregions; ++r) {
101 if (r == 0) {
102 m_binOffset[r] = 0;
103 m_indexOffset[r] = 0;
104 } else {
105 m_binOffset[r] = binsEta[r-1] + m_binOffset[r-1];
106 m_indexOffset[r] = binsEta[r-1]*binsPhi[r-1] + m_indexOffset[r-1];
107 }
108 m_etaShift[r] = 0;
109 int shift = binsPhi[r] - 1;
110 while (shift) {
111 m_etaShift[r]++;
112 shift>>=1;
113 }
114 for (int i = 0; i < binsEta[r]; ++i) {
115 double eta = etaOffset[r] + (i+0.5)*grans[r];
116 m_sinTh[bin++] = 1./(1000.*std::cosh(eta)); // include MeV->GeV conversion
117 }
118 }
119 m_sideOffset = binsEta[s_nregions-1]*binsPhi[s_nregions-1] + m_indexOffset[s_nregions-1];
121
122 ATH_CHECK( m_cablingKey.initialize() );
123
124 return StatusCode::SUCCESS;
125
126}
Scalar eta() const
pseudorapidity method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
static Double_t sc
const ServiceHandle< StoreGateSvc > & detStore() const
ToolHandle< LVL1::IL1CaloMatchCell2Tower > m_cellMatch
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
std::vector< unsigned int > m_cellIds
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ loadCaloCells()

StatusCode LVL1::L1CaloMonitoringCaloTool::loadCaloCells ( )
virtual

Declare the interface that the class provides.

Implements LVL1::IL1CaloMonitoringCaloTool.

Definition at line 136 of file L1CaloMonitoringCaloTool.cxx.

138{
139 const bool debug = msgLvl(MSG::DEBUG);
140 if (debug) {
141 ATH_MSG_DEBUG("in loadCaloCells()");
142 }
143
145
146 // Don't run more than once per event
147
148 const EventContext& ctx = Gaudi::Hive::currentContext();
149 int eventNumber = ctx.eventID().event_number();
150 int runNumber = ctx.eventID().run_number();
151 if (eventNumber == m_lastEvent && runNumber == m_lastRun) {
152 return StatusCode::SUCCESS;
153 }
156
157 // Retreive Calo Cell collection from SG
158
159 const CaloCellContainer* caloCellContainer = 0;
160 sc = evtStore()->retrieve(caloCellContainer, m_caloCellContainerName);
161 if(!sc.isSuccess() || !caloCellContainer) {
162 ATH_MSG_WARNING("No CaloCellContainer found at AllCalo");
163 return StatusCode::SUCCESS;
164 }
165 ++m_events;
166
167 // Get Et and CaloQuality corresponding to TTs
168
169 CaloCellContainer::const_iterator CaloCellIterator = caloCellContainer->begin();
170 CaloCellContainer::const_iterator CaloCellIteratorEnd = caloCellContainer->end();
171 m_energySums.assign(s_maxTowers, 0.0);
172 m_quality.assign(s_maxTowers, 0.0);
173 m_denom.assign(s_maxTowers, 0.0);
174 unsigned int cellIdsIndex = 0;
175
176 SG::ReadCondHandle<LArOnOffIdMapping> cabling (m_cablingKey);
177
178 for (; CaloCellIterator != CaloCellIteratorEnd; ++CaloCellIterator) {
179
180 const CaloCell* caloCell(*CaloCellIterator);
181 const Identifier cellId(caloCell->ID());
182 const Identifier invalidId(0);
183 Identifier ttId1(0);
184 Identifier ttId2(0);
185
186 // Use cell ordering to avoid unnecessary calls to mapping tools
187
188 int index1 = s_maxTowers;
189 int index2 = s_maxTowers;
190 const unsigned int cellId32 = cellId.get_identifier32().get_compact();
191 if (m_events == 1) {
192 m_cellMatch->matchCell2Tower(**cabling, caloCell, ttId1, ttId2);
193 if (ttId1 != invalidId) index1 = towerIndex(ttId1);
194 if (ttId2 != invalidId) index2 = towerIndex(ttId2);
195 if (cellIdsIndex < m_maxCells-1) {
196 m_cellIds[cellIdsIndex] = cellId32;
197 m_ttIdx[cellIdsIndex++] = index1;
198 if (ttId2 != invalidId) {
199 m_cellIds[cellIdsIndex] = cellId32;
200 m_ttIdx[cellIdsIndex++] = index2;
201 }
202 }
203 } else {
204 if ((cellIdsIndex < m_maxCells-1) && (m_cellIds[cellIdsIndex] == cellId32)) {
205 index1 = m_ttIdx[cellIdsIndex++];
206 if (m_cellIds[cellIdsIndex] == cellId32) index2 = m_ttIdx[cellIdsIndex++];
207 } else {
208 m_cellMatch->matchCell2Tower(**cabling, caloCell, ttId1, ttId2);
209 if (ttId1 != invalidId) index1 = towerIndex(ttId1);
210 if (ttId2 != invalidId) index2 = towerIndex(ttId2);
211 }
212 }
213
214 // Get Et/Energy and CaloQuality
215
216 if (index1 < s_maxTowers) {
217 const float energy = caloCell->energy();
218 const CaloDetDescrElement* caloDDE = caloCell->caloDDE();
219 if (index2 < s_maxTowers) { // Tile D cells
220 const float energy2 = energy*0.5;
221 m_energySums[index1] += energy2;
222 m_energySums[index2] += energy2;
223 const TileCell* tileCell = dynamic_cast<const TileCell*>(caloCell);
224 if (tileCell && (tileCell->provenance() & 0x8080)) {
225 const float qual = energy2 * std::max(tileCell->qual1(), tileCell->qual2());
228 m_denom[index1] += energy2;
229 m_denom[index2] += energy2;
230 }
231 } else {
232 if (caloDDE->is_lar_fcal()) {
233 m_energySums[index1] += energy*caloDDE->sinTh();
234 } else m_energySums[index1] += energy;
235 if (caloDDE->is_tile()) {
236 const TileCell* tileCell = dynamic_cast<const TileCell*>(caloCell);
237 if (tileCell && (tileCell->provenance() & 0x8080)) {
238 m_quality[index1] += energy * std::max(tileCell->qual1(), tileCell->qual2());
240 }
241 } else {
242 if (caloCell->provenance() & 0x2000) {
243 m_quality[index1] += (energy * caloCell->quality());
245 }
246 }
247 }
248 }
249 }
250
251 // Compute final quantities
252
253 for (int index = 0; index < s_maxTowers; ++index) {
254 if (region(index) == 3) { // FCAL
255 m_energySums[index] *= 1e-3;
256 } else {
257 const int bin = etaBin(index);
259 }
260 if ( m_denom[index] != 0.) {
262 } else {
263 m_quality[index] = -1e6; // error value
264 }
265 }
266
267 return StatusCode::SUCCESS;
268}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static const ITkStripOnlineId invalidId
const bool debug
bool msgLvl(const MSG::Level lvl) const
uint16_t provenance() const
get provenance (data member)
Definition CaloCell.h:354
float sinTh() const
for algorithm working in transverse Energy
bool is_lar_fcal() const
cell belongs to FCAL
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
uint8_t qual1(void) const
get quality of first PMT (data member)
Definition TileCell.h:197
uint8_t qual2(void) const
get quality of second PMT (data member)
Definition TileCell.h:200

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101 {
102
103 return MSG::name( msg().level() );
104 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ operator=()

L1CaloMonitoringCaloTool & LVL1::L1CaloMonitoringCaloTool::operator= ( const L1CaloMonitoringCaloTool & rhs)
delete

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ print()

◆ region()

int LVL1::L1CaloMonitoringCaloTool::region ( const int index) const
private

Definition at line 308 of file L1CaloMonitoringCaloTool.cxx.

309{
310 int rg = 0;
311 int ix = index;
312 if (ix >= m_layerOffset) ix -= m_layerOffset;
313 if (ix >= m_sideOffset) ix -= m_sideOffset;
314 for (int r = s_nregions-1; r >= 0; --r) {
315 if (ix >= m_indexOffset[r]) {
316 rg = r;
317 break;
318 }
319 }
320 return rg;
321}

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ towerIndex()

int LVL1::L1CaloMonitoringCaloTool::towerIndex ( const Identifier & ttId) const
private

Definition at line 292 of file L1CaloMonitoringCaloTool.cxx.

293{
294 const int side = m_lvl1Helper->pos_neg_z(ttId);
295 const int layer = m_lvl1Helper->sampling(ttId);
296 const int region = m_lvl1Helper->region(ttId);
297 const int ieta = m_lvl1Helper->eta(ttId);
298 const int iphi = m_lvl1Helper->phi(ttId);
299 int index = 0;
300 index = m_indexOffset[region] + (ieta<<(m_etaShift[region])) + iphi;
301 if (side < 0) index += m_sideOffset;
302 if (layer > 0) index += m_layerOffset;
303 return index;
304}
@ layer
Definition HitInfo.h:79

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_binOffset

std::vector<int> LVL1::L1CaloMonitoringCaloTool::m_binOffset
private

Definition at line 87 of file L1CaloMonitoringCaloTool.h.

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LVL1::L1CaloMonitoringCaloTool::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 65 of file L1CaloMonitoringCaloTool.h.

66{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};

◆ m_caloCellContainerName

std::string LVL1::L1CaloMonitoringCaloTool::m_caloCellContainerName
private

Definition at line 72 of file L1CaloMonitoringCaloTool.h.

◆ m_cellIds

std::vector<unsigned int> LVL1::L1CaloMonitoringCaloTool::m_cellIds
private

Definition at line 78 of file L1CaloMonitoringCaloTool.h.

◆ m_cellMatch

ToolHandle<LVL1::IL1CaloMatchCell2Tower> LVL1::L1CaloMonitoringCaloTool::m_cellMatch { this, "L1CaloMatchCell2Tower", "LVL1::L1CaloMatchCell2Tower", "L1CaloMatchCell2Tower" }
private

Definition at line 68 of file L1CaloMonitoringCaloTool.h.

69{ this, "L1CaloMatchCell2Tower", "LVL1::L1CaloMatchCell2Tower", "L1CaloMatchCell2Tower" };

◆ m_denom

std::vector<float> LVL1::L1CaloMonitoringCaloTool::m_denom
private

Definition at line 76 of file L1CaloMonitoringCaloTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_energySums

std::vector<float> LVL1::L1CaloMonitoringCaloTool::m_energySums
private

Definition at line 74 of file L1CaloMonitoringCaloTool.h.

◆ m_etaShift

std::vector<int> LVL1::L1CaloMonitoringCaloTool::m_etaShift
private

Definition at line 89 of file L1CaloMonitoringCaloTool.h.

◆ m_events

int LVL1::L1CaloMonitoringCaloTool::m_events
private

Definition at line 82 of file L1CaloMonitoringCaloTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_indexOffset

std::vector<int> LVL1::L1CaloMonitoringCaloTool::m_indexOffset
private

Definition at line 88 of file L1CaloMonitoringCaloTool.h.

◆ m_lastEvent

int LVL1::L1CaloMonitoringCaloTool::m_lastEvent
private

Definition at line 84 of file L1CaloMonitoringCaloTool.h.

◆ m_lastRun

int LVL1::L1CaloMonitoringCaloTool::m_lastRun
private

Definition at line 83 of file L1CaloMonitoringCaloTool.h.

◆ m_layerOffset

int LVL1::L1CaloMonitoringCaloTool::m_layerOffset
private

Definition at line 86 of file L1CaloMonitoringCaloTool.h.

◆ m_lvl1Helper

const CaloLVL1_ID* LVL1::L1CaloMonitoringCaloTool::m_lvl1Helper
private

Definition at line 70 of file L1CaloMonitoringCaloTool.h.

◆ m_maxCells

unsigned int LVL1::L1CaloMonitoringCaloTool::m_maxCells
private

Definition at line 80 of file L1CaloMonitoringCaloTool.h.

◆ m_quality

std::vector<float> LVL1::L1CaloMonitoringCaloTool::m_quality
private

Definition at line 75 of file L1CaloMonitoringCaloTool.h.

◆ m_sideOffset

int LVL1::L1CaloMonitoringCaloTool::m_sideOffset
private

Definition at line 85 of file L1CaloMonitoringCaloTool.h.

◆ m_sinTh

std::vector<float> LVL1::L1CaloMonitoringCaloTool::m_sinTh
private

Definition at line 77 of file L1CaloMonitoringCaloTool.h.

◆ m_ttIdx

std::vector<int> LVL1::L1CaloMonitoringCaloTool::m_ttIdx
private

Definition at line 79 of file L1CaloMonitoringCaloTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ s_maxTowers

const int LVL1::L1CaloMonitoringCaloTool::s_maxTowers = 7168
staticprivate

Definition at line 91 of file L1CaloMonitoringCaloTool.h.

◆ s_nregions

const int LVL1::L1CaloMonitoringCaloTool::s_nregions = 4
staticprivate

Definition at line 92 of file L1CaloMonitoringCaloTool.h.

◆ s_nsinThBins

const int LVL1::L1CaloMonitoringCaloTool::s_nsinThBins = 33
staticprivate

Definition at line 93 of file L1CaloMonitoringCaloTool.h.


The documentation for this class was generated from the following files: