ATLAS Offline Software
Loading...
Searching...
No Matches
DumpGeo Class Reference

#include <DumpGeo.h>

Inheritance diagram for DumpGeo:
Collaboration diagram for DumpGeo:

Public Member Functions

 DumpGeo (const std::string &name, ISvcLocator *pSvcLocator) ATLAS_CTORDTOR_NOT_THREAD_SAFE
 ~DumpGeo ()=default
StatusCode initialize ()
StatusCode execute (const EventContext &)
 Execute method.
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

virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
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

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

Gaudi::Property< std::string > m_atlasRelease {this, "AtlasRelease", "", "The current, in use Atlas release"}
Gaudi::Property< std::string > m_detDescrTag {this, "AtlasVersion", "", "The current, in use Atlas Detector Description Geometry TAG"}
Gaudi::Property< std::string > m_outFileName {this, "OutSQLiteFileName", "", "The name of the output SQLite file"}
Gaudi::Property< bool > m_forceOverwrite
Gaudi::Property< std::vector< std::string > > m_user_filterDetManagersList { this, "UserFilterDetManager", {}, "Doc", "OrderedSet<T>"}
Gaudi::Property< bool > m_showTreetopContent {this, "ShowTreetopContent", false, "Show the content of the Treetops; by default, only the list of Treetops is shown."}
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 34 of file DumpGeo.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

◆ DumpGeo()

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

Definition at line 81 of file DumpGeo.cxx.

82 : AthAlgorithm(name, svcLocator) {}
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.

◆ ~DumpGeo()

DumpGeo::~DumpGeo ( )
default

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 DumpGeo::execute ( const EventContext & ctx)
inlinevirtual

Execute method.

Implements AthAlgorithm.

Definition at line 41 of file DumpGeo.h.

41{return StatusCode::SUCCESS;};

◆ 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:

◆ initialize()

StatusCode DumpGeo::initialize ( )

Definition at line 85 of file DumpGeo.cxx.

85 {
86 ATH_MSG_DEBUG("in initialize()");
87
88 ATH_MSG_INFO("===================================================");
89 ATH_MSG_INFO("\t\tLaunching DumpGeo");
90 ATH_MSG_INFO("===================================================");
91
92 ATH_MSG_INFO("Accessing the ATLAS geometry...");
93 const GeoModelExperiment* theExpt = nullptr;
94 ATH_CHECK(detStore()->retrieve(theExpt, "ATLAS"));
95
96 // Get the ATLAS GEOMETRY 'World' volume
97 PVConstLink world(theExpt->getPhysVol());
98
100 "User filter DetectorManagers: " << m_user_filterDetManagersList);
101
102 ServiceHandle<IGeoDbTagSvc> geoDbTag("GeoDbTagSvc", name());
103 ATH_CHECK(geoDbTag.retrieve());
105 "This is the Geometry TAG we are dumping: " << geoDbTag->atlasVersion());
106
107 GeoPhysVol* volTop = createTheWorld();
108
109 // Get list of managers
110 // We fill a set from the output vector,
111 // so we can use its built-in 'count' method later,
112 // to search for DetManagers
113 ATH_MSG_INFO("Dumping the GeoModel tree...");
114 std::set<std::string> managersList{};
115 {
116 std::vector<std::string> blub = theExpt->getListOfManagers();
117 managersList.insert(blub.begin(), blub.end());
118 }
119 if (msgLvl(MSG::INFO)) {
120 ATH_MSG_INFO("List of the GeoModel Detector Managers that are being dumped: ");
121 for (auto const& man : managersList) {
122 // get the DetectorManager
123 const GeoVDetectorManager* manager = theExpt->getManager(man);
124 unsigned int nTreetops = manager->getNumTreeTops();
125 std::cout << "\t" << man << " [contains " << nTreetops << " treetops]"
126 << std::endl;
127 for (unsigned int i = 0; i < nTreetops; ++i) {
128 PVConstLink treetop(manager->getTreeTop(i));
129 // get treetop's volume
130 const GeoVPhysVol* vol = treetop;
131 // get treetop's logvol's name
132 std::string volName = vol->getLogVol()->getName();
133 std::cout << "\t\t treetop: " << volName << std::endl;
134 }
135 }
136 }
137
138 if (!(m_user_filterDetManagersList.empty())) {
139 // Convert the list of det managers passed by the user into a set
140 std::set<std::string> user_managersList{};
141 {
142 user_managersList.insert(m_user_filterDetManagersList.begin(),
144 }
145 // safety check:
146 // check that all DetManagers requested by the user are in the list
147 // If not, print an error message to warn the user and return
148 for (auto& userDet : user_managersList) {
149 if (!managersList.count(userDet)) {
151 "This Detector Manager you requested to dump is not in the list of "
152 "DetectorManagers for the geometry tag you are using: "
153 << userDet);
154 throw GaudiException(
155 "The Detector Manager you requested to dump is not in the list of "
156 "DetectorManagers.",
157 "DumpGeo", StatusCode::FAILURE);
158 }
159 }
160
161 if (!(managersList.empty())) {
162 for (auto const& mm : managersList) {
163 // get the DetectorManager
164 const GeoVDetectorManager* manager = theExpt->getManager(mm);
165
166 // get the name of the DetectorManager
167 std::string detManName = manager->getName();
168 ATH_MSG_INFO("\tDetectorManager: " << detManName);
169
170 // get the DetManager's TreeTops
171 unsigned int nTreetops = manager->getNumTreeTops();
172 ATH_MSG_INFO("\t" << mm << " - # TreeTops: " << nTreetops);
173
174 if ((nTreetops > 0) && user_managersList.count(detManName)) {
175
176 for (unsigned int i = 0; i < nTreetops; ++i) {
177
178 PVConstLink treetop(manager->getTreeTop(i));
179
180 // get treetop's volume
181 const GeoVPhysVol* vol = treetop;
182
183 // get volume's transform
184 // NOTE: we use getDefX() to get the transform without any alignment
185 GeoTransform* volXf = new GeoTransform(vol->getDefX());
186
187 // get volume's logvol's name
188 std::string volName = vol->getLogVol()->getName();
189 ATH_MSG_INFO("\t* treetop " << i << ": " << volName);
190
191 // Add to the main volume a GeoNameTag with the name of the
192 // DetectorManager
193 volTop->add(new GeoNameTag(detManName));
194 // add Transform and Volume to the main PhysVol
195 volTop->add(volXf);
196 volTop->add(const_cast<GeoVPhysVol*>(vol));
197
199 ATH_MSG_INFO("You enabled the option 'showTreetopContent', so we now print the content of the first layers of child volumes of the Treetops...");
200 unsigned v1{0};
201 GeoVolumeCursor av(treetop);
202 while (!av.atEnd()) {
203 ++v1;
204 if(1==v1) ATH_MSG_INFO("first level of child volumes:");
205 ATH_MSG_INFO("\t\t- child's name: " << av.getName());
206 ATH_MSG_INFO("\t\t- child's n. sub-nodes: " << av.getVolume()->getNChildNodes());
207 ATH_MSG_INFO("\t\t- child's n. sub-volumes: " << av.getVolume()->getNChildVols());
208
209
210 unsigned v2{0};
211 GeoVolumeCursor av2(av.getVolume());
212 while (!av2.atEnd()) {
213 ++v2;
214 if(1==v2) ATH_MSG_INFO("second level of child volumes:");
215 ATH_MSG_INFO("\t\t\t- child's logvol's name: " << av2.getVolume()->getLogVol()->getName());
216
217 unsigned v3{0};
218 GeoVolumeCursor av3(av2.getVolume());
219 while (!av3.atEnd()) {
220 ++v3;
221 if(1==v3) ATH_MSG_INFO("third level of child volumes:");
222 ATH_MSG_INFO("\t\t\t\t- child's logvol's name: " << av3.getVolume()->getLogVol()->getName());
223 av3.next(); // increment volume cursor.
224 } // end while
225
226 av2.next(); // increment volume cursor.
227 } // end while
228
229 av.next(); // increment volume cursor.
230 } // end while
231 }
232 }
233 }
234 }
235 }
236 }
237
238 // DEBUG inspection
239 if (msgLvl(MSG::DEBUG)) {
241 "Looping over top volumes in the GeoModel tree (children of the "
242 "'World' volume)...");
243 GeoVolumeCursor av(world);
244 while (!av.atEnd()) {
245 std::string volname = av.getName();
246 ATH_MSG_DEBUG("\t* relevant NameTag:" << volname);
247 av.next(); // increment volume cursor.
248 }
249 }
250
251 ATH_MSG_INFO("Creating the SQLite DB file...");
252 if (m_outFileName.empty()) {
253 ATH_MSG_FATAL("The name of the output SQLite file is not set!");
254 throw GaudiException("The name of the output SQLite file is not set!",
255 "DumpGeo", StatusCode::FAILURE);
256 }
257 ATH_MSG_INFO("Output file name: " << m_outFileName);
258
259 // Delay destructive overwrite handling until the algorithm is actually
260 // initialized, immediately before opening the output database. Use one
261 // removal attempt without a preceding existence check: a missing file is
262 // harmless, while any real filesystem error must stop the job.
263 if (m_forceOverwrite) {
264 std::error_code error;
265 const bool removed = std::filesystem::remove(m_outFileName.value(), error);
266 if (error) {
267 ATH_MSG_FATAL("Could not remove existing output file '"
268 << m_outFileName << "': " << error.message());
269 return StatusCode::FAILURE;
270 }
271 if (removed) {
272 ATH_MSG_INFO("Removed existing output file '" << m_outFileName << "'.");
273 }
274 }
275
276 // open the DB connection
277 GMDBManager db(m_outFileName);
278
279 // check the DB connection
280 if (db.checkIsDBOpen())
281 ATH_MSG_INFO("OK! Database is open!");
282 else {
283 ATH_MSG_ERROR(" ***** Database ERROR!! Exiting...");
284 throw GaudiException(
285 "The GeoModel SQLite .db file could not be opened successfully.",
286 "DumpGeo", StatusCode::FAILURE);
287 }
288
289 ATH_MSG_INFO("Traversing the GeoModel tree...");
290 // Dump the tree volumes into a DB
291 // 1. init the GeoModel node action
292 GeoModelIO::WriteGeoModel dumpGeoModelGraph(db);
293 // 2. visit all GeoModel nodes
294 if (!(m_user_filterDetManagersList.empty())) {
295 volTop->exec(&dumpGeoModelGraph);
296 } else {
297 world->exec(&dumpGeoModelGraph);
298 }
299 ATH_MSG_INFO("Saving the GeoModel tree to the DB...");
300 // 3. save it to an SQLite file
301 dumpGeoModelGraph.saveToDB();
302 ATH_MSG_ALWAYS("DONE. Geometry saved to " << m_outFileName);
303
304 // Quick test if DEBUG
305 if (msgLvl(MSG::DEBUG)) {
307 "Test - list of all the GeoMaterial nodes in the persistified "
308 "geometry:");
309 db.printAllMaterials();
311 "Test - list of all the GeoElement nodes in the persistified "
312 "geometry:");
313 db.printAllElements();
314 }
315
316 ATH_MSG_DEBUG("End of DumpGeo::init().");
317 return StatusCode::SUCCESS;
318}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_ALWAYS(x,...)
#define ATH_MSG_INFO(x,...)
#define ATH_MSG_FATAL(x,...)
GeoPhysVol * createTheWorld()
Definition DumpGeo.cxx:47
const ServiceHandle< StoreGateSvc > & detStore() const
bool msgLvl(const MSG::Level lvl) const
Gaudi::Property< bool > m_showTreetopContent
Definition DumpGeo.h:54
Gaudi::Property< std::vector< std::string > > m_user_filterDetManagersList
Definition DumpGeo.h:53
Gaudi::Property< std::string > m_outFileName
Definition DumpGeo.h:48
Gaudi::Property< bool > m_forceOverwrite
Definition DumpGeo.h:49
const GeoVDetectorManager * getManager(const std::string &name) const
GeoPhysVol * getPhysVol()
Destructor.
std::vector< std::string > getListOfManagers() const

◆ 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 }

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 47 of file AthAlgorithm.h.

47{ return false; }

◆ 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}
#define ATH_MSG_WARNING(x,...)
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_atlasRelease

Gaudi::Property<std::string> DumpGeo::m_atlasRelease {this, "AtlasRelease", "", "The current, in use Atlas release"}
private

Definition at line 46 of file DumpGeo.h.

46{this, "AtlasRelease", "", "The current, in use Atlas release"};

◆ m_detDescrTag

Gaudi::Property<std::string> DumpGeo::m_detDescrTag {this, "AtlasVersion", "", "The current, in use Atlas Detector Description Geometry TAG"}
private

Definition at line 47 of file DumpGeo.h.

47{this, "AtlasVersion", "", "The current, in use Atlas Detector Description Geometry TAG"};

◆ 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_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_forceOverwrite

Gaudi::Property<bool> DumpGeo::m_forceOverwrite
private
Initial value:
{
this, "ForceOverwrite", false,
"Remove an existing output SQLite file immediately before writing"}

Definition at line 49 of file DumpGeo.h.

49 {
50 this, "ForceOverwrite", false,
51 "Remove an existing output SQLite file immediately before writing"};

◆ m_outFileName

Gaudi::Property<std::string> DumpGeo::m_outFileName {this, "OutSQLiteFileName", "", "The name of the output SQLite file"}
private

Definition at line 48 of file DumpGeo.h.

48{this, "OutSQLiteFileName", "", "The name of the output SQLite file"};

◆ m_showTreetopContent

Gaudi::Property<bool> DumpGeo::m_showTreetopContent {this, "ShowTreetopContent", false, "Show the content of the Treetops; by default, only the list of Treetops is shown."}
private

Definition at line 54 of file DumpGeo.h.

54{this, "ShowTreetopContent", false, "Show the content of the Treetops; by default, only the list of Treetops is shown."};

◆ m_user_filterDetManagersList

Gaudi::Property<std::vector<std::string> > DumpGeo::m_user_filterDetManagersList { this, "UserFilterDetManager", {}, "Doc", "OrderedSet<T>"}
private

Definition at line 52 of file DumpGeo.h.

53{ this, "UserFilterDetManager", {}, "Doc", "OrderedSet<T>"};

◆ 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: