ATLAS Offline Software
TGCTriggerDbTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "TGCTriggerDbTool.h"
7 #include "CoolKernel/IObject.h"
8 
10  const std::string& name,
11  const IInterface* parent)
13  m_DataLocation ("keyTGC")
14 {
15  declareInterface<ITGCTriggerDbTool>(this);
16 
17  declareProperty("BwFolder", m_bwFolder="/TGC/TRIGGER/CW_BW");
18  declareProperty("EifiFolder", m_eifiFolder="/TGC/TRIGGER/CW_EIFI");
19  declareProperty("TileFolder", m_tileFolder="/TGC/TRIGGER/CW_TILE");
20 }
21 
22 
23 //StatusCode TGCCablingDbTool::updateAddress(SG::TransientAddress* tad) {
26  const EventContext& /*ctx*/) {
27  CLID clid = tad->clID();
28  const std::string& key = tad->name();
29  // Need to add the CLID comparison
30  if(/* ==clid && */m_DataLocation==key) {
31  ATH_MSG_DEBUG("updateAddress OK, clid = " << clid << " key = " << key);
32  return StatusCode::SUCCESS;
33  }
34 
35  ATH_MSG_FATAL("updateAddress failed, clid = " << clid << " key = " << key);
36  return StatusCode::FAILURE;
37 }
38 
39 
41  ATH_MSG_INFO("initialize");
42 
46 
47  for (int ii = 0; ii < CW_NUM; ++ii) {
48 
49  if ( !detStore()->contains<CondAttrListCollection>(m_folders[ii])) {
50  ATH_MSG_FATAL("Could not found " << m_folders[ii] << " in DetectorStore.");
51  return StatusCode::FAILURE;
52  }
53  }
54 
55  return StatusCode::SUCCESS;
56 }
57 
58 
60  ATH_MSG_INFO("finalize");
61 
62  return StatusCode::SUCCESS;
63 }
64 
65 
66 std::string TGCTriggerDbTool::getFolderName(int cwtype) const {
67  return m_folders[cwtype];
68 }
69 
70 
71 std::string TGCTriggerDbTool::getData(int cwtype, std::string file) const {
72  auto itr = m_datamap[cwtype].find(file);
73  if (itr == m_datamap[cwtype].end()) {
74  ATH_MSG_WARNING("File " << file << " is not found in m_datamap");
75  return "";
76  }
77 
78  return itr->second;
79 }
80 
81 
82 std::string TGCTriggerDbTool::getData(int cwtype, int channel) const {
83  return m_data[cwtype][channel];
84 }
85 
86 
87 std::string TGCTriggerDbTool::getFile(int cwtype, int channel) const {
88  return m_file[cwtype][channel];
89 }
90 
91 std::string TGCTriggerDbTool::getVersion(int cwtype, int channel) const {
92  return m_version[cwtype][channel];
93 }
94 
95 std::string TGCTriggerDbTool::getType(int cwtype, int channel) const {
96  return m_type[cwtype][channel];
97 }
98 
99 
100 bool TGCTriggerDbTool::isActive(int cwtype, int channel) const {
101  return m_active[cwtype][channel];
102 }
103 
104 
106  ATH_MSG_INFO("loadParameters from DB");
107 
108  for (int ii = 0; ii < CW_NUM; ++ii) {
109 
110  m_datamap[ii].clear();
111  m_data[ii].clear();
112  m_file[ii].clear();
113  m_type[ii].clear();
114  m_active[ii].clear();
115 
116  bool found = false;
117  for(const std::string& key: keys) {
118  ATH_MSG_INFO("loadParameters " << key << " I=" << I << " ");
119  if (key == m_folders[ii]) {
120  found = true;
121  break;
122  }
123  }
124  if (!found) continue;
125 
127  StatusCode sc = detStore()->retrieve(calc, m_folders[ii]);
128  if(sc.isFailure()) {
129  ATH_MSG_FATAL("could not retreive the CondAttrListCollection from DB folder " << m_folders[ii]);
130  return sc;
131 
132  } else {
133  ATH_MSG_INFO("CondAttrListCollection from DB folder have been obtained with size " << calc->size());
134  }
135 
138 
139  for(; itr!=itr_e; ++itr) {
140  const unsigned int channel = (*itr).first;
141  const coral::AttributeList& atr = (*itr).second;
142 
143  ATH_MSG_DEBUG("channel: " << channel);
144 
145  std::string file = atr["file"].data<cool::String255>();
146  std::string data = atr["data"].data<cool::String16M>();
147  std::string version = atr["version"].data<cool::String255>();
148  std::string type = atr["type"].data<cool::String255>();
149  bool active = atr["active"].data<cool::Bool>();
150 
151  m_datamap[ii][file] = data;
152  m_data[ii].push_back(data);
153  m_file[ii].push_back(file);
154  m_version[ii].push_back(version);
155  m_type[ii].push_back(type);
156  m_active[ii].push_back(active);
157 
158  ATH_MSG_INFO("active: " << active << " file: " << file);
159  ATH_MSG_DEBUG("data: " << data);
160  }
161  }
162 
163  return StatusCode::SUCCESS;
164 }
165 
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TGCTriggerDbTool::m_tileFolder
std::string m_tileFolder
Definition: TGCTriggerDbTool.h:55
TGCTriggerDbTool::m_data
std::vector< std::string > m_data[CW_NUM]
Definition: TGCTriggerDbTool.h:60
TGCTriggerDbTool::m_active
std::vector< bool > m_active[CW_NUM]
Definition: TGCTriggerDbTool.h:64
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TGCTriggerDbTool::getType
virtual std::string getType(int cwtype, int channel=0) const
Definition: TGCTriggerDbTool.cxx:95
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
TGCTriggerDbTool::m_type
std::vector< std::string > m_type[CW_NUM]
Definition: TGCTriggerDbTool.h:63
TGCTriggerDbTool::m_file
std::vector< std::string > m_file[CW_NUM]
Definition: TGCTriggerDbTool.h:61
ITGCTriggerDbTool::CW_BW
@ CW_BW
Definition: ITGCTriggerDbTool.h:22
SG::TransientAddress
Definition: TransientAddress.h:32
TGCTriggerDbTool::isActive
virtual bool isActive(int cwtype, int channel=0) const
Definition: TGCTriggerDbTool.cxx:100
IOVSVC_CALLBACK_ARGS_P
#define IOVSVC_CALLBACK_ARGS_P(I, K)
short hand for IOVSvc call back argument list, to be used when access to formal arguments is needed,...
Definition: IOVSvcDefs.h:42
ITGCTriggerDbTool::CW_TILE
@ CW_TILE
Definition: ITGCTriggerDbTool.h:22
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
TGCTriggerDbTool::getFile
virtual std::string getFile(int cwtype, int channel) const
Definition: TGCTriggerDbTool.cxx:87
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::TransientAddress::name
const std::string & name() const
Get the primary (hashed) SG key.
Definition: TransientAddress.h:208
TGCTriggerDbTool::m_folders
std::string m_folders[CW_NUM]
Definition: TGCTriggerDbTool.h:57
Trk::active
@ active
Definition: Layer.h:48
TGCTriggerDbTool::loadParameters
virtual StatusCode loadParameters(IOVSVC_CALLBACK_ARGS)
Load parameters using IOV keys.
Definition: TGCTriggerDbTool.cxx:105
TGCTriggerDbTool::m_version
std::vector< std::string > m_version[CW_NUM]
Definition: TGCTriggerDbTool.h:62
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
SG::TransientAddress::clID
CLID clID() const
Retrieve string key:
Definition: TransientAddress.h:201
ITGCTriggerDbTool::CW_NUM
@ CW_NUM
Definition: ITGCTriggerDbTool.h:22
ITGCTriggerDbTool::CW_EIFI
@ CW_EIFI
Definition: ITGCTriggerDbTool.h:22
file
TFile * file
Definition: tile_monitor.h:29
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TGCTriggerDbTool::getFolderName
virtual std::string getFolderName(int cwtype) const
Get the folder name.
Definition: TGCTriggerDbTool.cxx:66
TGCTriggerDbTool::m_bwFolder
std::string m_bwFolder
Folder name.
Definition: TGCTriggerDbTool.h:53
TGCTriggerDbTool::m_eifiFolder
std::string m_eifiFolder
Definition: TGCTriggerDbTool.h:54
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
TGCTriggerDbTool::getData
virtual std::string getData(int cwtype, std::string file) const
Definition: TGCTriggerDbTool.cxx:71
TGCTriggerDbTool.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TGCTriggerDbTool::updateAddress
virtual StatusCode updateAddress(StoreID::type storeID, SG::TransientAddress *tad, const EventContext &ctx)
Required by the IAddressProvider interface.
Definition: TGCTriggerDbTool.cxx:24
TGCTriggerDbTool::finalize
virtual StatusCode finalize()
Finalize.
Definition: TGCTriggerDbTool.cxx:59
get_generator_info.version
version
Definition: get_generator_info.py:33
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
StoreID::type
type
Definition: StoreID.h:24
TGCTriggerDbTool::getVersion
virtual std::string getVersion(int cwtype, int channel=0) const
Definition: TGCTriggerDbTool.cxx:91
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
I
#define I(x, y, z)
Definition: MD5.cxx:116
AthAlgTool
Definition: AthAlgTool.h:26
TGCTriggerDbTool::m_datamap
std::map< std::string, std::string > m_datamap[CW_NUM]
Definition: TGCTriggerDbTool.h:59
beamspotnt.calc
calc
Definition: bin/beamspotnt.py:1252
TGCTriggerDbTool::initialize
virtual StatusCode initialize()
Initilize.
Definition: TGCTriggerDbTool.cxx:40
TGCTriggerDbTool::m_DataLocation
std::string m_DataLocation
Data location.
Definition: TGCTriggerDbTool.h:51
TGCTriggerDbTool::TGCTriggerDbTool
TGCTriggerDbTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: TGCTriggerDbTool.cxx:9
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37