BRAT 2.4.5
Class index
Full class index
brahmlib
BRAHMS
ROOT page
////////////////////////////////////////////////////////////
//
// 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>
Last Update on by

Validate HTML
Validate CSS