ATLAS Offline Software
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
DatabaseAccessTool Class Reference

#include <DatabaseAccessTool.h>

Collaboration diagram for DatabaseAccessTool:

Classes

class  Clockwork
 

Public Member Functions

 DatabaseAccessTool ()
 
 ~DatabaseAccessTool ()
 
double getDouble (const std::string &TableName, const std::string &FallbackVersion, const std::string &ColumnName) const
 

Private Member Functions

DatabaseAccessTooloperator= (const DatabaseAccessTool &)
 
 DatabaseAccessTool (const DatabaseAccessTool &)
 

Private Attributes

Clockworkm_cw
 

Detailed Description

Definition at line 16 of file DatabaseAccessTool.h.

Constructor & Destructor Documentation

◆ DatabaseAccessTool() [1/2]

DatabaseAccessTool::DatabaseAccessTool ( )

Definition at line 25 of file DatabaseAccessTool.cxx.

26  :m_cw(new Clockwork())
27 {
28  IGeoModelSvc *geoModel;
29  ISvcLocator *svcLocator=Gaudi::svcLocator();
30  if (svcLocator->service ("GeoModelSvc",geoModel)!=StatusCode::SUCCESS) {
31  throw std::runtime_error ("Cannot locate GeoModelSvc!!");
32  }
33 
34  if (svcLocator->service("RDBAccessSvc",m_cw->pAccessSvc)!=StatusCode::SUCCESS) {
35  throw std::runtime_error ("Cannot locate RDBAccessSvc!!");
36  }
37 
38  // Obtain the geometry version information:
39 
40  std::string AtlasVersion = geoModel->atlasVersion();
41  std::string LArVersion = geoModel->LAr_VersionOverride();
42 
43  m_cw->detectorKey = LArVersion.empty() ? AtlasVersion : LArVersion;
44  m_cw->detectorNode = LArVersion.empty() ? "ATLAS" : "LAr";
45 
46 }

◆ ~DatabaseAccessTool()

DatabaseAccessTool::~DatabaseAccessTool ( )

Definition at line 48 of file DatabaseAccessTool.cxx.

49 {
50  delete m_cw;
51 }

◆ DatabaseAccessTool() [2/2]

DatabaseAccessTool::DatabaseAccessTool ( const DatabaseAccessTool )
private

Member Function Documentation

◆ getDouble()

double DatabaseAccessTool::getDouble ( const std::string &  TableName,
const std::string &  FallbackVersion,
const std::string &  ColumnName 
) const

Definition at line 53 of file DatabaseAccessTool.cxx.

55  {
56 
58 
59  IRDBRecordset_ptr rec = (m==m_cw->recMap.end()) ? m_cw->pAccessSvc->getRecordsetPtr(TableName,m_cw->detectorKey,m_cw->detectorNode): (*m).second;
60  if (rec->size()==0) {
61  rec = m_cw->pAccessSvc->getRecordsetPtr(TableName,FallbackVersion);
62  if (rec->size()==0) {
63  throw std::runtime_error((std::string("Cannot find the Table: ") + TableName).c_str());
64  }
65  }
66  double retval = (*rec)[0]->getDouble(ColumnName);
67  if (m==m_cw->recMap.end()) {
68  m_cw->recMap[TableName]=rec;
69  }
70  return retval;
71 }

◆ operator=()

DatabaseAccessTool& DatabaseAccessTool::operator= ( const DatabaseAccessTool )
private

Member Data Documentation

◆ m_cw

Clockwork* DatabaseAccessTool::m_cw
private

Definition at line 41 of file DatabaseAccessTool.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
IRDBAccessSvc::getRecordsetPtr
virtual IRDBRecordset_ptr getRecordsetPtr(const std::string &node, const std::string &tag, const std::string &tag2node="", const std::string &connName="ATLASDD")=0
Provides access to the Recordset object containing HVS-tagged data.
IGeoModelSvc
Definition: IGeoModelSvc.h:17
DatabaseAccessTool::Clockwork::recMap
std::map< std::string, IRDBRecordset_ptr > recMap
Definition: DatabaseAccessTool.cxx:21
LArCellBinning_test.retval
def retval
Definition: LArCellBinning_test.py:112
IGeoModelSvc::LAr_VersionOverride
virtual const std::string & LAr_VersionOverride() const =0
DatabaseAccessTool::Clockwork::detectorKey
std::string detectorKey
Definition: DatabaseAccessTool.cxx:19
EventInfoWrite.AtlasVersion
AtlasVersion
Definition: EventInfoWrite.py:17
DatabaseAccessTool::Clockwork::detectorNode
std::string detectorNode
Definition: DatabaseAccessTool.cxx:20
DatabaseAccessTool::Clockwork::pAccessSvc
IRDBAccessSvc * pAccessSvc
Definition: DatabaseAccessTool.cxx:18
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
DatabaseAccessTool::m_cw
Clockwork * m_cw
Definition: DatabaseAccessTool.h:40
IGeoModelSvc::atlasVersion
virtual const std::string & atlasVersion() const =0