00001 #ifndef STAR_StBFChain
00002 #define STAR_StBFChain
00003
00005
00021
00022 #include "StChain.h"
00023 #include "TFile.h"
00024 #include "TTable.h"
00025 #include "Ttypes.h"
00026 #include "Bfc.h"
00027
00028
00029 class StFileI;
00030 class TObjArray;
00031
00032 class StBFChain : public StChain {
00033 private:
00034 Bfc_st *fBFC;
00035 StFileI *fSetFiles;
00036 TString fInFile;
00037 TString fFileOut;
00038 TFile *fTFile;
00039 Int_t FDate;
00040 Int_t FTime;
00041 Int_t FDateS;
00042 Int_t FTimeS;
00043 TString fFiltTrg;
00044 Int_t fRunG;
00045 Int_t fNoChainOptions;
00046 TString Gproperty;
00047 TString Gpattern;
00048 TString Gvalue;
00049 #ifdef USE_BFCTIMESTAMP
00050 StVecBFCTS GTSOptions;
00051 #endif
00052 St_Bfc *fchainOpt;
00053 Int_t fkChain;
00054
00055 public:
00056 StBFChain(const char *name="bfc", const Bool_t UseOwnHeader = kFALSE) :
00057 StChain(name,UseOwnHeader)
00058 ,fSetFiles(0),fInFile(""),fFileOut(""),fTFile(0)
00059 ,fNoChainOptions(0), fchainOpt(0), fkChain(-1) {}
00060 #if 0
00061 StBFChain(Int_t , const char *name="bfc",const Bool_t UseOwnHeader = kFALSE) :
00062 StChain(name,UseOwnHeader)
00063 ,fSetFiles(0),fInFile(""),fFileOut(""),fTFile(0)
00064 ,fNoChainOptions(0), fchainOpt(0), fkChain(-1) {}
00065 #endif
00066 void Setup(Int_t mode=1);
00067 virtual ~StBFChain();
00068 virtual Int_t Make(int number){ SetIventNumber(number); return StChain::Make(number);};
00069 virtual Int_t Make(){return StChain::Make();};
00070 virtual Int_t Load();
00071 virtual Int_t Instantiate();
00072 virtual Int_t Init();
00073 virtual Int_t AddAB (const Char_t *after="",const StMaker *maker=0,const Int_t Opt=1);
00074 virtual Int_t AddAfter (const Char_t *after, const StMaker *maker) {return AddAB (after,maker);}
00075 virtual Int_t AddBefore (const Char_t *before,const StMaker *maker) {return AddAB (before,maker,-1);}
00076 static Int_t ParseString (const TString &tChain, TObjArray &Opt, Bool_t Sort=kFALSE);
00077 void SetFlags(const Char_t *Chain="gstar tfs");
00078 void Set_IO_Files(const Char_t *infile=0, const Char_t *outfile=0);
00079 void SetInputFile(const Char_t *infile=0);
00080 void SetOutputFile(const Char_t *outfile=0);
00081 void SetTFile(TFile *tf) {fTFile=tf;}
00082 TFile *GetTFile() const {return fTFile;}
00083 virtual Int_t kOpt(const TString *Tag, Bool_t Check = kTRUE) const;
00084 virtual Int_t kOpt(const Char_t *Tag, Bool_t Check = kTRUE) const;
00085 virtual void SetDbOptions(StMaker *db=0);
00086 virtual void SetGeantOptions(StMaker *geant=0);
00087 virtual void SetTreeOptions();
00088 virtual void SetOption(const Int_t k, const Char_t *chain="Chain");
00089 virtual void SetOption(const Char_t* Opt, const Char_t *chain="Chain") {SetOption(kOpt(Opt), chain);}
00090 virtual void SetOption(const TString* Opt, const Char_t *chain="Chain") {SetOption(kOpt(Opt),chain);}
00091 virtual void SetOptions(const Char_t* Opt, const Char_t *chain="Chain");
00092 virtual void SetOptionOff(const Char_t* Opt, const Char_t *chain="Chain") {SetOption(-kOpt(Opt),chain);}
00093 virtual void SetOptionOff(const TString* Opt, const Char_t *chain="Chain") {SetOption(-kOpt(Opt),chain);}
00094 virtual Int_t Finish();
00095 virtual Option_t* GetOption() const{return TObject::GetOption();}
00096 virtual Bool_t GetOption(const Int_t k) const;
00097 virtual Bool_t GetOption(const TString *Opt, Bool_t Check = kTRUE) const {return GetOption(kOpt(Opt,Check));}
00098 virtual Bool_t GetOption(const Char_t *Opt, Bool_t Check = kTRUE) const {return GetOption(kOpt(Opt,Check));}
00099 virtual Char_t *GetOptionString(const Char_t *);
00100 virtual const TString &GetFileIn() const {return *(&fInFile);}
00101 virtual const TString &GetFileOut() const {return *(&fFileOut);}
00102 TString GetGeometry() const;
00103 virtual Long_t ProcessLine(const char *line);
00104 virtual const char *GetCVS() const {
00105 static const char cvs[]="Tag $Name: $ $Id: StBFChain.h,v 1.54 2014/08/06 11:42:52 jeromel Exp $ built " __DATE__ " " __TIME__ ;
00106 return cvs;
00107 }
00109 ClassDef(StBFChain, 3)
00110 };
00111 #endif