|
//////////////////////////////////////////////////////////// // // BrRunsDb is a Db class which manages BrRun's with information // extracted from the BRAHMS run database. It connects to the // BRAHMS run database via the TSQLServer. There are several // ways for runs to be selected. A single run can be selected // using BrRunsDb::SelectRun(irun) where irun is the run to be // selected. Another way to select a group of runs is to use // BrRunsDb::SelectRuns(time1,time2) where time1,2 are TDatime // objects specifying time intervals for a list of runs to be // selected. // // To get the runs, use BrRunsDb::GetRun(isel) which returns // a BrRun object which was built in the SelectRun or SelectRuns // methods. // // Example: // BrRunsDb *runDb = new BrRunsDb("mysql://pii3.brahms.bnl.gov/RUNDB", // "query","query-only"); // BrDbRun *run = runDb->GetRun("1554"); // // run now contains all of the information in the run DB // extracted from run 1554. // // Alternatively, one can use: // TDatime time1(2000,6,27,0,0,0); // TDatime time2(2000,6,28,0,0,0); // TObjArray *runList = runDb->SelectRuns(Form("StartTime > %d and EndTime < %d",time1.Convert(),time2.Convert())); //select all runs of 6/27/00 // // Then to use them, use: // Int_t numruns = runList->GetEntries(); // for(isel=0;isel<numruns;isel++) { // BrRun *run = (BrRun*)runList->At(isel); // . // . // . // process this run // . // . // . // } // //////////////////////////////////////////////////////////// // $Id: BrRdbmRunsDb.cxx,v 1.2 2002/04/16 13:24:57 hagel Exp $ // $Author: hagel $ // $Date: 2002/04/16 13:24:57 $ // $Copyright: 2000 Brahms Collaboration #ifndef BRAT_BrException #include "BrException.h" #endif #ifndef BRAT_BrRdbmRunsDb #include "BrRdbmRunsDb.h" #endif #ifndef BRAT_BrRdbmDb #include "BrRdbmDb.h" #endif #ifndef __CSTDLIB__ #include <cstdlib> #endif #ifndef __IOSTREAM__ #include <iostream> #endif #ifndef __FSTREAM__ #include <fstream> #endif #ifndef ROOT_TDatime #include "TDatime.h" #endif //____________________________________________________________________ ClassImp(BrRdbmRunsDb); //____________________________________________________________________ BrRdbmRunsDb::BrRdbmRunsDb(const Char_t* name, const Char_t* title) { // Normal constructor. Singleton. fImplementation = new BrRdbmDb(name, title); } //____________________________________________________________________ BrRdbmRunsDb::~BrRdbmRunsDb() { // Empty DTOR } //____________________________________________________________________ BrRunsDb* BrRdbmRunsDb::Instance(void) { if (!fgInstance) fgInstance = new BrRdbmRunsDb; return fgInstance; } //____________________________________________________________________ TObjArray* BrRdbmRunsDb::GetXRun(const Char_t* condition) { // Find Runs that matches condition <condition> return BrDbRun::MultipleInstance(GetMultiple(BrDbRun::kTableName, condition)); } //____________________________________________________________________ BrDbRun* BrRdbmRunsDb::GetRun(const Char_t* condition) { // Find a parameter that matches condition <condition> return BrDbRun::SingleInstance(GetSingle(BrDbRun::kTableName, condition)); } //____________________________________________________________________ BrDbRun* BrRdbmRunsDb::GetRun(Int_t runNo) { // Find a parameter with name <name> belonging to detector // <detectorId> return GetRun(Form("RunNo = %d",runNo)); } //____________________________________________________________________ TObjArray* BrRdbmRunsDb::GetXFile(const Char_t* condition) { // Find Files that matches condition <condition> return BrDbFile::MultipleInstance(GetMultiple(BrDbFile::kTableName, condition)); } //____________________________________________________________________ BrDbFile* BrRdbmRunsDb::GetFile(const Char_t* condition) { // Find a file that matches condition <condition> return BrDbFile::SingleInstance(GetSingle(BrDbFile::kTableName, condition)); } //____________________________________________________________________ BrDbFile* BrRdbmRunsDb::GetFile(Int_t runNo, Int_t sequnce) { // Find a file with name <name> belonging to detector // <detectorId> return GetFile(Form("RunNo = %d AND SeqNo = %d",runNo, sequnce)); } //____________________________________________________________________ TObjArray* BrRdbmRunsDb::GetXFile(Int_t runno) { // Find Files that belongs to a given run return GetXFile(Form("RunNo = %d", runno)); } //____________________________________________________________________ BrDbFile* BrRdbmRunsDb::GetFileByTime(Int_t start, Int_t stop) { // Find a file with name <name> belonging to detector // <detectorId> if(stop < 0) return GetFile(Form("FileStartTime <= %d AND " "FileEndTime >= %d",start, start)); return GetFile(Form("FileStartTime <= %d AND " "FileEndTime >= %d",start, start)); } //____________________________________________________________________ TObjArray* BrRdbmRunsDb::GetXMagnet(const Char_t* condition) { // Find Magnets that matches condition <condition> return BrDbMagnet::MultipleInstance(GetMultiple(BrDbMagnet::kTableName, condition)); } //____________________________________________________________________ BrDbMagnet* BrRdbmRunsDb::GetMagnet(const Char_t* condition) { // Find a magnet that matches condition <condition> return BrDbMagnet::SingleInstance(GetSingle(BrDbMagnet::kTableName, condition)); } //____________________________________________________________________ BrDbMagnet* BrRdbmRunsDb::GetMagnet(Int_t magnet, Int_t start, Int_t stop) { // Find a magnet with name <name> belonging to detector // <detectorId> if(stop < 0) return GetMagnet(Form("Magnet = %d AND Time = %d", magnet, start)); return GetMagnet(Form("Magnet = %d AND Time >= %d AND Time < %d", magnet, start, stop)); } //____________________________________________________________________ TObjArray* BrRdbmRunsDb::GetXConditionsKeithley(const Char_t* condition) { // Find Files that matches condition <condition> return BrDbConditionsKeithley::MultipleInstance( GetMultiple(BrDbConditionsKeithley::kTableName,condition)); } //____________________________________________________________________ BrDbConditionsKeithley* BrRdbmRunsDb::GetConditionsKeithley(const Char_t* condition) { // Find a Keithley condition that matches condition <condition> return BrDbConditionsKeithley::SingleInstance( GetSingle(BrDbConditionsKeithley::kTableName,condition)); } //____________________________________________________________________ TObjArray* BrRdbmRunsDb::GetXConditionsKeithley(Int_t unit, Int_t chan, Int_t start, Int_t end) { //Find a Keithley condition for unit, channel between times of //start and end return GetXConditionsKeithley( Form("Unit=%d and Channel=%d and Time>%d and Time<%d order by Time", unit,chan,start,end)); } //____________________________________________________________________ TObjArray* BrRdbmRunsDb::GetXShiftReport(const Char_t* condition) { // Find ShiftReports that matches condition <condition> return BrDbShiftReport::MultipleInstance(GetMultiple(BrDbShiftReport::kTableName, condition)); } //____________________________________________________________________ BrDbShiftReport* BrRdbmRunsDb::GetShiftReport(const Char_t* condition) { // Find a shift report that matches condition <condition> return BrDbShiftReport::SingleInstance(GetSingle(BrDbShiftReport::kTableName, condition)); } //____________________________________________________________________ BrDbShiftReport* BrRdbmRunsDb::GetShiftReport(Int_t start, Int_t stop) { // Find a shift report with name <name> belonging to detector // <detectorId> if(stop < 0) return GetShiftReport(Form("Time = %d", start)); return GetShiftReport(Form("Time >= %d AND Time < %d", start, stop)); } // // EOF // |
||||||
This page automatically generated by script docBrat by Christian Holm |
Copyright ; 2002 BRAHMS Collaboration
<brahmlib@rcf.rhic.bnl.gov>
|