36 cool::IDatabaseSvc& databasesvc = cool::DatabaseSvcFactory::databaseService();
41 coral::IConnectionServiceConfiguration& csconfig=
m_coralsvc.configuration();
42 csconfig.setReplicaSortingAlgorithm(*
m_repsort);
49 catch (std::exception&e) {
71 if (inconn.find(
'/')==std::string::npos) {
72 return "sqlite://X;schema=mycool.db;dbname="+inconn;
81 size_t found = triggername.find_first_of(
'_');
82 if(found != std::string::npos){
83 std::string s_lvl = triggername.substr(0,found);
84 if(s_lvl ==
"EF")
return 3;
85 if(s_lvl ==
"L2")
return 2;
86 if(s_lvl ==
"L1")
return 1;
87 if(s_lvl ==
"HLT")
return 2;
102 cool::ValidityKey
run = runnum;
109 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
110 cool::IObjectIteratorPtr itr = folder_ptr->browseObjects(
m_VKstart,
m_VKstop,
id);
113 if (itr->goToNext()) {
114 const cool::IRecord& payload=itr->currentRef().payload();
115 return payload[
"Lvl1Prescale"].data<cool::Int32>();
125 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
126 cool::IObjectIteratorPtr itr = folder_ptr->browseObjects(
m_VKstart,
m_VKstop,
id);
129 if (itr->goToNext()) {
130 const cool::IRecord& payload=itr->currentRef().payload();
131 return payload[
"Prescale"].data<cool::Float>();
145 if (trigger ==
"")
return UINT_MAX;
147 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
148 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(
m_VKstart,
m_VKstart, cool::ChannelSelection::all());
150 while (obj_itr->goToNext()){
151 const cool::IRecord& payload=obj_itr->currentRef().payload();
156 return obj_itr->currentRef().channelId();
161 m_logger <<
Root::kERROR <<
"Couldn't find L1 trigger [" << trigger <<
"] in folder [" << folder_name <<
"]" << Root::GEndl;
174 if (lumimethod ==
"")
return UINT_MAX;
178 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
179 if(folder_ptr->existsChannel(lumimethod)){
181 return folder_ptr->channelId(lumimethod);
183 m_logger <<
Root::kWARNING <<
"Couldn't find lumimethod: " << lumimethod <<
" in COOL database!" << Root::GEndl;
197 if (trigger ==
"")
return UINT_MAX;
199 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
200 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(
m_VKstart,
m_VKstart, cool::ChannelSelection::all());
203 while (obj_itr->goToNext()){
204 const cool::IRecord& payload=obj_itr->currentRef().payload();
208 return payload[
"ChainCounter"].data<cool::UInt32>();
213 m_logger <<
Root::kERROR <<
"Couldn't find HLT trigger [" << trigger <<
"] in folder [" << folder_name <<
"]" << Root::GEndl;
223 m_logger <<
Root::kINFO <<
"Listing available triggers [triggername(prescale, chanid)]: " << Root::GEndl;
225 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
226 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(
m_VKstart,
m_VKstart, cool::ChannelSelection::all());
227 while (obj_itr->goToNext()){
228 const cool::IRecord& payload=obj_itr->currentRef().payload();
237 m_logger <<
Root::kINFO <<
"Listing available triggers [triggername(prescale, chanid)]: " << Root::GEndl;
239 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
240 cool::IObjectIteratorPtr obj_itr2=folder_ptr->browseObjects(
m_VKstart,
m_VKstart, cool::ChannelSelection::all());
241 while (obj_itr2->goToNext()){
242 const cool::IRecord& payload2=obj_itr2->currentRef().payload();
244 m_logger <<
Root::kINFO << payload2[
"ChainName"].data<std::string>() <<
"(" << payload2[
"Prescale"].
data<cool::Float>() <<
", " << payload2[
"ChainCounter"].data<cool::UInt32>() <<
"), ";
260 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
261 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(
m_VKstart,
m_VKstart, cool::ChannelSelection::all());
263 while (obj_itr->goToNext()){
264 const cool::IRecord& payload=obj_itr->currentRef().payload();
267 return payload[
"LowerChainName"].data<std::string>();
273 m_logger <<
Root::kERROR <<
"Couldn't find HLT trigger [" << trigger <<
"] in folder [" << folder_name <<
"]" << Root::GEndl;
289std::map<cool::ValidityKey, CoolQuery::LumiFolderData>
292 std::map<cool::ValidityKey, LumiFolderData> mymap;
295 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
297 if (!folder_ptr->existsChannel(
id)) {
298 m_logger <<
Root::kWARNING <<
"Lumi channel id " <<
id <<
" does not exist in database " << folder_name <<
"!" << Root::GEndl;
302 cool::IObjectIteratorPtr itr;
303 if(folder_ptr->existsUserTag(tag)) {
310 while (itr->goToNext()) {
311 const cool::IRecord& payload=itr->currentRef().payload();
312 folderData.
LBAvInstLumi = payload[
"LBAvInstLumi"].data<
float>();
313 folderData.
LBAvEvtsPerBX = payload[
"LBAvEvtsPerBX"].data<
float>();
314 folderData.
Valid = payload[
"Valid"].data<cool::UInt32>();
315 mymap.insert( std::pair<cool::ValidityKey, LumiFolderData>(itr->currentRef().since(), folderData));
323std::map<cool::ValidityKey, CoolQuery::L1CountFolderData>
326 std::map<cool::ValidityKey, L1CountFolderData> mymap;
329 cool::IFolderPtr folder_ptr =
m_sourceDbPtr->getFolder(folder_name);
331 if (!folder_ptr->existsChannel(
id)) {
332 m_logger <<
Root::kWARNING <<
"Lumi channel id " <<
id <<
" does not exist in database " << folder_name <<
"!" << Root::GEndl;
336 cool::IObjectIteratorPtr itr;
340 while (itr->goToNext()) {
341 const cool::IRecord& payload=itr->currentRef().payload();
342 folderData.
BeforePrescale = payload[
"BeforePrescale"].data<cool::UInt63>();
343 folderData.
AfterPrescale = payload[
"AfterPrescale"].data<cool::UInt63>();
344 folderData.
L1Accept = payload[
"L1Accept"].data<cool::UInt63>();
345 mymap.insert( std::pair<cool::ValidityKey, L1CountFolderData>(itr->currentRef().since(), folderData));
char data[hepevt_bytes_allocation_ATLAS]
cool::ChannelId getHLTChannelId(const std::string &trigger, const std::string &folder_name)
void setIOV(const cool::ValidityKey start, const cool::ValidityKey stop)
CoolQuery(const std::string &database, const std::string &triggerchain)
std::map< cool::ValidityKey, L1CountFolderData > getL1CountFolderData(const std::string &folder_name, const cool::ChannelId &id)
unsigned int getTriggerLevel(const std::string &triggername)
coral::ConnectionService m_coralsvc
cool::IDatabasePtr m_sourceDbPtr
Root::TMsgLogger m_logger
cool::Float getHLTPrescaleFromChannelId(const std::string &folder_name, const cool::ChannelId &id)
void setIOVForRun(unsigned int runnum)
ReplicaSorter * m_repsort
void printHLTTriggers(const std::string &folder_name)
std::map< cool::ValidityKey, LumiFolderData > getLumiFolderData(const std::string &folder_name, const std::string &tag, const cool::ChannelId &id)
cool::ValidityKey m_VKstart
cool::Int32 getL1PrescaleFromChannelId(const std::string &folder_name, const cool::ChannelId &id)
void printL1Triggers(const std::string &folder_name)
std::string m_triggerchain
cool::ChannelId getL1ChannelId(const std::string &trigger, const std::string &folder_name)
std::string transConn(const std::string &inconn)
cool::ChannelId getLumiChannelId(const std::string &lumimethod, const std::string &folder_name)
std::string getHLTLowerChainName(const std::string &trigger, const std::string &folder_name)
cool::ValidityKey m_VKstop
static std::vector< std::string > triggerchain
cool::UInt63 AfterPrescale
cool::UInt63 BeforePrescale