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 unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
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
virtual void setFilterPassed (bool state, const EventContext &ctx) const
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, 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

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

62{
63 return 0;
64}

◆ 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 & AthCommonReentrantAlgorithm< 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 94 of file AthCommonReentrantAlgorithm.cxx.

88{
89 // If we didn't find any symlinks to add, just return the collection
90 // from the base class. Otherwise, return the extended collection.
91 if (!m_extendedExtraObjects.empty()) {
93 }
95}
An algorithm that can be simultaneously executed in multiple threads.

◆ filterPassed()

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

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ 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 341 of file Egamma1_OnlineMapNbhood.cxx.

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

592 {
593 auto it = std::max_element(std::begin(row),
594 std::end(row),
595 [](const auto& l,const auto& r) {
596 return l->getEnergy() < r->getEnergy();
597 });
598
599 std::shared_ptr<const GlobalLArCell> max_cell{*it};
600 return max_cell;
601 }
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 565 of file Egamma1_OnlineMapNbhood.cxx.

566 {
567
568 //Vector to hold each row's maximum
569 std::vector<std::shared_ptr<const GlobalLArCell>> maxima;
570 //Loop over the rows and find each maximum energy cell.
571 for(uint row = 0;row < window.size();row++){
572 auto max_cell = Egamma1_OnlineMapNbhood::findMax(window[row]);
573 maxima.push_back(max_cell);
574 ATH_MSG_DEBUG("Found a max cell " << max_cell->getID() << " et " << max_cell->getEnergy() << " eta " << max_cell->eta() << " phi " << max_cell->phi());
575 }
576 //If we have two equal maxima, then take the middle row to be consistent.
577 if((maxima[0]->getEnergy() == maxima[1]->getEnergy() && maxima[1]->getEnergy() >= maxima[2]->getEnergy())
578 || (maxima[1]->getEnergy() == maxima[2]->getEnergy() && maxima[1]->getEnergy() >= maxima[0]->getEnergy())){
579 ATH_MSG_DEBUG("Found the max cell " << maxima[1]->getID() << " et " << maxima[1]->getEnergy() << " eta " << maxima[1]->eta() << " phi " << maxima[1]->phi());
580 hashId = m_calocell_id->calo_cell_hash(static_cast<Identifier>(maxima[1]->getID()));
581 return StatusCode::SUCCESS;
582 } else {
583 //Otherwise just take the maximum cell.
584 auto maximum_cell = Egamma1_OnlineMapNbhood::findMax(maxima);
585 ATH_MSG_DEBUG("Found the max cell " << maximum_cell->getID() << " et " << maximum_cell->getEnergy() << " eta " << maximum_cell->eta() << " phi " << maximum_cell->phi());
586 hashId = m_calocell_id->calo_cell_hash(static_cast<Identifier>(maximum_cell->getID()));
587 return StatusCode::SUCCESS;
588 }
589 }
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 eta = roi->eta();
227 float phi = 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: " << eta << " phi: " << phi << " 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(eta, phi, 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 " << eta << " phi " << phi);
256 }
257 //
258 if(strip != 0){
259 //Send the number of strips information along with the eta/phi supercell.
260 found = findHalfStrips(strip, eta, phi, 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 //Find the initial 17x3 eta/phi window
276 ATH_CHECK(findWindow(hashId, cells, window));
277 //Find the maxima in the window (only once!)
278 ATH_CHECK(findMaxima(hashId, window));
279 //Find the new 17x3 eta/phi window around this maxima
280 ATH_CHECK(findWindow(hashId, cells, window));
281
282 //Rediscover the maximum energy cell
283 auto it = std::ranges::max_element(std::begin(window[1]),
284 std::end(window[1]),
285 [](const auto& l,const auto& r) {
286 return l->getEnergy() < r->getEnergy();
287 });
288
289 std::shared_ptr<const GlobalLArCell> max_cell{*it};
290
291 //Function to fill the StripData for the neighbourhood
292 auto toStripData = [](const auto& fromCells){
293 auto stripdata = std::vector<StripData>();
294 stripdata.reserve(fromCells.size());
295 std::ranges::transform(std::begin(fromCells),
296 std::end(fromCells),
297 back_inserter(stripdata),
298 [](const auto& c) {
299 return StripData(c->eta(),
300 c->phi(),
301 c->getEnergy());});
302 return stripdata;
303 };
304
305 //Check that we didn't lose the maximum energy cell
306 auto max_neigh_cell_it = std::ranges::find(window[1],
307 max_cell);
308 if (max_neigh_cell_it == std::end(window[1])){
309 ATH_MSG_ERROR("Lost the max cell");
310 return StatusCode::FAILURE;
311 }
312
313 //Find the position of the maximum energy cell in the neighbourhood.
314 auto max_neigh_cell_pos{std::distance(std::begin(window[1]),
315 max_neigh_cell_it)};
316
317 //Fill the StripData vectors
318 auto low = toStripData(window[0]);
319 auto center = toStripData(window[1]);
320 auto high = toStripData(window[2]);
321
322 //Fill the neighbourhood seed roi, and maximum cell positions.
323 Coords roi_c{roi->eta(), roi->phi()};
324 Coords cell_c{max_cell->eta(), max_cell->phi()};
325
326 //Form the neighbourhood
327 LArStripNeighborhood neighborhood = LArStripNeighborhood(low, center, high, roi_c, cell_c, max_neigh_cell_pos);
328
329 //Add the neighbourhood to the list.
330 neighborhoodTOBs.push_back(std::make_unique<IOBitwise::eEmNbhoodTOB>(*roi, neighborhood));
331 success = true;
332 } else {
333 //If we didn't find the window, then tell us about it.
334 ATH_MSG_DEBUG("Didn't find the RoI eta: " << roi->eta() << " phi: " << roi->phi());
335 }
336 return StatusCode::SUCCESS;
337 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
StatusCode findWindow(IdentifierHash, 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.
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 382 of file Egamma1_OnlineMapNbhood.cxx.

384 {
385
386 // Loop over the cells
387 for(const GlobalSim::GlobalLArCell* cell :cells){
388 // Find the layer one cells
389 if(cell->getSampling() == 1 || cell->getSampling() == 5) {
390 // Draw the boxes for each cell
391 float etamin = cell->eta() - (0.5*cell->deta());
392 float etamax = cell->eta() + (0.5*cell->deta());
393
394 float phimin = cell->phi() - (0.5*cell->dphi());
395 float phimax = cell->phi() + (0.5*cell->dphi());
396
397 // Ask if the input lies within a box.
398 if(etamin < eta && eta < etamax && phimin < phi && phi < phimax){
399 // Return the cellID if we find a match
400 CellID = cell->getID();
401 ATH_MSG_DEBUG("Found the seed " << CellID << " eta "<< cell->eta() << " phi " << cell->phi() << " sampling " << m_larem_id->sampling(CellID));
402 return true;
403 }
404 }
405 }
406 // Otherwise report that we failed to find a match.
407 return false;
408 }

◆ findWindow()

StatusCode GlobalSim::Egamma1_OnlineMapNbhood::findWindow ( IdentifierHash hashId,
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 412 of file Egamma1_OnlineMapNbhood.cxx.

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

◆ 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 AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< 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.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

75{
76 return BaseAlg::sysExecute (ctx);
77}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< 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 HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

105 {
107
108 if (sc.isFailure()) {
109 return sc;
110 }
111
112 ServiceHandle<ICondSvc> cs("CondSvc",name());
113 for (auto h : outputHandles()) {
114 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
115 // do this inside the loop so we don't create the CondSvc until needed
116 if ( cs.retrieve().isFailure() ) {
117 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
118 return StatusCode::SUCCESS;
119 }
120 if (cs->regHandle(this,*h).isFailure()) {
122 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
123 << " with CondSvc");
124 }
125 }
126 }
127 return sc;
128}
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 AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

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

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.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: