00001 // $Id: TGo4AnalysisStepManager.h 1174 2014-03-05 12:12:05Z linev $ 00002 //----------------------------------------------------------------------- 00003 // The GSI Online Offline Object Oriented (Go4) Project 00004 // Experiment Data Processing at EE department, GSI 00005 //----------------------------------------------------------------------- 00006 // Copyright (C) 2000- GSI Helmholtzzentrum für Schwerionenforschung GmbH 00007 // Planckstr. 1, 64291 Darmstadt, Germany 00008 // Contact: http://go4.gsi.de 00009 //----------------------------------------------------------------------- 00010 // This software can be used under the license agreements as stated 00011 // in Go4License.txt file which is part of the distribution. 00012 //----------------------------------------------------------------------- 00013 00014 #ifndef TGO4ANALYSISSTEPMANAGER_H 00015 #define TGO4ANALYSISSTEPMANAGER_H 00016 00017 #include "TNamed.h" 00018 00019 class TIterator; 00020 class TMutex; 00021 class TObjArray; 00022 class TFolder; 00023 00024 class TGo4EventProcessorParameter; 00025 class TGo4EventSourceParameter; 00026 class TGo4EventStoreParameter; 00027 class TGo4EventElement; 00028 class TGo4AnalysisStep; 00029 class TGo4AnalysisStatus; 00030 class TGo4Parameter; 00031 class TGo4Condition; 00032 class TGo4Fitter; 00033 00040 class TGo4AnalysisStepManager : public TNamed { 00041 public: 00042 TGo4AnalysisStepManager(const char* name); 00043 00044 virtual ~TGo4AnalysisStepManager(); 00045 00051 Int_t ProcessAnalysisSteps(); 00052 00055 TGo4AnalysisStep* GetAnalysisStep(const char* name); 00056 00058 Int_t GetNumberOfAnalysisSteps(); 00059 00061 TGo4AnalysisStep* GetAnalysisStepNum(Int_t number); 00062 00070 Bool_t AddAnalysisStep(TGo4AnalysisStep* next); 00071 00074 void CloseAnalysis(); 00075 00079 virtual Bool_t InitEventClasses(); 00080 00082 void UpdateStatus(TGo4AnalysisStatus* state); 00083 00085 void SetStatus(TGo4AnalysisStatus * state); 00086 00088 void AutoSave(); 00089 00093 Bool_t SetFirstStep(const char* name); 00094 00099 Bool_t SetLastStep(const char* name); 00100 00111 Bool_t SetStepStorage(const char* name, Bool_t on); 00112 00118 Bool_t NewStepStore(const char * name, TGo4EventStoreParameter* par); 00119 00125 Bool_t NewStepSource(const char * name, TGo4EventSourceParameter * par); 00126 00132 Bool_t NewStepProcessor(const char * name, TGo4EventProcessorParameter * par); 00133 00140 Int_t Store(const char * name, TGo4Parameter* obj); 00141 00148 Int_t Store(const char * name, TGo4Condition* con); 00149 00156 Int_t Store(const char * name, TGo4Fitter* fit); 00157 00164 Int_t Store(const char * name, TFolder* folder); 00165 00172 TGo4EventElement* GetInputEvent(const char* stepname); 00173 00181 TGo4EventElement* GetInputEvent(Int_t stepindex); 00182 00189 TGo4EventElement* GetOutputEvent(const char* stepname); 00190 00200 TGo4EventElement* GetOutputEvent(Int_t stepindex); 00201 00207 TGo4EventElement* GetOutputEvent() { return fxOutputEvent; } 00208 00209 void SetOutputEvent(TGo4EventElement * event) { fxOutputEvent=event; } 00210 00211 Int_t IsErrorStopEnabled(); 00212 00213 void SetStepChecking(Bool_t on=kTRUE) { fbStepCheckingMode=on; } 00214 00215 Bool_t IsStepChecking() { return fbStepCheckingMode; } 00216 00217 private: 00218 00221 TObjArray* fxStepList; 00222 00224 TIterator* fxStepIterator; 00225 00229 Int_t fiFirstStepIndex; 00230 00235 Int_t fiLastStepIndex; 00236 00239 Int_t fiCurrentStepIndex; 00240 00245 Bool_t fbStepCheckingMode; 00246 00249 TGo4AnalysisStep * fxCurrentStep; 00250 00253 TGo4EventElement* fxOutputEvent; 00254 }; 00255 00256 #endif //TGO4ANALYSISSTEPMANAGER_H