//*-- AUTHOR : Ilse Koenig
//*-- Created : 10/06/2004 by Ilse Koenig
//_HADES_CLASS_DESCRIPTION
//////////////////////////////////////////////////////////////////////////
//
// HParamFileGenerator
//
// Class to create a parameter file from Oracle
// (Only used by the runtime database)
//
//////////////////////////////////////////////////////////////////////////
#include "hparamfilegenerator.h"
#include "hparrootfileio.h"
#include "hruninfo.h"
ClassImp(HParamFileGenerator)
HParamFileGenerator::HParamFileGenerator(const char* beamtime,
const char* startAt,const char* endAt ) {
experiment=beamtime;
rangeStart=startAt;
rangeEnd=endAt;
runs=0;
logFile=0;
}
HParamFileGenerator::~HParamFileGenerator() {
if (runs) {
runs->Delete();
delete runs;
runs=0;
}
closeLogFile();
}
HParRootFileIo* HParamFileGenerator::openParameterFile(const char* filename) {
paramFilename=filename;
if (!paramFilename.IsNull()) {
HParRootFileIo* f=new HParRootFileIo;
Bool_t rc=f->open((char*)filename,"CREATE");
if (rc) {
Ssiz_t n=paramFilename.Last('.');
logFilename=paramFilename(0,n+1);
logFilename.Append("log");
closeLogFile();
logFile=new fstream();
logFile->open((char*)logFilename.Data(),ios::out);
if (logFile->rdbuf()->is_open()==1) return f;
else {
Error("openParameterFile","No log file open");
closeLogFile();
}
} else {
Error("openParameterFile","File %s already exits",filename);
delete f;
}
}
return 0;
}
void HParamFileGenerator::closeLogFile() {
if (logFile) {
logFile->close();
delete logFile;
logFile=0;
}
}
void HParamFileGenerator::setListOfRuns(TList* r) {
if (runs) {
runs->Delete();
delete runs;
runs=0;
}
runs=r;
}
void HParamFileGenerator::writeRuns() {
if (logFile&&runs) {
fstream& fout=*logFile;
fout<<"Experiment: "<<experiment<<'\n'
<<"Range: "<<rangeStart<<" - "<<rangeEnd<<'\n';
TIter next(runs);
HRunInfo* run;
while ((run=(HRunInfo*)next())) {
run->write(fout);
}
}
}
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.