ATLAS Offline Software
Loading...
Searching...
No Matches
GlobalSim::Egamma1_OnlineMapNbhood Class Reference

#include <Egamma1_OnlineMapNbhood.h>

Inheritance diagram for GlobalSim::Egamma1_OnlineMapNbhood:
Collaboration diagram for GlobalSim::Egamma1_OnlineMapNbhood:

Public Member Functions

 Egamma1_OnlineMapNbhood (const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize () override
 initialize function running before the first event
virtual StatusCode execute (const EventContext &) const override
 execute function running for every event
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
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 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

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

StatusCode findNeighborhoods_OnlineMap (const std::vector< const xAOD::eFexEMRoI * > &, const GlobalSim::GlobalLArCellContainer &, std::vector< bool > &, IOBitwise::eEmNbhoodTOBContainer &) const
 Function to produce mutliple windows from a vector of incoming eFeX RoIs.
StatusCode findNeighborhood_OnlineMap (const xAOD::eFexEMRoI *, const GlobalSim::GlobalLArCellContainer &, bool &, IOBitwise::eEmNbhoodTOBContainer &) const
 Function to produce a window from an incoming eFeX RoI.
bool findSeedCell (float, float, const GlobalSim::GlobalLArCellContainer &, Identifier &) const
 Function to find the seed cell for a window from the eFeX RoI position.
bool findHalfStrips (int, float, float, const GlobalSim::GlobalLArCellContainer &, Identifier &) const
 Function to search for seed cells according to local granularity.
StatusCode findWindow (IdentifierHash, float, const GlobalSim::GlobalLArCellContainer &, std::vector< std::vector< std::shared_ptr< const GlobalSim::GlobalLArCell > > > &) const
 Function to produce a window around an input seed cell.
StatusCode findMaxima (IdentifierHash &, std::vector< std::vector< std::shared_ptr< const GlobalSim::GlobalLArCell > > > &) const
 Function to find the maximum energy cell in a window.
std::shared_ptr< const GlobalLArCellfindMax (std::vector< std::shared_ptr< const GlobalLArCell > > &) const
 Function to find the maximum energy cell in a vector of cells.
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

const CaloCell_IDm_calocell_id {}
const LArEM_IDm_larem_id {}
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey
 ReadHandle Key for the EventInfo object.
ToolHandle< eFexRoIAlgToolm_roiAlgTool
 ToolHandle for the eFexRoI AlgTool.
SG::ReadHandleKey< GlobalSim::GlobalLArCellContainerm_gblLArCellContainerKey
 ReadHandle Key to the GlobalLArCellContainer.
SG::WriteHandleKey< std::vector< float > > m_eFEXetaKey
 WriteHandle Key for the eFexRoI's eta (for valid windows, for DEBUG).
SG::WriteHandleKey< std::vector< float > > m_eFEXphiKey
 WriteHandle Key for the eFexRoI's phi (for valid windows, for DEBUG).
SG::WriteHandleKey< std::vector< float > > m_FailedeFEXetaKey
 WriteHandle Key for the eFexRoI's eta (for invalid windows, for DEBUG).
SG::WriteHandleKey< std::vector< float > > m_FailedeFEXphiKey
 WriteHandle Key for the eFexRoI's phi (for invalid windows, for DEBUG).
SG::WriteHandleKey< IOBitwise::eEmNbhoodTOBContainerm_neighKey
 WriteHandle Key for the resulting TOBs.
Gaudi::Property< bool > m_dump
 Parameter to toggle dumping of full information window information.
Gaudi::Property< bool > m_dumpTerse
 Parameter to toggle dumping of brief information window information.
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
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

Detailed Description

Definition at line 35 of file Egamma1_OnlineMapNbhood.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ Egamma1_OnlineMapNbhood()

GlobalSim::Egamma1_OnlineMapNbhood::Egamma1_OnlineMapNbhood ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 29 of file Egamma1_OnlineMapNbhood.cxx.

29 :
30 AthReentrantAlgorithm(name, pSvcLocator){
31 }

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

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

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

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

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

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode GlobalSim::Egamma1_OnlineMapNbhood::execute ( const EventContext & ctx) const
overridevirtual

execute function running for every event

Definition at line 70 of file Egamma1_OnlineMapNbhood.cxx.

70 {
71
72 ATH_MSG_DEBUG ("Executing");
73
74 //Get EventInfo
75 SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey, ctx);
76 if(!eventInfo.isValid()) {
77 ATH_MSG_ERROR ("Error obtaining EventInfo object");
78 return StatusCode::FAILURE;
79 }
80
81 //Get GlobalLArCells
82 auto h_gblLArCells = SG::makeHandle(m_gblLArCellContainerKey, ctx);
83 CHECK(h_gblLArCells.isValid());
84 const auto & gblLArCells = *h_gblLArCells;
85 ATH_MSG_DEBUG(gblLArCells.size() <<"Cells read in");
86
87 //Get eFeXRoIs
88 std::vector<const xAOD::eFexEMRoI*> rois_in;
89 CHECK(m_roiAlgTool->RoIs(rois_in, ctx));
90 ATH_MSG_DEBUG(rois_in.size() << " RoI(s) read in");
91
92 //Remove the RoIs in the barrel/endcap crack region (hopefully temporary)
93 std::vector<const xAOD::eFexEMRoI*> rois;
94 for(auto roi:rois_in){
95 //Kill rois in the crack
96 if(std::abs(roi->eta()) >= 1.37 && std::abs(roi->eta()) <= 1.52) continue;
97 ATH_MSG_DEBUG ("Roi et " << roi->et());
98 rois.push_back(roi);
99 }
100
101 // find GlobalLArCells in the neighborhood of RoIs.
102 // A neighborhood is a collection of CellData objects which
103 // contain cell eta, phi and Et.
104
105 //Setup a container of TOBs with associated GlobalLArCell windows
106 auto neighborhoodTOBs = std::make_unique<IOBitwise::eEmNbhoodTOBContainer>();
107 //Flags for window finding success/failure
108 std::vector<bool> successes;
109
110 //Finw the windows for all of the valid incoming RoIs
111 CHECK(findNeighborhoods_OnlineMap(rois, gblLArCells, successes, *neighborhoodTOBs));
112
113 //Setup output for eFeXRoI eta/phi debug variables
114 SG::WriteHandle<std::vector<float> > h_eFEXeta(m_eFEXetaKey, ctx);
115 CHECK(h_eFEXeta.record(std::make_unique<std::vector<float> >()));
116 SG::WriteHandle<std::vector<float> > h_eFEXphi(m_eFEXphiKey, ctx);
117 CHECK(h_eFEXphi.record(std::make_unique<std::vector<float> >()));
118
119 SG::WriteHandle<std::vector<float> > h_FailedeFEXeta(m_FailedeFEXetaKey, ctx);
120 CHECK(h_FailedeFEXeta.record(std::make_unique<std::vector<float> >()));
121 SG::WriteHandle<std::vector<float> > h_FailedeFEXphi(m_FailedeFEXphiKey, ctx);
122 CHECK(h_FailedeFEXphi.record(std::make_unique<std::vector<float> >()));
123
124
125 //Fill RoI eta/phi variables for valid windows
126 for(int i=0; auto success:successes){
127 if(success){
128 h_eFEXeta->push_back(rois[i]->eta());
129 h_eFEXphi->push_back(rois[i]->phi());
130 } else {
131 h_FailedeFEXeta->push_back(rois[i]->eta());
132 h_FailedeFEXphi->push_back(rois[i]->phi());
133 }
134 i++;
135 }
136
137 //Setup the write out of the resultant TOBs
138 SG::WriteHandle<GlobalSim::IOBitwise::eEmNbhoodTOBContainer> h_neighborhoodTOBs(m_neighKey, ctx);
139
140 //Dump the window/RoI information to local files (for DEBUG)
141 auto dumper = GlobalSim::LArStripNeighborhoodDumper();
142 if(m_dump || m_dumpTerse){
143 if (m_dump) {
144 CHECK(dumper.dump(name(), *eventInfo, *neighborhoodTOBs));
145 }
146
147 if (m_dumpTerse) {
148 CHECK(dumper.dumpTerse(name(), *eventInfo, *neighborhoodTOBs));
149 }
150 }
151
152 //Write out the TOBs
153 CHECK(h_neighborhoodTOBs.record(std::move(neighborhoodTOBs)));
154
155 return StatusCode::SUCCESS;
156 }
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
#define CHECK(...)
Evaluate an expression and check for errors.
ToolHandle< eFexRoIAlgTool > m_roiAlgTool
ToolHandle for the eFexRoI AlgTool.
SG::WriteHandleKey< std::vector< float > > m_eFEXphiKey
WriteHandle Key for the eFexRoI's phi (for valid windows, for DEBUG).
Gaudi::Property< bool > m_dumpTerse
Parameter to toggle dumping of brief information window information.
SG::WriteHandleKey< IOBitwise::eEmNbhoodTOBContainer > m_neighKey
WriteHandle Key for the resulting TOBs.
SG::WriteHandleKey< std::vector< float > > m_eFEXetaKey
WriteHandle Key for the eFexRoI's eta (for valid windows, for DEBUG).
SG::WriteHandleKey< std::vector< float > > m_FailedeFEXetaKey
WriteHandle Key for the eFexRoI's eta (for invalid windows, for DEBUG).
StatusCode findNeighborhoods_OnlineMap(const std::vector< const xAOD::eFexEMRoI * > &, const GlobalSim::GlobalLArCellContainer &, std::vector< bool > &, IOBitwise::eEmNbhoodTOBContainer &) const
Function to produce mutliple windows from a vector of incoming eFeX RoIs.
SG::WriteHandleKey< std::vector< float > > m_FailedeFEXphiKey
WriteHandle Key for the eFexRoI's phi (for invalid windows, for DEBUG).
Gaudi::Property< bool > m_dump
Parameter to toggle dumping of full information window information.
SG::ReadHandleKey< GlobalSim::GlobalLArCellContainer > m_gblLArCellContainerKey
ReadHandle Key to the GlobalLArCellContainer.
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
ReadHandle Key for the EventInfo object.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthCommonAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 89 of file AthCommonAlgorithm.cxx.

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterPassed()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }
virtual bool filterPassed(const EventContext &ctx) const
Get filter decision:

◆ findHalfStrips()

bool GlobalSim::Egamma1_OnlineMapNbhood::findHalfStrips ( int strip,
float eta,
float phi,
const GlobalSim::GlobalLArCellContainer & cells,
Identifier & CellID ) const
private

Function to search for seed cells according to local granularity.

Definition at line 345 of file Egamma1_OnlineMapNbhood.cxx.

349 {
350 //Initialise variables
351 bool found = false;
352 //For each supercell there are different numbers of strips, this finds the midpoints.
353 float half_strip = 0.025/strip/2;
354 //Define the "inwards" direction
355 //int sign = 1;
356 //if(eta < 0) sign = -1;
357 int sign = std::copysign(1, eta);
358 int halt = strip-1;
359 //Starting at the inner centre strip, step through the allowed strips to find the
360 //seed cell.
361 for(int i=1;i<=halt;i+=2){
362 found = findSeedCell(eta-(i*half_strip*sign), phi, cells, CellID);
363 if(found) {
364 ATH_MSG_DEBUG("We found it! Going in by " << (i+1)/2 << " eta: " << eta-(i*half_strip) << " phi: " << phi);
365 return found;
366 }
367 }
368 //If we didn't find the strip going inwards, look outwards instead.
369 if(!found){
370 for(int i=1;i<=halt;i+=2){
371 found = findSeedCell(eta+(i*half_strip*sign), phi, cells, CellID);
372 if(found) {
373 ATH_MSG_DEBUG("We found it! Going out " << (i+1)/2 << " eta: " << eta+(i*half_strip) << " phi: " << phi);
374 return found;
375 }
376 }
377 }
378 //Return if we failed to find a strip.
379 return found;
380 }
int sign(int a)
bool findSeedCell(float, float, const GlobalSim::GlobalLArCellContainer &, Identifier &) const
Function to find the seed cell for a window from the eFeX RoI position.

◆ findMax()

std::shared_ptr< const GlobalLArCell > GlobalSim::Egamma1_OnlineMapNbhood::findMax ( std::vector< std::shared_ptr< const GlobalLArCell > > & row) const
private

Function to find the maximum energy cell in a vector of cells.

Definition at line 589 of file Egamma1_OnlineMapNbhood.cxx.

589 {
590 auto it = std::max_element(std::begin(row),
591 std::end(row),
592 [](const auto& l,const auto& r) {
593 return l->getEnergy() < r->getEnergy();
594 });
595
596 std::shared_ptr<const GlobalLArCell> max_cell{*it};
597 return max_cell;
598 }
int r
Definition globals.cxx:22
l
Printing final latex table to .tex output file.

◆ findMaxima()

StatusCode GlobalSim::Egamma1_OnlineMapNbhood::findMaxima ( IdentifierHash & hashId,
std::vector< std::vector< std::shared_ptr< const GlobalSim::GlobalLArCell > > > & window ) const
private

Function to find the maximum energy cell in a window.

Definition at line 562 of file Egamma1_OnlineMapNbhood.cxx.

563 {
564
565 //Vector to hold each row's maximum
566 std::vector<std::shared_ptr<const GlobalLArCell>> maxima;
567 //Loop over the rows and find each maximum energy cell.
568 for(uint row = 0;row < window.size();row++){
569 auto max_cell = Egamma1_OnlineMapNbhood::findMax(window[row]);
570 maxima.push_back(max_cell);
571 ATH_MSG_DEBUG("Found a max cell " << max_cell->getID() << " et " << max_cell->getEnergy() << " eta " << max_cell->eta() << " phi " << max_cell->phi());
572 }
573 //If we have two equal maxima, then take the middle row to be consistent.
574 if((maxima[0]->getEnergy() == maxima[1]->getEnergy() && maxima[1]->getEnergy() >= maxima[2]->getEnergy())
575 || (maxima[1]->getEnergy() == maxima[2]->getEnergy() && maxima[1]->getEnergy() >= maxima[0]->getEnergy())){
576 ATH_MSG_DEBUG("Found the max cell " << maxima[1]->getID() << " et " << maxima[1]->getEnergy() << " eta " << maxima[1]->eta() << " phi " << maxima[1]->phi());
577 hashId = m_calocell_id->calo_cell_hash(static_cast<Identifier>(maxima[1]->getID()));
578 return StatusCode::SUCCESS;
579 } else {
580 //Otherwise just take the maximum cell.
581 auto maximum_cell = Egamma1_OnlineMapNbhood::findMax(maxima);
582 ATH_MSG_DEBUG("Found the max cell " << maximum_cell->getID() << " et " << maximum_cell->getEnergy() << " eta " << maximum_cell->eta() << " phi " << maximum_cell->phi());
583 hashId = m_calocell_id->calo_cell_hash(static_cast<Identifier>(maximum_cell->getID()));
584 return StatusCode::SUCCESS;
585 }
586 }
unsigned int uint
std::shared_ptr< const GlobalLArCell > findMax(std::vector< std::shared_ptr< const GlobalLArCell > > &) const
Function to find the maximum energy cell in a vector of cells.
row
Appending html table to final .html summary file.

◆ findNeighborhood_OnlineMap()

StatusCode GlobalSim::Egamma1_OnlineMapNbhood::findNeighborhood_OnlineMap ( const xAOD::eFexEMRoI * roi,
const GlobalSim::GlobalLArCellContainer & cells,
bool & success,
IOBitwise::eEmNbhoodTOBContainer & neighborhoodTOBs ) const
private

Function to produce a window from an incoming eFeX RoI.

Definition at line 213 of file Egamma1_OnlineMapNbhood.cxx.

216 {
217
218 // Form the window, and set the vector sizes.
219 auto window = std::vector<std::vector<std::shared_ptr<const GlobalLArCell>>>(3);
220 window[0].resize(17);
221 window[1].resize(17);
222 window[2].resize(17);
223
224 //Setup variables
225 Identifier CellID;
226 float etaCheck = roi->eta();
227 float phiCheck = roi->phi();
228 bool found = false;
229 int strip = 0;
230
231 //Tower position to find strip granularity
232 int iEta = roi->iEta();
233 int iPhi = roi->iPhi();
234 ATH_MSG_DEBUG("Where is this RoI? eta: " << etaCheck << " phi: " << phiCheck << " iEta" << iEta << " iPhi " << iPhi);
235 //There are 1 strips per 0.025 supercell at the edge.
236 //Shouldn't need to shift these?
237 if(iEta == -25 || iEta == 24) {
238 //Just use the eta/phi as is, becasue there is only one strip here.
239 found = findSeedCell(etaCheck, phiCheck, cells, CellID);
240 }
241 //There are 4 strips per 0.025 in these towers
242 else if((iEta > -25 && iEta <= -21) || (iEta < 24 && iEta >= 20)){
243 strip = 4;
244 }
245 //There are 6 strips per 0.025 in these towers
246 else if((iEta > -21 && iEta <= -19) || (iEta < 20 && iEta >= 18)) {
247 strip = 6;
248 }
249 //There are 8 strips per 0.025 in these towers, apart from the crack region where
250 //here be dragons. The crack region is not currently dealt with.
251 else if((iEta > -19 && iEta <=-1) || (iEta < 18 && iEta >=0)) {
252 strip = 8;
253 } else {
254 //We shouldn't get here, but just in case...
255 ATH_MSG_WARNING("Where are we? eta " << etaCheck << " phi " << phiCheck);
256 }
257 //
258 if(strip != 0){
259 //Send the number of strips information along with the eta/phi supercell.
260 found = findHalfStrips(strip, etaCheck, phiCheck, cells, CellID);
261 }
262
263 //If we successfully found the seed cell, then continue.
264 if(found){
265 int ibec = abs(m_larem_id->barrel_ec(CellID)); // 1 barrel 2 EC OW 3 EC IW
266 int sampling = m_larem_id->sampling(CellID);
267 int eta = m_larem_id->eta(CellID);
268 int phi = m_larem_id->phi(CellID);
269 int region = m_larem_id->region(CellID);
270
271 ATH_MSG_DEBUG("Where is this Seed? B/E? " << ibec << " sampling " << sampling << " eta " << eta << " phi " << phi << " region " << region);
272
273 //Need the hash for the neighbours
274 IdentifierHash hashId=m_calocell_id->calo_cell_hash(CellID);
275 IdentifierHash hashIdMax=hashId;
276 //Find the initial 17x3 eta/phi window
277 ATH_CHECK(findWindow(hashId, etaCheck, cells, window));
278 //Find the maxima in the window (only once!)
279 ATH_CHECK(findMaxima(hashIdMax, window));
280 /*Find the new 17x3 eta/phi window around this maxima
281 Don't need to if the max is the seed already */
282 if(hashIdMax != hashId){
283 ATH_CHECK(findWindow(hashIdMax, etaCheck, cells, window));
284 }
285
286 //Rediscover the maximum energy cell
287 auto it = std::ranges::max_element(std::begin(window[1]),
288 std::end(window[1]),
289 [](const auto& l,const auto& r) {
290 return l->getEnergy() < r->getEnergy();
291 });
292
293 std::shared_ptr<const GlobalLArCell> max_cell{*it};
294
295 //Function to fill the StripData for the neighbourhood
296 auto toStripData = [](const auto& fromCells){
297 auto stripdata = std::vector<StripData>();
298 stripdata.reserve(fromCells.size());
299 std::ranges::transform(std::begin(fromCells),
300 std::end(fromCells),
301 back_inserter(stripdata),
302 [](const auto& c) {
303 return StripData(c->eta(),
304 c->phi(),
305 c->getEnergy());});
306 return stripdata;
307 };
308
309 //Check that we didn't lose the maximum energy cell
310 auto max_neigh_cell_it = std::ranges::find(window[1],
311 max_cell);
312 if (max_neigh_cell_it == std::end(window[1])){
313 ATH_MSG_ERROR("Lost the max cell");
314 return StatusCode::FAILURE;
315 }
316
317 //Find the position of the maximum energy cell in the neighbourhood.
318 auto max_neigh_cell_pos{std::distance(std::begin(window[1]),
319 max_neigh_cell_it)};
320
321 //Fill the StripData vectors
322 auto low = toStripData(window[0]);
323 auto center = toStripData(window[1]);
324 auto high = toStripData(window[2]);
325
326 //Fill the neighbourhood seed roi, and maximum cell positions.
327 Coords roi_c{roi->eta(), roi->phi()};
328 Coords cell_c{max_cell->eta(), max_cell->phi()};
329
330 //Form the neighbourhood
331 LArStripNeighborhood neighborhood = LArStripNeighborhood(low, center, high, roi_c, cell_c, max_neigh_cell_pos);
332
333 //Add the neighbourhood to the list.
334 neighborhoodTOBs.push_back(std::make_unique<IOBitwise::eEmNbhoodTOB>(*roi, neighborhood));
335 success = true;
336 } else {
337 //If we didn't find the window, then tell us about it.
338 ATH_MSG_DEBUG("Didn't find the RoI eta: " << roi->eta() << " phi: " << roi->phi());
339 }
340 return StatusCode::SUCCESS;
341 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
StatusCode findMaxima(IdentifierHash &, std::vector< std::vector< std::shared_ptr< const GlobalSim::GlobalLArCell > > > &) const
Function to find the maximum energy cell in a window.
StatusCode findWindow(IdentifierHash, float, const GlobalSim::GlobalLArCellContainer &, std::vector< std::vector< std::shared_ptr< const GlobalSim::GlobalLArCell > > > &) const
Function to produce a window around an input seed cell.
bool findHalfStrips(int, float, float, const GlobalSim::GlobalLArCellContainer &, Identifier &) const
Function to search for seed cells according to local granularity.
float eta() const
setter for the above
int iPhi() const
Setter for the above.
float phi() const
Seed supercell index within central tower (0 -> 3).
int iEta() const
setter for the above
std::pair< double, double > Coords
@ iPhi
Definition ParamDefs.h:47
setScale setgFexType iEta

◆ findNeighborhoods_OnlineMap()

StatusCode GlobalSim::Egamma1_OnlineMapNbhood::findNeighborhoods_OnlineMap ( const std::vector< const xAOD::eFexEMRoI * > & rois,
const GlobalSim::GlobalLArCellContainer & cells,
std::vector< bool > & successes,
IOBitwise::eEmNbhoodTOBContainer & neighborhoodTOBs ) const
private

Function to produce mutliple windows from a vector of incoming eFeX RoIs.

Definition at line 162 of file Egamma1_OnlineMapNbhood.cxx.

165 {
166
167 for (const auto& roi : rois) {
168 ATH_MSG_DEBUG("roi et " << roi->et());
169 bool success = false;
170 ATH_CHECK(findNeighborhood_OnlineMap(roi, cells, success, neighborhoodTOBs));
171 successes.push_back(success);
172 }
173
174 return StatusCode::SUCCESS;
175 }
StatusCode findNeighborhood_OnlineMap(const xAOD::eFexEMRoI *, const GlobalSim::GlobalLArCellContainer &, bool &, IOBitwise::eEmNbhoodTOBContainer &) const
Function to produce a window from an incoming eFeX RoI.

◆ findSeedCell()

bool GlobalSim::Egamma1_OnlineMapNbhood::findSeedCell ( float eta,
float phi,
const GlobalSim::GlobalLArCellContainer & cells,
Identifier & CellID ) const
private

Function to find the seed cell for a window from the eFeX RoI position.

Definition at line 386 of file Egamma1_OnlineMapNbhood.cxx.

388 {
389
390
391 CellID = cells.getIDFromLoc(eta, phi);
392 //Failing to find a match will return a default CellID
393 if((CellID.get_identifier32()).get_compact() != 0xffffffff){
394 ATH_MSG_DEBUG("Found the seed from MAP: " << CellID << " eta "<< eta << " phi " << phi);
395 return true;
396 }
397 ATH_MSG_DEBUG("Didn't find the seed from MAP: eta "<< eta << " phi " << phi);
398 return false;
399 }
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.

◆ findWindow()

StatusCode GlobalSim::Egamma1_OnlineMapNbhood::findWindow ( IdentifierHash hashId,
float eta,
const GlobalSim::GlobalLArCellContainer & cells,
std::vector< std::vector< std::shared_ptr< const GlobalSim::GlobalLArCell > > > & window ) const
private

Function to produce a window around an input seed cell.

Definition at line 403 of file Egamma1_OnlineMapNbhood.cxx.

406 {
407
408 // If we pass in a Dummy ID we cannot start the process, fail gracefully for now.
409 if(hashId == hashIdDummy) return StatusCode::SUCCESS;
410
411 //Setup container for found neighbours.
412 std::vector<IdentifierHash> neighbourList;
413 //Setup next/previous hashIDs
414 IdentifierHash hashIdNext;
415 IdentifierHash hashIdPrev;
416 //Initialise them to the input for the first loop.
417 hashIdNext = hashIdPrev = hashId;
418 //Position of the cell in each 17 long eta row. Defined by position in loop.
419 int shift = 0;
420 //Check if we have hit the edge of the detector.
421 float etaMax = eta;
422
423 ATH_MSG_DEBUG("Seed Hash: " << hashId);
424 //Start loop to fill the central row of the 17x3 eta/phi window.
425 for(int etaOffset = 0; etaOffset <=8; etaOffset++){
426 ATH_MSG_DEBUG("Offset: " << etaOffset);
427 //Rediscover the centre cell for the first step.
428 if(etaOffset == 0){
429 //This retrieves the cell from a hash map in the GlobalLArCell container.
430 auto cell = cells.getCellFromHash(hashId);
431 //Sanity check.
432 if(cell != nullptr){
433 //Fill the central neighbourhood position.
434 window[1][8] = cell;
435 ATH_MSG_DEBUG("Found the middle cell " << cell->getID() << " at eta " << cell->eta() << " phi " << cell->phi());
436 //Start defining where we are in eta.
437 etaMax = cell->eta();
438 } else {
439 //We didn't find the cell in the hash map. Put a dummy in the window.
440 ATH_MSG_DEBUG("Putting in a dummy middle cell with hashId " << hashId);
441 window[1][8] = std::make_shared<GlobalLArCell>(hashId,"",0);
442 //Potential issue if you cannot find the cell... but this cell would be the last in eta?
443 }
444 } else {
445 //If we are not at the edge, and were not previously at the edge. Then...
446 if(std::abs(etaMax) < 2.475 && hashIdNext != hashIdDummy){
447 //Use the previous hashIDNext to look for the next cell in eta
448 m_larem_id->get_neighbours(hashIdNext,LArNeighbours::nextInEta,neighbourList);
449 ATH_MSG_DEBUG("Next in eta " << neighbourList[0] << " HashId " << hashId);
450 //Grab the next cell hashID in eta and store it for the next step.
451 hashIdNext = neighbourList[0];
452 //Try to retrieve the cell from the hash map
453 auto cellNext = cells.getCellFromHash(hashIdNext);
454 //Define how steps we are away from the central cell
455 shift = 8+etaOffset;
456 //If the hash map contained the next cell.
457 if(cellNext != nullptr){
458 ATH_MSG_DEBUG("Found a cell " << cellNext->getID() << " at eta " << cellNext->eta() << " phi " << cellNext->phi());
459 //update the eta position
460 etaMax = cellNext->eta();
461 //Put the found cell in the window
462 window[1][shift] = cellNext;
463 } else {
464 //We didn't find the cell in the hash map. Put a dummy in the window.
465 ATH_MSG_DEBUG("Putting in a next dummy with hashIdNext " << hashIdNext);
466 window[1][shift] = std::make_shared<GlobalLArCell>(hashIdNext,"",0);
467 //Potential issue if you cannot find the cell... but this cell would be the last in eta?
468 }
469 } else {
470 //We are off the edge of the detector. Put in a Dummy cell to keep the window going.
471 shift = 8+etaOffset;
472 ATH_MSG_DEBUG("No next in eta: Putting in an empty DUMMY");
473 window[1][shift] = std::make_shared<GlobalLArCell>(hashIdDummy,"",0);
474 }
475 //Now go inwards, as above, but with prevInEta, and no need to pad for the edge of the detector.
476 m_larem_id->get_neighbours(hashIdPrev,LArNeighbours::prevInEta,neighbourList);
477 ATH_MSG_DEBUG("Previous in eta " << neighbourList[0] << " hashId " << hashId);
478 hashIdPrev = neighbourList[0];
479 auto cellPrev = cells.getCellFromHash(hashIdPrev);
480 shift = 8-etaOffset;
481 if(cellPrev != nullptr){
482 ATH_MSG_DEBUG("Found a cell " << cellPrev->getID() << " at eta " << cellPrev->eta() << " phi " << cellPrev->phi());
483 window[1][shift] = cellPrev;
484 } else {
485 ATH_MSG_DEBUG("Putting in a previous dummy with hasIdPrev " << hashIdPrev);
486 window[1][shift] = std::make_shared<GlobalLArCell>(hashIdPrev,"",0);
487 }
488 }
489 }
490
491 //We now have the central row. Loop to fill the phi rows above and below in phi.
492 for(int phiOffset = 0; phiOffset <=1; phiOffset++){
493 ATH_MSG_DEBUG("Offset: " << phiOffset);
494 //First do nextInPhi
495 if(phiOffset == 0){
496 shift = 0;
497 //Loop over the middle row.
498 for(auto& windowCell:window[1]){
499 ATH_MSG_DEBUG("Cell ID " << shift << " is " << windowCell->getID());
500 //If this isn't a Dummy cell
501 if(windowCell->getID() != hashIdDummy){
502 //Find the cell hashID from its offline ID.
503 IdentifierHash hashIdCurrent = m_calocell_id->calo_cell_hash(static_cast<Identifier>(windowCell->getID()));
504 //There are cases where the CellID is the hashID. Update the hash to this.
505 if(windowCell->getID() <= maxIdentifierHash) hashIdCurrent = windowCell->getID();
506 //Proceed as in eta, finding next in Phi.
507 m_larem_id->get_neighbours(hashIdCurrent,LArNeighbours::nextInPhi,neighbourList);
508 ATH_MSG_DEBUG("Next in phi " << neighbourList[0] << " hashId " << hashIdCurrent);
509 //Find the hashID and use it to look up the cell in the hash map.
510 hashIdCurrent = neighbourList[0];
511 auto cellCurrent = cells.getCellFromHash(hashIdCurrent);
512 //If we find the cell in the hash map
513 if(cellCurrent != nullptr){
514 //Put the cell in the window.
515 ATH_MSG_DEBUG("Found a cell " << cellCurrent->getID() << " at eta " << cellCurrent->eta() << " phi " << cellCurrent->phi());
516 window[0][shift] = cellCurrent;
517 } else {
518 //Put a dummy cell. No need to get the ID right here.
519 ATH_MSG_DEBUG("No next in phi: Last HashIdCurrent " << hashIdCurrent);
520 window[0][shift] = std::make_shared<GlobalLArCell>(hashIdDummy,"",0);
521 }
522 shift++;
523 } else {
524 //We found a Dummy in the middle row, put a dummy in next phi too.
525 ATH_MSG_DEBUG("No next in phi: Putting in a DUMMY");
526 window[0][shift] = std::make_shared<GlobalLArCell>(hashIdDummy,"",0);
527 shift++;
528 }
529 }
530 } else {
531 //Repeat the above for the previous row in Phi
532 shift = 0;
533 for(auto& windowCell:window[1]){
534 ATH_MSG_DEBUG("Cell ID " << shift << " is " << windowCell->getID());
535 if(windowCell->getID() != hashIdDummy){
536 IdentifierHash hashIdCurrent = m_calocell_id->calo_cell_hash(static_cast<Identifier>(windowCell->getID()));
537 if(windowCell->getID() <= maxIdentifierHash) hashIdCurrent = windowCell->getID();
538 m_larem_id->get_neighbours(hashIdCurrent,LArNeighbours::prevInPhi,neighbourList);
539 ATH_MSG_DEBUG("Previous in phi " << neighbourList[0] << " hashId " << hashIdCurrent);
540 hashIdCurrent = neighbourList[0];
541 auto cellCurrent = cells.getCellFromHash(hashIdCurrent);
542 if(cellCurrent != nullptr){
543 ATH_MSG_DEBUG("Found a cell " << cellCurrent->getID() << " at eta " << cellCurrent->eta() << " phi " << cellCurrent->phi());
544 window[2][shift] = cellCurrent;
545 } else {
546 ATH_MSG_DEBUG("No prev in phi: Putting in a DUMMY");
547 window[2][shift] = std::make_shared<GlobalLArCell>(hashIdDummy,"",0);
548 }
549 shift++;
550 } else {
551 ATH_MSG_DEBUG("No prev in phi: Putting in a DUMMY");
552 window[2][shift] = std::make_shared<GlobalLArCell>(hashIdDummy,"",0);
553 shift++;
554 }
555 }
556 }
557 }
558 return StatusCode::SUCCESS;
559 }
constexpr int maxIdentifierHash
constexpr IdentifierHash hashIdDummy
virtual void shift(size_t pos, ptrdiff_t offs) override
Shift the elements of the container.

◆ initialize()

StatusCode GlobalSim::Egamma1_OnlineMapNbhood::initialize ( )
overridevirtual

initialize function running before the first event

Definition at line 39 of file Egamma1_OnlineMapNbhood.cxx.

39 {
40 ATH_MSG_DEBUG ("Initializing " << name());
41
42 //Input keys
43 CHECK(m_eventInfoKey.initialize());
44 CHECK(m_gblLArCellContainerKey.initialize());
45 CHECK(m_roiAlgTool.retrieve());
46 //Output keys
47 CHECK(m_neighKey.initialize());
48 CHECK(m_eFEXetaKey.initialize());
49 CHECK(m_eFEXphiKey.initialize());
50 CHECK(m_FailedeFEXetaKey.initialize());
51 CHECK(m_FailedeFEXphiKey.initialize());
52
53 // retrieve ID helpers
54 ATH_CHECK(detStore()->retrieve(m_calocell_id, "CaloCell_ID"));
55
56 //Launch the calorimeter ID managers
57 const CaloIdManager* caloIdMgr = nullptr;
58 StatusCode sc = detStore()->retrieve(caloIdMgr);
59 if (sc.isFailure()) {
60 ATH_MSG_ERROR(" Unable to retrieve CaloIdManager from DetectoreStore");
61 return StatusCode::FAILURE;
62 }
63 m_larem_id = caloIdMgr->getEM_ID();
64
65 return StatusCode::SUCCESS;
66 }
static Double_t sc
const ServiceHandle< StoreGateSvc > & detStore() const
const LArEM_ID * getEM_ID(void) const
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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.

◆ isClonable()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::isClonable ( ) const
inlineoverridevirtualinherited

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented in AFP_DigiTop, AlgB, AlgT, BCM_Digitization, CscDigitBuilder, CscDigitToCscRDO, G4AtlasAlg, G4RunAlg, HGTD_Digitization, HiveAlgBase, InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ISF::SimKernelMT, ITk::StripDigitization, ITkPixelCablingAlg, ITkStripCablingAlg, LArHitEMapMaker, LArTTL1Maker, LUCID_DigiTop, LVL1::L1TopoSimulation, MergeCalibHits, MergeGenericMuonSimHitColl, MergeHijingPars, MergeMcEventCollection, MergeTrackRecordCollection, MergeTruthJets, MergeTruthParticles, MuonDigitizer, PileUpMTAlg, PixelDigitization, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_Digitization, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, SGInputLoader, Simulation::BeamEffectsAlg, TileHitVecToCnt, TileMuonFitter, TilePulseForTileMuonReceiver, TileRawChannelMaker, TRTDigitization, and ZDC_DigiTop.

Definition at line 68 of file AthCommonAlgorithm.h.

68 {
69 return true;
70 }

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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.

◆ 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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Set filter decision:

◆ sysExecute()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Reimplemented in AthAnalysisAlgorithm.

Definition at line 80 of file AthCommonAlgorithm.cxx.

41{
42 return BaseAlg::sysExecute (ctx);
43}

◆ sysInitialize()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, HypoBase, InputMakerBase, and PyAthena::Alg.

Definition at line 60 of file AthCommonAlgorithm.cxx.

71 {
73
74 if (sc.isFailure()) {
75 return sc;
76 }
77
78 ServiceHandle<ICondSvc> cs("CondSvc",name());
79 for (auto h : outputHandles()) {
80 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
81 // do this inside the loop so we don't create the CondSvc until needed
82 if ( cs.retrieve().isFailure() ) {
83 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
85 }
86 if (cs->regHandle(this,*h).isFailure()) {
88 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
89 << " with CondSvc");
90 }
91 }
92 }
93 return sc;
94}
virtual StatusCode sysInitialize() override
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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 }

Member Data Documentation

◆ m_calocell_id

const CaloCell_ID* GlobalSim::Egamma1_OnlineMapNbhood::m_calocell_id {}
private

Definition at line 47 of file Egamma1_OnlineMapNbhood.h.

47{};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dump

Gaudi::Property<bool> GlobalSim::Egamma1_OnlineMapNbhood::m_dump
private
Initial value:
{
this,
"dump",
false,
"flag to enable dumps"}

Parameter to toggle dumping of full information window information.

Definition at line 111 of file Egamma1_OnlineMapNbhood.h.

111 {
112 this,
113 "dump",
114 false,
115 "flag to enable dumps"};

◆ m_dumpTerse

Gaudi::Property<bool> GlobalSim::Egamma1_OnlineMapNbhood::m_dumpTerse
private
Initial value:
{
this,
"dumpTerse",
false,
"flag to enable terse dumps"}

Parameter to toggle dumping of brief information window information.

Definition at line 118 of file Egamma1_OnlineMapNbhood.h.

118 {
119 this,
120 "dumpTerse",
121 false,
122 "flag to enable terse dumps"};

◆ m_eFEXetaKey

SG::WriteHandleKey<std::vector<float> > GlobalSim::Egamma1_OnlineMapNbhood::m_eFEXetaKey
private
Initial value:
{
this,
"eFEXetaKey",
"eFEXeta"}

WriteHandle Key for the eFexRoI's eta (for valid windows, for DEBUG).

Definition at line 75 of file Egamma1_OnlineMapNbhood.h.

75 {
76 this,
77 "eFEXetaKey",
78 "eFEXeta"};

◆ m_eFEXphiKey

SG::WriteHandleKey<std::vector<float> > GlobalSim::Egamma1_OnlineMapNbhood::m_eFEXphiKey
private
Initial value:
{
this,
"eFEXphiKey",
"eFEXphi"}

WriteHandle Key for the eFexRoI's phi (for valid windows, for DEBUG).

Definition at line 82 of file Egamma1_OnlineMapNbhood.h.

82 {
83 this,
84 "eFEXphiKey",
85 "eFEXphi"};

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> GlobalSim::Egamma1_OnlineMapNbhood::m_eventInfoKey
private
Initial value:
{
this,
"EventInfo",
"EventInfo",
"EventInfo name"}

ReadHandle Key for the EventInfo object.

Definition at line 51 of file Egamma1_OnlineMapNbhood.h.

51 {
52 this,
53 "EventInfo",
54 "EventInfo",
55 "EventInfo name"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.h.

◆ m_FailedeFEXetaKey

SG::WriteHandleKey<std::vector<float> > GlobalSim::Egamma1_OnlineMapNbhood::m_FailedeFEXetaKey
private
Initial value:
{
this,
"FailedeFEXetaKey",
"FailedeFEXeta"}

WriteHandle Key for the eFexRoI's eta (for invalid windows, for DEBUG).

Definition at line 89 of file Egamma1_OnlineMapNbhood.h.

89 {
90 this,
91 "FailedeFEXetaKey",
92 "FailedeFEXeta"};

◆ m_FailedeFEXphiKey

SG::WriteHandleKey<std::vector<float> > GlobalSim::Egamma1_OnlineMapNbhood::m_FailedeFEXphiKey
private
Initial value:
{
this,
"FailedeFEXphiKey",
"FailedeFEXphi"}

WriteHandle Key for the eFexRoI's phi (for invalid windows, for DEBUG).

Definition at line 96 of file Egamma1_OnlineMapNbhood.h.

96 {
97 this,
98 "FailedeFEXphiKey",
99 "FailedeFEXphi"};

◆ m_gblLArCellContainerKey

SG::ReadHandleKey<GlobalSim::GlobalLArCellContainer> GlobalSim::Egamma1_OnlineMapNbhood::m_gblLArCellContainerKey
private
Initial value:
{
this,
"GlobalLArCellsKey",
"GlobalLArCells",
"Key for the container of the LAr cells sent to Global"}

ReadHandle Key to the GlobalLArCellContainer.

Definition at line 67 of file Egamma1_OnlineMapNbhood.h.

67 {
68 this,
69 "GlobalLArCellsKey",
70 "GlobalLArCells",
71 "Key for the container of the LAr cells sent to Global"};

◆ m_larem_id

const LArEM_ID* GlobalSim::Egamma1_OnlineMapNbhood::m_larem_id {}
private

Definition at line 48 of file Egamma1_OnlineMapNbhood.h.

48{};

◆ m_neighKey

SG::WriteHandleKey<IOBitwise::eEmNbhoodTOBContainer> GlobalSim::Egamma1_OnlineMapNbhood::m_neighKey
private
Initial value:
{
this,
"stripNeighborhoodTOBKey",
"stripNeighborhoodTOBContainer",
"location to write strip neighborhoods of EFex RoIs, with the associated TOBs"}

WriteHandle Key for the resulting TOBs.

Definition at line 103 of file Egamma1_OnlineMapNbhood.h.

103 {
104 this,
105 "stripNeighborhoodTOBKey",
106 "stripNeighborhoodTOBContainer",
107 "location to write strip neighborhoods of EFex RoIs, with the associated TOBs"};

◆ m_roiAlgTool

ToolHandle<eFexRoIAlgTool> GlobalSim::Egamma1_OnlineMapNbhood::m_roiAlgTool
private
Initial value:
{
this,
"roiAlgTool",
"GlobalSim::eFexRoIAlgTool",
"AlgTool to provide a vector<const xAOD::eFexEMRoI*>"}

ToolHandle for the eFexRoI AlgTool.

Definition at line 59 of file Egamma1_OnlineMapNbhood.h.

59 {
60 this,
61 "roiAlgTool",
62 "GlobalSim::eFexRoIAlgTool",
63 "AlgTool to provide a vector<const xAOD::eFexEMRoI*>"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


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