ROOT logo
//*-- 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_t* beamtime,
		                         const Char_t* startAt,const Char_t* 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_t* filename) {
  paramFilename=filename;
  if (!paramFilename.IsNull()) {
    HParRootFileIo* f=new HParRootFileIo;
    Bool_t rc=f->open(filename,"CREATE");
    if (rc) {
      Ssiz_t n=paramFilename.Last('.');
      logFilename=paramFilename(0,n+1);
      logFilename.Append("log");
      closeLogFile();
      logFile=new fstream();
      logFile->open((Char_t*)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);
    }
  }
}
 hparamfilegenerator.cc:1
 hparamfilegenerator.cc:2
 hparamfilegenerator.cc:3
 hparamfilegenerator.cc:4
 hparamfilegenerator.cc:5
 hparamfilegenerator.cc:6
 hparamfilegenerator.cc:7
 hparamfilegenerator.cc:8
 hparamfilegenerator.cc:9
 hparamfilegenerator.cc:10
 hparamfilegenerator.cc:11
 hparamfilegenerator.cc:12
 hparamfilegenerator.cc:13
 hparamfilegenerator.cc:14
 hparamfilegenerator.cc:15
 hparamfilegenerator.cc:16
 hparamfilegenerator.cc:17
 hparamfilegenerator.cc:18
 hparamfilegenerator.cc:19
 hparamfilegenerator.cc:20
 hparamfilegenerator.cc:21
 hparamfilegenerator.cc:22
 hparamfilegenerator.cc:23
 hparamfilegenerator.cc:24
 hparamfilegenerator.cc:25
 hparamfilegenerator.cc:26
 hparamfilegenerator.cc:27
 hparamfilegenerator.cc:28
 hparamfilegenerator.cc:29
 hparamfilegenerator.cc:30
 hparamfilegenerator.cc:31
 hparamfilegenerator.cc:32
 hparamfilegenerator.cc:33
 hparamfilegenerator.cc:34
 hparamfilegenerator.cc:35
 hparamfilegenerator.cc:36
 hparamfilegenerator.cc:37
 hparamfilegenerator.cc:38
 hparamfilegenerator.cc:39
 hparamfilegenerator.cc:40
 hparamfilegenerator.cc:41
 hparamfilegenerator.cc:42
 hparamfilegenerator.cc:43
 hparamfilegenerator.cc:44
 hparamfilegenerator.cc:45
 hparamfilegenerator.cc:46
 hparamfilegenerator.cc:47
 hparamfilegenerator.cc:48
 hparamfilegenerator.cc:49
 hparamfilegenerator.cc:50
 hparamfilegenerator.cc:51
 hparamfilegenerator.cc:52
 hparamfilegenerator.cc:53
 hparamfilegenerator.cc:54
 hparamfilegenerator.cc:55
 hparamfilegenerator.cc:56
 hparamfilegenerator.cc:57
 hparamfilegenerator.cc:58
 hparamfilegenerator.cc:59
 hparamfilegenerator.cc:60
 hparamfilegenerator.cc:61
 hparamfilegenerator.cc:62
 hparamfilegenerator.cc:63
 hparamfilegenerator.cc:64
 hparamfilegenerator.cc:65
 hparamfilegenerator.cc:66
 hparamfilegenerator.cc:67
 hparamfilegenerator.cc:68
 hparamfilegenerator.cc:69
 hparamfilegenerator.cc:70
 hparamfilegenerator.cc:71
 hparamfilegenerator.cc:72
 hparamfilegenerator.cc:73
 hparamfilegenerator.cc:74
 hparamfilegenerator.cc:75
 hparamfilegenerator.cc:76
 hparamfilegenerator.cc:77
 hparamfilegenerator.cc:78
 hparamfilegenerator.cc:79
 hparamfilegenerator.cc:80
 hparamfilegenerator.cc:81
 hparamfilegenerator.cc:82
 hparamfilegenerator.cc:83
 hparamfilegenerator.cc:84
 hparamfilegenerator.cc:85
 hparamfilegenerator.cc:86
 hparamfilegenerator.cc:87
 hparamfilegenerator.cc:88
 hparamfilegenerator.cc:89
 hparamfilegenerator.cc:90
 hparamfilegenerator.cc:91