#ifndef HGEANTINPUT_H #define HGEANTINPUT_H // // Reads and stores filenames from initialization-file // A number of geoMaxFiles files can be stored in the array geoFiles for the geometry // A number of hitMaxFiles files can be stored in the array hitFiles for the hit // definitions // A number of tupMaxFiles files can be stored in the array tupFiles for output ntupel files. // Is instantiatiated as a global class in hgeantinit.cc // #include "TString.h" class HGeantInput { protected: // Name of the initialization-file TString sourceFile; // Numbers of filenames for geometry/hits/field/ntuples/events // read from the initialization-file int geoNoFiles; int hitNoFiles; int fieldNoFiles; int tupNoFiles; int evNoFiles; int rootNoFiles; // Arrays of filenames for geometry/hits/tuples/events // to be set by the command interface TString * geoFiles; TString * hitFiles; TString * fieldFiles; TString * tupFiles; TString * evFiles; TString * rootFiles; // File defining subsets of detector geometry TString detSetupFile; // Parameter file TString paramFile; // simulation reference run (name) in database TString simulRefRun; // simulation reference run (name) in database Int_t simulRefRunId; // date to read historic data from database TString historyDate; // flag to skip any database activities TString dbSupport; // file name for geometry debug output TString debugFile; // Keywords to find the startposition for reading the filenames for // geo/hit/param/tup/event definition TString hitKey; TString fieldKey; TString tupKey; TString geoKey1; TString geoKey2; TString detSetupKey; TString evKey; TString rootKey; // a ROOT file instead of RZT is asked for TString debugKey; // Keywords for reading geometry from database TString paramKey; TString refRunKey; TString refRunIdKey; TString historyKey; // Keywords for database support TString dbSupportKey; // Empty string TString empty; public: // maximum number of geo/hit/tuple/event //files read from initialization-file int geoMaxFiles; int hitMaxFiles; int tupMaxFiles; int evMaxFiles; int fieldMaxFiles; int rootMaxFiles; // Constructor called with name of initialization-file as parameter HGeantInput() { geoMaxFiles=20; geoNoFiles=0; geoFiles=new TString [geoMaxFiles]; geoKey1=".geo"; geoKey2="_gdb"; hitMaxFiles=20; hitNoFiles=0; hitFiles=new TString [hitMaxFiles]; hitKey=".hit"; fieldMaxFiles=10; fieldNoFiles=0; fieldFiles=new TString [fieldMaxFiles]; fieldKey=".map"; tupMaxFiles=100; tupNoFiles=0; tupFiles=new TString [tupMaxFiles]; tupKey=".tup"; evMaxFiles=10; evNoFiles=0; evFiles=new TString [evMaxFiles]; evKey=".evt"; paramKey="ParameterFile:"; refRunKey="SimulRefRunDb:"; refRunIdKey="SimulRefRunId:"; simulRefRunId=0; historyKey="HistoryDateDb:"; dbSupportKey="DbSupport:"; dbSupport="ON"; rootMaxFiles=100; rootNoFiles=0; rootFiles=new TString [rootMaxFiles]; rootKey=".root"; detSetupKey=".setup"; debugKey="DebugFile:"; } ~HGeantInput(){ delete [] geoFiles; delete [] hitFiles; delete [] fieldFiles; delete [] tupFiles; delete [] evFiles; delete [] rootFiles; } void iniSourceFile(TString & s){ sourceFile=s; } // reads filenames from initialization-file and // stores them in the array geoFiles and hitFiles int readFileNames(); // shows all filenames stored in arrays geoFiles and hitFiles void showFileNames(); // returns number of filenames for geometry/hit/ntuples/event/field int getGeoNoFiles() {return geoNoFiles;} int getHitNoFiles() {return hitNoFiles;} int getFieldNoFiles() {return fieldNoFiles;} int getTupNoFiles() {return tupNoFiles;} int getEvNoFiles() {return evNoFiles;} int getRootNoFiles() {return rootNoFiles;} // returns the filename from the array geoFiles/hitFiles/etc. //tupFiles/evFiles at position (index) TString & getGeoFileName(int index) { if(index>=0 && index=0 && index=0 && index=0 && index=0 && index=0 && index