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 TGO4ANALYSISSTEP_H 00017 #define TGO4ANALYSISSTEP_H 00018 00019 #include "TNamed.h" 00020 #include "TString.h" 00021 00022 #include "Go4Log/TGo4Log.h" 00023 00024 #include "Go4Event/TGo4EventElement.h" 00025 #include "Go4Event/TGo4EventProcessor.h" 00026 #include "Go4Event/TGo4EventStore.h" 00027 #include "Go4Event/TGo4EventSource.h" 00028 #include "Go4Event/TGo4EventFactory.h" 00029 00030 #include "Go4Event/TGo4EventProcessorParameter.h" 00031 #include "Go4Event/TGo4EventStoreParameter.h" 00032 #include "Go4Event/TGo4EventSourceParameter.h" 00033 00034 class TGo4Analysis; 00035 class TGo4AnalysisStepStatus; 00036 class TGo4AnalysisStatus; 00037 class TGo4Condition; 00038 class TGo4Fitter; 00039 00056 class TGo4AnalysisStep : public TNamed { 00057 public: 00058 00061 TGo4AnalysisStep(const char* name, 00062 TGo4EventFactory* eventfactory, 00063 TGo4EventSourceParameter* sourcetype=0, 00064 TGo4EventStoreParameter* storetype=0, 00065 TGo4EventProcessorParameter* processortype=0); 00066 00068 TGo4AnalysisStep(); 00069 00070 virtual ~TGo4AnalysisStep(); 00071 00076 void SetEventSource(TGo4EventSourceParameter* kind); 00077 00078 00085 void NewEventSource(TGo4EventSourceParameter * kind); 00086 00088 void CloseEventSource(); 00089 00094 void SetEventStore(TGo4EventStoreParameter* kind); 00095 00102 void NewEventStore(TGo4EventStoreParameter * kind); 00103 00105 void CloseEventStore(); 00106 00111 void SetEventProcessor(TGo4EventProcessorParameter* kind); 00112 00119 void NewEventProcessor(TGo4EventProcessorParameter * kind); 00120 00122 void CloseEventProcessor(); 00123 00125 void NewInputEvent(); 00126 00128 void DeleteInputEvent(); 00129 00131 void NewOutputEvent(); 00132 00134 void DeleteOutputEvent(); 00135 00138 virtual void InitEventClasses(); 00139 00141 void SetSourceEnabled(Bool_t on=kTRUE) { fbSourceEnabled=on; } 00142 00144 void SetStoreEnabled(Bool_t on=kTRUE) { fbStoreEnabled=on; } 00145 00147 void SetProcessEnabled(Bool_t on=kTRUE) { fbProcessEnabled=on; } 00148 00150 void SetErrorStopEnabled(Bool_t on) { fbErrorStopEnabled=on; } 00151 00155 void ResetErrorStop() { fbErrorStopped=0; } 00156 00161 void SetInputEvent(TGo4EventElement* in) { fxInputEvent=in; } 00162 00164 void SetPreviousStep(TGo4AnalysisStep * pre) { fxPrevious=pre; } 00165 00167 TGo4AnalysisStep* GetPreviousStep() { return fxPrevious; } 00168 00172 TGo4EventElement* GetOutputEvent() { return fxOutputEvent; } 00173 00178 TGo4EventElement* GetInputEvent() { return fxInputEvent; } 00179 00182 TGo4EventProcessor * GetEventProcessor() { return fxEventProcessor; } 00183 00184 Bool_t IsStoreEnabled() { return fbStoreEnabled; } 00185 00186 Bool_t IsStoreImplemented() { return fbStoreImplemented; } 00187 00188 Bool_t IsSourceImplemented() { return fbSourceImplemented; } 00189 00190 Bool_t IsSourceEnabled() { return fbSourceEnabled; } 00191 00192 Bool_t IsProcessEnabled() { return fbProcessEnabled; } 00193 00195 Bool_t IsErrorStopped() { return fbErrorStopped; } 00196 00198 Bool_t IsErrorStopEnabled() { return fbErrorStopEnabled; } 00199 00201 Int_t GetProcessStatus() { return fiProcessStatus; } 00202 00204 const char* GetStatusMessage() { fcBuffer = fcStatusMessage; return fcBuffer.Data(); } 00205 00207 void SetStatusMessage(const char* txt) { fcStatusMessage = txt; } 00208 00214 Bool_t IsMatchingPrevious(); 00215 00218 const char* GetEventStoreName(); 00219 00222 void StoreCalibration(); 00223 00225 Int_t Store(TGo4Parameter* cali); 00226 00228 Int_t Store(TGo4Condition* conny); 00229 00231 Int_t Store(TGo4Fitter* fitter); 00232 00234 Int_t Store(TFolder* fold); 00235 00240 void Process(); 00241 00244 void Close(); 00245 00247 void SetStatus(TGo4AnalysisStepStatus * state); 00248 00250 TGo4AnalysisStepStatus * CreateStatus(); 00251 00252 private: 00253 00255 TGo4Analysis* fxOwner; 00256 00259 TGo4AnalysisStep * fxPrevious; 00260 00264 TGo4EventFactory * fxEventFactory; 00265 00269 TGo4EventStore * fxEventStore; 00270 00275 TGo4EventSource * fxEventSource; 00276 00281 TGo4EventProcessor * fxEventProcessor; 00282 00286 TGo4EventElement * fxInputEvent; 00287 00292 TGo4EventElement * fxOutputEvent; 00293 00298 TGo4EventSourceParameter* fxSourceType; 00299 00304 TGo4EventStoreParameter* fxStoreType; 00305 00310 TGo4EventProcessorParameter* fxProcessorType; 00311 00315 Bool_t fbSourceEnabled; 00316 00319 Bool_t fbSourceImplemented; 00320 00324 Bool_t fbStoreEnabled; 00325 00328 Bool_t fbStoreImplemented; 00329 00335 Bool_t fbProcessEnabled; 00336 00342 Bool_t fbErrorStopEnabled; 00343 00345 Bool_t fbErrorStopped; 00346 00348 Int_t fiProcessStatus; 00349 00351 TString fcStatusMessage; 00352 00354 TString fcBuffer; 00355 00356 ClassDef(TGo4AnalysisStep,1) 00357 }; 00358 00359 #endif //TGO4ANALYSISSTEP_H 00360 00361 //----------------------------END OF GO4 SOURCE FILE ---------------------