00001 //------------------------------------------------------------- 00002 // Go4 Release Package v3.04-01 (build 30401) 00003 // 28-November-2008 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at EE 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 TGO4ANALYSISSTEPMANAGER_H 00017 #define TGO4ANALYSISSTEPMANAGER_H 00018 00019 #include "TNamed.h" 00020 00021 class TIterator; 00022 class TMutex; 00023 class TObjArray; 00024 class TFolder; 00025 00026 class TGo4EventProcessorParameter; 00027 class TGo4EventSourceParameter; 00028 class TGo4EventStoreParameter; 00029 class TGo4EventElement; 00030 class TGo4AnalysisStep; 00031 class TGo4AnalysisStatus; 00032 class TGo4Parameter; 00033 class TGo4Condition; 00034 class TGo4Fitter; 00035 00042 class TGo4AnalysisStepManager : public TNamed { 00043 public: 00044 TGo4AnalysisStepManager(const char* name); 00045 00046 virtual ~TGo4AnalysisStepManager(); 00047 00053 Int_t ProcessAnalysisSteps(); 00054 00056 TGo4AnalysisStep* GetAnalysisStep(const char* name); 00057 00065 Bool_t AddAnalysisStep(TGo4AnalysisStep* next); 00066 00069 void CloseAnalysis(); 00070 00074 virtual Bool_t InitEventClasses(); 00075 00077 void UpdateStatus(TGo4AnalysisStatus* state); 00078 00080 void SetStatus(TGo4AnalysisStatus * state); 00081 00083 void AutoSave(); 00084 00088 Bool_t SetFirstStep(const Text_t* name); 00089 00094 Bool_t SetLastStep(const Text_t* name); 00095 00106 Bool_t SetStepStorage(const Text_t* name, Bool_t on); 00107 00113 Bool_t NewStepStore(const Text_t * name, TGo4EventStoreParameter* par); 00114 00120 Bool_t NewStepSource(const Text_t * name, TGo4EventSourceParameter * par); 00121 00127 Bool_t NewStepProcessor(const Text_t * name, TGo4EventProcessorParameter * par); 00128 00135 Int_t Store(const Text_t * name, TGo4Parameter* obj); 00136 00143 Int_t Store(const Text_t * name, TGo4Condition* con); 00144 00151 Int_t Store(const Text_t * name, TGo4Fitter* fit); 00152 00159 Int_t Store(const Text_t * name, TFolder* folder); 00160 00167 TGo4EventElement* GetInputEvent(const char* stepname); 00168 00176 TGo4EventElement* GetInputEvent(Int_t stepindex); 00177 00184 TGo4EventElement* GetOutputEvent(const char* stepname); 00185 00195 TGo4EventElement* GetOutputEvent(Int_t stepindex); 00196 00202 TGo4EventElement* GetOutputEvent() { return fxOutputEvent; } 00203 00204 void SetOutputEvent(TGo4EventElement * event) { fxOutputEvent=event; } 00205 00206 Int_t IsErrorStopEnabled(); 00207 00208 void SetStepChecking(Bool_t on=kTRUE) { fbStepCheckingMode=on; } 00209 00210 Bool_t IsStepChecking() { return fbStepCheckingMode; } 00211 00212 private: 00213 00216 TObjArray* fxStepList; 00217 00219 TMutex* fxStepMutex; 00220 00222 TIterator* fxStepIterator; 00223 00227 Int_t fiFirstStepIndex; 00228 00233 Int_t fiLastStepIndex; 00234 00237 Int_t fiCurrentStepIndex; 00238 00243 Bool_t fbStepCheckingMode; 00244 00247 TGo4AnalysisStep * fxCurrentStep; 00248 00251 TGo4EventElement* fxOutputEvent; 00252 }; 00253 00254 #endif //TGO4ANALYSISSTEPMANAGER_H 00255 00256 //----------------------------END OF GO4 SOURCE FILE ---------------------