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

#include <CoolQuery.h>

Collaboration diagram for CoolQuery:

Classes

struct  LumiFolderData
struct  L1CountFolderData

Public Member Functions

 CoolQuery (const std::string &database, const std::string &triggerchain)
 ~CoolQuery ()
void setDb (const std::string &database)
void setTrigger (const std::string &triggerchain)
bool openDbConn ()
void setIOV (const cool::ValidityKey start, const cool::ValidityKey stop)
void setIOVForRun (unsigned int runnum)
cool::ChannelId getHLTChannelId (const std::string &trigger, const std::string &folder_name)
cool::ChannelId getL1ChannelId (const std::string &trigger, const std::string &folder_name)
cool::ChannelId getLumiChannelId (const std::string &lumimethod, const std::string &folder_name)
bool channelIdValid ()
std::string getHLTLowerChainName (const std::string &trigger, const std::string &folder_name)
cool::Int32 getL1PrescaleFromChannelId (const std::string &folder_name, const cool::ChannelId &id)
cool::Float getHLTPrescaleFromChannelId (const std::string &folder_name, const cool::ChannelId &id)
void printL1Triggers (const std::string &folder_name)
void printHLTTriggers (const std::string &folder_name)
template<class T>
std::map< cool::ValidityKey, T > getObjMapFromFolderAtChan (const std::string &obj_name, const std::string &folder_name, const cool::ChannelId &id)
template<class T>
std::map< cool::ValidityKey, T > getTrigObjMapFromFolderByName (const std::string &obj_name, const std::string &folder_name, const std::string &trigger)
template<class T>
std::map< cool::ValidityKey, T > getLumiIterator (const std::string &luminame, const std::string &folder_name, const std::string &tag, const cool::ChannelId &id)
unsigned int getTriggerLevel (const std::string &triggername)
std::map< cool::ValidityKey, LumiFolderDatagetLumiFolderData (const std::string &folder_name, const std::string &tag, const cool::ChannelId &id)
std::map< cool::ValidityKey, L1CountFolderDatagetL1CountFolderData (const std::string &folder_name, const cool::ChannelId &id)
template<class T>
IOVData< T > getIOVData (const std::string &name, const std::string &folder_name, const cool::ChannelId &id, const std::string &tag={})

Private Member Functions

std::string transConn (const std::string &inconn)

Private Attributes

coral::ConnectionService m_coralsvc
ReplicaSorterm_repsort
cool::IDatabasePtr m_sourceDbPtr
std::string m_database
std::string m_triggerchain
cool::ValidityKey m_VKstart
cool::ValidityKey m_VKstop
Root::TMsgLogger m_logger
bool m_valid

Detailed Description

Definition at line 222 of file CoolQuery.h.

Constructor & Destructor Documentation

◆ CoolQuery()

CoolQuery::CoolQuery ( const std::string & database,
const std::string & triggerchain )

Definition at line 24 of file CoolQuery.cxx.

24 :
25 m_repsort(0),
26 m_database(database),
28 m_VKstart(0),
29 m_VKstop(0),
30 m_logger( "CoolQuery" ),
31 m_valid(false)
32{
33
34}
Root::TMsgLogger m_logger
Definition CoolQuery.h:334
bool m_valid
Definition CoolQuery.h:336
ReplicaSorter * m_repsort
Definition CoolQuery.h:327
cool::ValidityKey m_VKstart
Definition CoolQuery.h:331
std::string m_triggerchain
Definition CoolQuery.h:330
std::string m_database
Definition CoolQuery.h:329
cool::ValidityKey m_VKstop
Definition CoolQuery.h:332
static std::vector< std::string > triggerchain
Definition iLumiCalc.h:34

◆ ~CoolQuery()

CoolQuery::~CoolQuery ( )

Definition at line 37 of file CoolQuery.cxx.

37 {
38 if ( m_sourceDbPtr.use_count()>0 && m_sourceDbPtr->isOpen() ) {
39 m_logger << Root::kINFO << "Closing database '" << m_sourceDbPtr->databaseName() << Root::GEndl;
40 m_sourceDbPtr->closeDatabase();
41 }
42}
cool::IDatabasePtr m_sourceDbPtr
Definition CoolQuery.h:328
@ kINFO
Definition TMsgLogger.h:40

Member Function Documentation

◆ channelIdValid()

bool CoolQuery::channelIdValid ( )

Definition at line 224 of file CoolQuery.cxx.

224 {
225 return m_valid;
226}

◆ getHLTChannelId()

cool::ChannelId CoolQuery::getHLTChannelId ( const std::string & trigger,
const std::string & folder_name )

Definition at line 176 of file CoolQuery.cxx.

176 {
177 m_valid = false;
178 if (trigger == "") return UINT_MAX;
179 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
180 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(m_VKstart,m_VKstart, cool::ChannelSelection::all());
181 // loop through all triggers
182 // loop through all triggers
183 while (obj_itr->goToNext()){
184 const cool::IRecord& payload=obj_itr->currentRef().payload();
185 if(payload[chainNameStr].data<std::string>() == trigger){
186 m_valid = true;
187 return payload[chainCounterStr].data<cool::UInt32>();
188 }
189 }
190 if(!m_valid){
191 m_logger << Root::kERROR << "Couldn't find HLT trigger [" << trigger << "] in folder [" << folder_name << "]" << Root::GEndl;
192 }
193 // Nonsense value
194 return UINT_MAX;
195}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
@ kERROR
Definition TMsgLogger.h:42

◆ getHLTLowerChainName()

std::string CoolQuery::getHLTLowerChainName ( const std::string & trigger,
const std::string & folder_name )

Definition at line 229 of file CoolQuery.cxx.

229 {
230 bool found = false;
231 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
232 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(m_VKstart,m_VKstart, cool::ChannelSelection::all());
233 // loop through all triggers
234 while (obj_itr->goToNext()){
235 const cool::IRecord& payload=obj_itr->currentRef().payload();
236 if(payload[chainNameStr].data<std::string>() == trigger){
237 found = true;
238 return payload[lowerChainNameStr].data<std::string>();
239
240 }
241 }
242 if (!found) {
243 m_logger << Root::kERROR << "Couldn't find HLT trigger [" << trigger << "] in folder [" << folder_name << "]" << Root::GEndl;
244 }
245
246 return "";
247
248}

◆ getHLTPrescaleFromChannelId()

cool::Float CoolQuery::getHLTPrescaleFromChannelId ( const std::string & folder_name,
const cool::ChannelId & id )

Definition at line 121 of file CoolQuery.cxx.

121 {
122
123 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
124 cool::IObjectIteratorPtr itr = folder_ptr->browseObjects(m_VKstart, m_VKstop,id);
125
126 // Need to iterate once to get to first valid record, do it this way to avoid Coverity warning
127 if (itr->goToNext()) {
128 const cool::IRecord& payload=itr->currentRef().payload();
129 return payload[prescaleStr].data<cool::Float>();
130 }
131
132 // Nonsense value
133 return -1.;
134
135}

◆ getIOVData()

template<class T>
IOVData< T > CoolQuery::getIOVData ( const std::string & name,
const std::string & folder_name,
const cool::ChannelId & id,
const std::string & tag = {} )

Definition at line 420 of file CoolQuery.h.

420 {
421
422 IOVData<T> mydata;
423
424 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
425 cool::ChannelSelection chsel(id);
426 if(!folder_ptr->existsChannel(id)){
427 m_logger << Root::kWARNING << "Channel " << id << " does not exist in database " << folder_name << "!" << Root::GEndl;
428 return mydata;
429 }
430
431 // Try with or without tag
432 cool::IObjectIteratorPtr itr;
433 if (folder_ptr->existsUserTag(tag)) {
434 itr = folder_ptr->browseObjects(m_VKstart, m_VKstop, id, tag);
435 } else {
436 itr = folder_ptr->browseObjects(m_VKstart, m_VKstop, id);
437 }
438
439 while (itr->goToNext()) {
440 IOVTime since, until;
441 since.setRETime(itr->currentRef().since());
442 until.setRETime(itr->currentRef().until());
443
444 IOVRange range(since, until);
445
446 const cool::IRecord& payload=itr->currentRef().payload();
447
448 mydata.add( range, payload[obj_name].data<T>() );
449 }
450
451 return mydata;
452}
void add(IOVRange range, T val)
Definition CoolQuery.h:97
@ kWARNING
Definition TMsgLogger.h:41

◆ getL1ChannelId()

cool::ChannelId CoolQuery::getL1ChannelId ( const std::string & trigger,
const std::string & folder_name )

Definition at line 137 of file CoolQuery.cxx.

137 {
138 m_valid = false;
139
140 if (trigger == "") return UINT_MAX;
141
142 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
143 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(m_VKstart,m_VKstart, cool::ChannelSelection::all());
144 // loop through all triggers
145 while (obj_itr->goToNext()){
146 const cool::IRecord& payload=obj_itr->currentRef().payload();
147 // find the L1 trigger chain
148 if(payload[itemNameStr].data<std::string>() == trigger){
149 m_valid = true;
150 return obj_itr->currentRef().channelId();
151 }
152 }
153 if(!m_valid){
154 m_logger << Root::kERROR << "Couldn't find L1 trigger [" << trigger << "] in folder [" << folder_name << "]" << Root::GEndl;
155 }
156 // Nonsense value
157 return UINT_MAX;
158}

◆ getL1CountFolderData()

std::map< cool::ValidityKey, CoolQuery::L1CountFolderData > CoolQuery::getL1CountFolderData ( const std::string & folder_name,
const cool::ChannelId & id )

Definition at line 285 of file CoolQuery.cxx.

285 {
286
287 std::map<cool::ValidityKey, L1CountFolderData> mymap;
288 L1CountFolderData folderData;
289
290 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
291 if (!folder_ptr->existsChannel(id)) {
292 m_logger << Root::kWARNING << "Lumi channel id " << id << " does not exist in database " << folder_name << "!" << Root::GEndl;
293 return mymap;
294 }
295
296 cool::IObjectIteratorPtr itr;
297
298 itr = folder_ptr->browseObjects(m_VKstart, m_VKstop, id);
299
300 while (itr->goToNext()) {
301 const cool::IRecord& payload=itr->currentRef().payload();
302 folderData.BeforePrescale = payload[beforePrescaleStr].data<cool::UInt63>();
303 folderData.AfterPrescale = payload[afterPrescaleStr].data<cool::UInt63>();
304 folderData.L1Accept = payload[l1AcceptStr].data<cool::UInt63>();
305 mymap.insert( std::pair<cool::ValidityKey, L1CountFolderData>(itr->currentRef().since(), folderData));
306 }
307
308 return mymap;
309
310}

◆ getL1PrescaleFromChannelId()

cool::Int32 CoolQuery::getL1PrescaleFromChannelId ( const std::string & folder_name,
const cool::ChannelId & id )

Definition at line 105 of file CoolQuery.cxx.

105 {
106
107 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
108 cool::IObjectIteratorPtr itr = folder_ptr->browseObjects(m_VKstart, m_VKstop,id);
109
110 // Need to iterate once to get to first valid record, do it this way to avoid Coverity warning
111 if (itr->goToNext()) {
112 const cool::IRecord& payload=itr->currentRef().payload();
113 return payload[lvl1PrescaleStr].data<cool::Int32>();
114 }
115
116 // Nonsense value
117 return UINT_MAX;
118
119}

◆ getLumiChannelId()

cool::ChannelId CoolQuery::getLumiChannelId ( const std::string & lumimethod,
const std::string & folder_name )

Definition at line 161 of file CoolQuery.cxx.

161 {
162 m_valid = false;
163 if (lumimethod == "") return UINT_MAX;
164 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
165 if(folder_ptr->existsChannel(lumimethod)){
166 m_valid = true;
167 return folder_ptr->channelId(lumimethod);
168 }else{
169 m_logger << Root::kWARNING << "Couldn't find lumimethod: " << lumimethod << " in COOL database!" << Root::GEndl;
170 }
171 // Nonsense value
172 return UINT_MAX;
173}

◆ getLumiFolderData()

std::map< cool::ValidityKey, CoolQuery::LumiFolderData > CoolQuery::getLumiFolderData ( const std::string & folder_name,
const std::string & tag,
const cool::ChannelId & id )

Definition at line 252 of file CoolQuery.cxx.

252 {
253
254 std::map<cool::ValidityKey, LumiFolderData> mymap;
255 LumiFolderData folderData;
256
257 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
258 if (!folder_ptr->existsChannel(id)) {
259 m_logger << Root::kWARNING << "Lumi channel id " << id << " does not exist in database " << folder_name << "!" << Root::GEndl;
260 return mymap;
261 }
262
263 cool::IObjectIteratorPtr itr;
264 if(folder_ptr->existsUserTag(tag)) {
265 itr = folder_ptr->browseObjects(m_VKstart, m_VKstop, id, tag);
266 } else {
267 // Try without specifying tag
268 itr = folder_ptr->browseObjects(m_VKstart, m_VKstop, id);
269 }
270
271 while (itr->goToNext()) {
272 const cool::IRecord& payload=itr->currentRef().payload();
273 folderData.LBAvInstLumi = payload[lbAvInstLumiStr].data<float>();
274 folderData.LBAvEvtsPerBX = payload[lbAvEvtsPerBXStr].data<float>();
275 folderData.Valid = payload[validStr].data<cool::UInt32>();
276 mymap.insert( std::pair<cool::ValidityKey, LumiFolderData>(itr->currentRef().since(), folderData));
277 }
278
279 return mymap;
280
281}

◆ getLumiIterator()

template<class T>
std::map< cool::ValidityKey, T > CoolQuery::getLumiIterator ( const std::string & luminame,
const std::string & folder_name,
const std::string & tag,
const cool::ChannelId & id )

Definition at line 396 of file CoolQuery.h.

396 {
397
398 std::map<cool::ValidityKey, T> mymap;
399 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
400 // m_logger << Root::kWARNING << "Getting from database " << m_database << " tag " << tag << Root::GEndl;
401 if(folder_ptr->existsChannel(id) && folder_ptr->existsUserTag(tag)){
402 cool::IObjectIteratorPtr itr = folder_ptr->browseObjects(m_VKstart, m_VKstop, id, tag);
403 while (itr->goToNext()) {
404 const cool::IRecord& payload=itr->currentRef().payload();
405 mymap.insert( std::pair<cool::ValidityKey, T>(itr->currentRef().since() ,payload[luminame].data<T>()));
406 }
407 }else if(folder_ptr->existsChannel(id) && !folder_ptr->existsUserTag(tag)){
408 // ok, tag doesn't exist, still try to use an untagged way of accessing data
409 mymap = CoolQuery::getObjMapFromFolderAtChan<T>(luminame, folder_name,id);
410 }else{
411 m_logger << Root::kWARNING << "Lumi tag " << tag << " does not exist, or Lumi channel id " << id << " does not exist in database." << Root::GEndl;
412 }
413 return mymap;
414
415}
std::map< cool::ValidityKey, T > getObjMapFromFolderAtChan(const std::string &obj_name, const std::string &folder_name, const cool::ChannelId &id)
Definition CoolQuery.h:374

◆ getObjMapFromFolderAtChan()

template<class T>
std::map< cool::ValidityKey, T > CoolQuery::getObjMapFromFolderAtChan ( const std::string & obj_name,
const std::string & folder_name,
const cool::ChannelId & id )

Definition at line 374 of file CoolQuery.h.

374 {
375 // m_logger << Root::kWARNING << "Getting object [" << obj_name << "] from folder [" << folder_name << "], in channel: " << id << ", in LB range: " << (m_VKstart >> 32) << ", " << (m_VKstart & 0xFFFFFFFF) << " - " << (m_VKstop >> 32) << ","<< (m_VKstop & 0xFFFFFFFF) << Root::GEndl;
376 std::map<cool::ValidityKey, T> mymap;
377 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
378 cool::ChannelSelection chsel(id);
379 if(folder_ptr->existsChannel(id)){
380 cool::IObjectIteratorPtr itr = folder_ptr->browseObjects(m_VKstart, m_VKstop,chsel);
381 while (itr->goToNext()) {
382 const cool::IRecord& payload=itr->currentRef().payload();
383 // std::cout << "Inserting: " << (itr->currentRef().since() >> 32) << " - " << (itr->currentRef().since() & 0xFFFFFF) << ", " << payload[obj_name].data<T>() << std::endl;
384 mymap.insert( std::pair<cool::ValidityKey, T>(itr->currentRef().since() ,payload[obj_name].data<T>()));
385 }
386 }else{
387 m_logger << Root::kWARNING << "Channel " << id << " does not exist in database." << Root::GEndl;
388/* const std::map<cool::ChannelId,std::string> list = folder_ptr->listChannelsWithNames(); */
389 }
390 return mymap;
391}

◆ getTriggerLevel()

unsigned int CoolQuery::getTriggerLevel ( const std::string & triggername)

Definition at line 77 of file CoolQuery.cxx.

77 {
78
79 size_t found = triggername.find_first_of('_');
80 if(found != std::string::npos){
81 std::string s_lvl = triggername.substr(0,found);
82 if(s_lvl == "EF") return 3;
83 if(s_lvl == "L2") return 2;
84 if(s_lvl == "L1") return 1;
85 if(s_lvl == "HLT") return 2;
86 }
87
88 // Indicate no valid trigger name passed
89 return 0;
90
91}

◆ getTrigObjMapFromFolderByName()

template<class T>
std::map< cool::ValidityKey, T > CoolQuery::getTrigObjMapFromFolderByName ( const std::string & obj_name,
const std::string & folder_name,
const std::string & trigger )

Definition at line 344 of file CoolQuery.h.

344 {
345 // m_logger << Root::kWARNING << "Getting object [" << obj_name << "] from folder [" << folder_name << "], in LB range: " << (m_VKstart >> 32) << ", " << (m_VKstart & 0xFFFFFFFF) << " - " << (m_VKstop >> 32) << ","<< (m_VKstop & 0xFFFFFFFF) << Root::GEndl;
346 std::map<cool::ValidityKey, T> mymap;
347 bool found = false;
348 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
349 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(m_VKstart,m_VKstart, cool::ChannelSelection::all());
350 // loop through all triggers
351 while (obj_itr->goToNext()){
352
353 const cool::IRecord& payload=obj_itr->currentRef().payload();
354 // std::cout << "ChainNames: " << payload["ChainName"].data<std::string>() << std::endl;
355
356 if(payload["ChainName"].data<std::string>() == trigger){
357 found = true;
358 const cool::IRecord& payload=obj_itr->currentRef().payload();
359 // std::cout << "Inserting: " << (obj_itr->currentRef().since() >> 32) << " - " << (obj_itr->currentRef().since() & 0xFFFFFF) << ", " << payload[obj_name].data<T>() << std::endl;
360 mymap.insert( std::pair<cool::ValidityKey, T>(obj_itr->currentRef().since() ,payload[obj_name].data<T>()));
361 }
362 }
363
364 if(!found){
365 m_logger << Root::kERROR << "Couldn't find HLT trigger [" << trigger << "] in folder [" << folder_name << "]" << Root::GEndl;
366 }
367
368 return mymap;
369}

◆ openDbConn()

bool CoolQuery::openDbConn ( )

Definition at line 45 of file CoolQuery.cxx.

45 {
46 m_logger << Root::kINFO << "Trying to connect to database " << m_database << "..." << Root::GEndl;
47 cool::IDatabaseSvc& databasesvc = cool::DatabaseSvcFactory::databaseService();
48 try {
49 m_repsort=new ReplicaSorter();
50 coral::IConnectionServiceConfiguration& csconfig=m_coralsvc.configuration();
51 csconfig.setReplicaSortingAlgorithm(*m_repsort);
52
53 m_sourceDbPtr = databasesvc.openDatabase(m_database,true);// true --> readonly
54 // m_sourceCoraPtr=corasvc.openDatabase(m_database,true);// true --> readonly
55 //std::cout << "....database connections open OK" << std::endl;
56 return true;
57 }
58 catch (std::exception&e) {
59 m_logger << Root::kERROR << "Problem opening CORAL database: " << e.what() << Root::GEndl;
60 return false;
61 }
62 return false;
63}
coral::ConnectionService m_coralsvc
Definition CoolQuery.h:326

◆ printHLTTriggers()

void CoolQuery::printHLTTriggers ( const std::string & folder_name)

Definition at line 210 of file CoolQuery.cxx.

210 {
211
212 m_logger << Root::kINFO << "Listing available triggers [triggername(prescale, chanid)]: " << Root::GEndl;
213
214 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
215 cool::IObjectIteratorPtr obj_itr2=folder_ptr->browseObjects(m_VKstart,m_VKstart, cool::ChannelSelection::all());
216 while (obj_itr2->goToNext()){
217 const cool::IRecord& payload2=obj_itr2->currentRef().payload();
218 m_logger << Root::kINFO << payload2[chainNameStr].data<std::string>() << "(" << payload2[prescaleStr].data<cool::Float>() << ", " << payload2[chainCounterStr].data<cool::UInt32>() << "), ";
219 }
220 m_logger << Root::kINFO << Root::GEndl;
221}

◆ printL1Triggers()

void CoolQuery::printL1Triggers ( const std::string & folder_name)

Definition at line 198 of file CoolQuery.cxx.

198 {
199 m_logger << Root::kINFO << "Listing available triggers [triggername(prescale, chanid)]: " << Root::GEndl;
200 cool::IFolderPtr folder_ptr = m_sourceDbPtr->getFolder(folder_name);
201 cool::IObjectIteratorPtr obj_itr=folder_ptr->browseObjects(m_VKstart,m_VKstart, cool::ChannelSelection::all());
202 while (obj_itr->goToNext()){
203 const cool::IRecord& payload=obj_itr->currentRef().payload();
204 m_logger << Root::kINFO << payload[itemNameStr].data<std::string>() << "(" << this->getL1PrescaleFromChannelId("/TRIGGER/LVL1/Prescales",this->getL1ChannelId(payload[itemNameStr].data<std::string>(), folder_name)) << ", " << obj_itr->currentRef().channelId() << "), ";
205 }
206 m_logger << Root::kINFO << Root::GEndl;
207}
cool::Int32 getL1PrescaleFromChannelId(const std::string &folder_name, const cool::ChannelId &id)
cool::ChannelId getL1ChannelId(const std::string &trigger, const std::string &folder_name)

◆ setDb()

void CoolQuery::setDb ( const std::string & database)
inline

Definition at line 232 of file CoolQuery.h.

◆ setIOV()

void CoolQuery::setIOV ( const cool::ValidityKey start,
const cool::ValidityKey stop )

◆ setIOVForRun()

void CoolQuery::setIOVForRun ( unsigned int runnum)

Definition at line 99 of file CoolQuery.cxx.

99 {
100 cool::ValidityKey run = runnum;
101 m_VKstart = (run << 32);
102 m_VKstop = ((run+1) << 32) - 1;
103}
int run(int argc, char *argv[])

◆ setTrigger()

void CoolQuery::setTrigger ( const std::string & triggerchain)
inline

Definition at line 235 of file CoolQuery.h.

◆ transConn()

std::string CoolQuery::transConn ( const std::string & inconn)
private

Definition at line 66 of file CoolQuery.cxx.

66 {
67 // translate simple connection string (no slash) to mycool.db with given
68 // instance name, all others are left alone
69 if (inconn.find('/')==std::string::npos) {
70 return "sqlite://X;schema=mycool.db;dbname="+inconn;
71 } else {
72 return inconn;
73 }
74}

Member Data Documentation

◆ m_coralsvc

coral::ConnectionService CoolQuery::m_coralsvc
private

Definition at line 326 of file CoolQuery.h.

◆ m_database

std::string CoolQuery::m_database
private

Definition at line 329 of file CoolQuery.h.

◆ m_logger

Root::TMsgLogger CoolQuery::m_logger
private

Definition at line 334 of file CoolQuery.h.

◆ m_repsort

ReplicaSorter* CoolQuery::m_repsort
private

Definition at line 327 of file CoolQuery.h.

◆ m_sourceDbPtr

cool::IDatabasePtr CoolQuery::m_sourceDbPtr
private

Definition at line 328 of file CoolQuery.h.

◆ m_triggerchain

std::string CoolQuery::m_triggerchain
private

Definition at line 330 of file CoolQuery.h.

◆ m_valid

bool CoolQuery::m_valid
private

Definition at line 336 of file CoolQuery.h.

◆ m_VKstart

cool::ValidityKey CoolQuery::m_VKstart
private

Definition at line 331 of file CoolQuery.h.

◆ m_VKstop

cool::ValidityKey CoolQuery::m_VKstop
private

Definition at line 332 of file CoolQuery.h.


The documentation for this class was generated from the following files: