00001 //--------------------------------------------------------------- 00002 // Go4 Release Package v2.10-5 (build 21005) 00003 // 03-Nov-2005 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at DVEE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 #ifndef TGO4FILESTORE_H 00017 #define TGO4FILESTORE_H 00018 00019 #include "Go4Event/TGo4EventStore.h" 00020 00021 #include "TFile.h" 00022 #include "TTree.h" 00023 00024 #include "Go4EventServer/TGo4FileStoreParameter.h" 00025 00026 00027 class TGo4EventCalibration; 00028 00029 class TGo4EventElement; 00030 00041 class TGo4FileStore : public TGo4EventStore { 00042 public: 00043 00044 TGo4FileStore(); 00045 00046 TGo4FileStore(const char* name, 00047 Int_t splitlevel=1, 00048 Int_t compression=1, 00049 Bool_t overwrite=kFALSE, 00050 Int_t autosavesize=10000000, 00051 Int_t bufsize=64000); 00052 00053 TGo4FileStore(TGo4FileStoreParameter* par); 00054 00055 virtual ~TGo4FileStore(); 00056 00059 virtual Int_t Store(TGo4EventElement* event); 00060 00062 virtual Int_t Store(TGo4Parameter* cali); 00063 00065 virtual Int_t Store(TGo4Condition* conny); 00066 00068 virtual Int_t Store(TGo4Fitter* fitter); 00069 00071 virtual Int_t Store(TFolder* fold); 00072 00074 void SetCompression(Int_t comp); 00075 00077 void SetAutoSave(Int_t bytesinterval); 00078 00081 static const Text_t fgcEVBRANCHNAME[]; 00082 00084 static const Text_t fgcFILESUF[]; 00085 00087 static const Text_t fgcTREESUF[]; 00088 00090 static const Int_t fgiFILESPLITSIZE; 00091 00093 TTree* GetTree() { return fxTree; } 00094 00095 private: 00096 00098 void WriteToStore(TNamed* ob); 00099 00100 TFile* fxFile; 00101 00102 TTree * fxTree; 00103 00106 Bool_t fbBranchExists; 00107 00109 TGo4EventElement * fxEvent; 00110 00112 Int_t fiSplit; 00113 00115 Int_t fiBufsize; 00116 00118 Int_t fiFillCount; 00119 00120 ClassDef(TGo4FileStore,1) 00121 }; 00122 00123 #endif //TGO4FILESTORE_H 00124 00125 //----------------------------END OF GO4 SOURCE FILE ---------------------