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 Int_t fNoChainOptions;
00044 TString Gproperty;
00045 TString Gpattern;
00046 TString Gvalue;
00047 StVecBFCTS GTSOptions;
00048
00049 St_Bfc *fchainOpt;
00050 Int_t fkChain;
00051
00052 public:
00053 StBFChain(const char *name="bfc", const Bool_t UseOwnHeader = kFALSE) :
00054 StChain(name,UseOwnHeader)
00055 ,fSetFiles(0),fInFile(""),fFileOut(""),fTFile(0)
00056 ,fNoChainOptions(0), fchainOpt(0), fkChain(-1) {}
00057 #if 0
00058 StBFChain(Int_t , const char *name="bfc",const Bool_t UseOwnHeader = kFALSE) :
00059 StChain(name,UseOwnHeader)
00060 ,fSetFiles(0),fInFile(""),fFileOut(""),fTFile(0)
00061 ,fNoChainOptions(0), fchainOpt(0), fkChain(-1) {}
00062 #endif
00063 void Setup(Int_t mode=1);
00064 virtual ~StBFChain();
00065 virtual Int_t Make(int number){ SetIventNumber(number); return StChain::Make(number);};
00066 virtual Int_t Make(){return StChain::Make();};
00067 virtual Int_t Load();
00068 virtual Int_t Instantiate();
00069 virtual Int_t Init();
00070 virtual Int_t AddAB (const Char_t *after="",const StMaker *maker=0,const Int_t Opt=1);
00071 virtual Int_t AddAfter (const Char_t *after, const StMaker *maker) {return AddAB (after,maker);}
00072 virtual Int_t AddBefore (const Char_t *before,const StMaker *maker) {return AddAB (before,maker,-1);}
00073 static Int_t ParseString (const TString &tChain, TObjArray &Opt, Bool_t Sort=kFALSE);
00074 void SetFlags(const Char_t *Chain="gstar tfs");
00075 void Set_IO_Files(const Char_t *infile=0, const Char_t *outfile=0);
00076 void SetInputFile(const Char_t *infile=0);
00077 void SetGC(const Char_t *queue=
00078 "-s;dst runc;"
00079 "-q;numberOfPrimaryTracks>1500;"
00080 );
00081
00082 void SetOutputFile(const Char_t *outfile=0);
00083 void SetTFile(TFile *tf) {fTFile=tf;}
00084 TFile *GetTFile() const {return fTFile;}
00085 virtual Int_t kOpt(const TString *Tag, Bool_t Check = kTRUE) const;
00086 virtual Int_t kOpt(const Char_t *Tag, Bool_t Check = kTRUE) const;
00087 virtual void SetDbOptions(StMaker *db=0);
00088 virtual void SetGeantOptions(StMaker *geant=0);
00089 virtual void SetTreeOptions();
00090 virtual void SetOption(const Int_t k, const Char_t *chain="Chain");
00091 virtual void SetOption(const Char_t* Opt, const Char_t *chain="Chain") {SetOption(kOpt(Opt), chain);}
00092 virtual void SetOption(const TString* Opt, const Char_t *chain="Chain") {SetOption(kOpt(Opt),chain);}
00093 virtual void SetOptions(const Char_t* Opt, const Char_t *chain="Chain");
00094 virtual void SetOptionOff(const Char_t* Opt, const Char_t *chain="Chain") {SetOption(-kOpt(Opt),chain);}
00095 virtual void SetOptionOff(const TString* Opt, const Char_t *chain="Chain") {SetOption(-kOpt(Opt),chain);}
00096 virtual Int_t Finish();
00097 virtual Option_t* GetOption() const{return TObject::GetOption();}
00098 virtual Bool_t GetOption(const Int_t k) const;
00099 virtual Bool_t GetOption(const TString *Opt, Bool_t Check = kTRUE) const {return GetOption(kOpt(Opt,Check));}
00100 virtual Bool_t GetOption(const Char_t *Opt, Bool_t Check = kTRUE) const {return GetOption(kOpt(Opt,Check));}
00101 virtual Char_t *GetOptionString(const Char_t *);
00102 virtual const TString &GetFileIn() const {return *(&fInFile);}
00103 virtual const TString &GetFileOut() const {return *(&fFileOut);}
00104 TString GetGeometry() const;
00105 virtual Long_t ProcessLine(const char *line);
00106 virtual const char *GetCVS() const {
00107 static const char cvs[]="Tag $Name: $ $Id: StBFChain.h,v 1.50 2011/11/28 22:47:04 jeromel Exp $ built "__DATE__" "__TIME__ ;
00108 return cvs;
00109 }
00111 ClassDef(StBFChain, 3)
00112 };
00113 #endif