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

#include <Egamma1_OnlineMapNbhoodAlg.h>

Inheritance diagram for GlobalSim::Egamma1_OnlineMapNbhoodAlg:
Collaboration diagram for GlobalSim::Egamma1_OnlineMapNbhoodAlg:

Public Member Functions

 Egamma1_OnlineMapNbhoodAlg (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, 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_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg()

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

Definition at line 29 of file Egamma1_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::execute ( const EventContext & ctx) const
overridevirtual

execute function running for every event

Definition at line 70 of file Egamma1_OnlineMapNbhoodAlg.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.
Gaudi::Property< bool > m_dumpTerse
Parameter to toggle dumping of brief information window information.
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_eFEXetaKey
WriteHandle Key for the eFexRoI's eta (for valid windows, for DEBUG).
SG::ReadHandleKey< GlobalSim::GlobalLArCellContainer > m_gblLArCellContainerKey
ReadHandle Key to the GlobalLArCellContainer.
SG::WriteHandleKey< std::vector< float > > m_FailedeFEXphiKey
WriteHandle Key for the eFexRoI's phi (for invalid windows, for DEBUG).
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
ReadHandle Key for the EventInfo object.
SG::WriteHandleKey< IOBitwise::eEmNbhoodTOBContainer > m_neighKey
WriteHandle Key for the resulting TOBs.
SG::WriteHandleKey< std::vector< float > > m_eFEXphiKey
WriteHandle Key for the eFexRoI's phi (for valid windows, for DEBUG).
Gaudi::Property< bool > m_dump
Parameter to toggle dumping of full information window information.
SG::WriteHandleKey< std::vector< float > > m_FailedeFEXetaKey
WriteHandle Key for the eFexRoI's eta (for invalid windows, for DEBUG).
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_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::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 585 of file Egamma1_OnlineMapNbhoodAlg.cxx.

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

◆ findMaxima()

StatusCode GlobalSim::Egamma1_OnlineMapNbhoodAlg::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 558 of file Egamma1_OnlineMapNbhoodAlg.cxx.

559 {
560
561 //Vector to hold each row's maximum
562 std::vector<std::shared_ptr<const GlobalLArCell>> maxima;
563 //Loop over the rows and find each maximum energy cell.
564 for(uint row = 0;row < window.size();row++){
565 auto max_cell = Egamma1_OnlineMapNbhoodAlg::findMax(window[row]);
566 maxima.push_back(max_cell);
567 ATH_MSG_DEBUG("Found a max cell " << max_cell->getID() << " et " << max_cell->getEnergy() << " eta " << max_cell->eta() << " phi " << max_cell->phi());
568 }
569 //If we have two equal maxima, then take the middle row to be consistent.
570 if((maxima[0]->getEnergy() == maxima[1]->getEnergy() && maxima[1]->getEnergy() >= maxima[2]->getEnergy())
571 || (maxima[1]->getEnergy() == maxima[2]->getEnergy() && maxima[1]->getEnergy() >= maxima[0]->getEnergy())){
572 ATH_MSG_DEBUG("Found the max cell " << maxima[1]->getID() << " et " << maxima[1]->getEnergy() << " eta " << maxima[1]->eta() << " phi " << maxima[1]->phi());
573 hashId = m_calocell_id->calo_cell_hash(static_cast<Identifier>(maxima[1]->getID()));
574 return StatusCode::SUCCESS;
575 } else {
576 //Otherwise just take the maximum cell.
577 auto maximum_cell = Egamma1_OnlineMapNbhoodAlg::findMax(maxima);
578 ATH_MSG_DEBUG("Found the max cell " << maximum_cell->getID() << " et " << maximum_cell->getEnergy() << " eta " << maximum_cell->eta() << " phi " << maximum_cell->phi());
579 hashId = m_calocell_id->calo_cell_hash(static_cast<Identifier>(maximum_cell->getID()));
580 return StatusCode::SUCCESS;
581 }
582 }
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_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.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, 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, 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.
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.
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_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::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 403 of file Egamma1_OnlineMapNbhoodAlg.cxx.

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

initialize function running before the first event

Definition at line 39 of file Egamma1_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::m_calocell_id {}
private

Definition at line 47 of file Egamma1_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.h.

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

◆ m_dumpTerse

Gaudi::Property<bool> GlobalSim::Egamma1_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.h.

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

◆ m_eFEXetaKey

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

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

Definition at line 75 of file Egamma1_OnlineMapNbhoodAlg.h.

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

◆ m_eFEXphiKey

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

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

Definition at line 82 of file Egamma1_OnlineMapNbhoodAlg.h.

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

◆ m_eventInfoKey

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

ReadHandle Key for the EventInfo object.

Definition at line 51 of file Egamma1_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::m_FailedeFEXetaKey
private
Initial value:
{
this,
"FailedeFEXetaKey",
"L1_FailedeFEXeta"}

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

Definition at line 89 of file Egamma1_OnlineMapNbhoodAlg.h.

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

◆ m_FailedeFEXphiKey

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

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

Definition at line 96 of file Egamma1_OnlineMapNbhoodAlg.h.

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

◆ m_gblLArCellContainerKey

SG::ReadHandleKey<GlobalSim::GlobalLArCellContainer> GlobalSim::Egamma1_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.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_OnlineMapNbhoodAlg::m_larem_id {}
private

Definition at line 48 of file Egamma1_OnlineMapNbhoodAlg.h.

48{};

◆ m_neighKey

SG::WriteHandleKey<IOBitwise::eEmNbhoodTOBContainer> GlobalSim::Egamma1_OnlineMapNbhoodAlg::m_neighKey
private
Initial value:
{
this,
"LArNeighborhoodTOBContainerKey",
"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_OnlineMapNbhoodAlg.h.

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

◆ m_roiAlgTool

ToolHandle<eFexRoIAlgTool> GlobalSim::Egamma1_OnlineMapNbhoodAlg::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_OnlineMapNbhoodAlg.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: