Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

/Go4DynamicList/TGo4DynamicEntry.h

Go to the documentation of this file.
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 TGO4DYNAMICENTRY_H
00017 #define TGO4DYNAMICENTRY_H
00018 
00019 #include "TNamed.h"
00020 #include "TString.h"
00021 
00022 class TH1;
00023 class TClass;
00024 class TDataMember;
00025 class TGo4Condition;
00026 class TGo4EventElement;
00027 class TGo4DynamicEntryStatus;
00028 
00029 #define __MAXCONDIM__ 2
00030 
00039 class TGo4DynamicEntry : public TNamed {
00040    public:
00041 
00043     static const Text_t fgcNOCONDITION[];
00044 
00046     static const Text_t fgcNODATA[];
00047 
00049     static const Text_t fgcNOEVENT[];
00050 
00052     static const UInt_t fguMAXCONDIMENSION;
00053 
00055     TGo4DynamicEntry();
00056     
00057     TGo4DynamicEntry(const Text_t* name);
00058 
00059     virtual ~TGo4DynamicEntry();
00060 
00062     virtual Int_t Process() =0;
00063 
00065     void EnableProcessing(Bool_t on=kTRUE) { fbProcessEntry=on; }
00066 
00071     virtual TGo4DynamicEntryStatus * CreateStatus()=0;
00072 
00074     virtual void SetStatus(TGo4DynamicEntryStatus * state);
00075 
00077     virtual void Reset();
00078 
00082     virtual void InitPointers();
00083 
00085     void SetConditionName(const Text_t * name);
00086 
00091     virtual void CleanupCondition(TGo4Condition * con);
00092 
00098     virtual void CleanupEvent(TGo4EventElement * ev);
00099 
00104     virtual void CleanupHistogram(TH1 * his);
00105 
00107     Bool_t TestCondition();
00108 
00112     void SetConVarName(UInt_t ix, const Text_t * name);
00113 
00117     void SetConEventName(UInt_t ix, const Text_t * name);
00118 
00119   protected:
00124     virtual void UpdateStatus(TGo4DynamicEntryStatus * state);
00125 
00129     TDataMember* FindDataMember(TClass* eventclass, const Text_t* memname,
00130                                 Long_t* totaloffset);
00131 
00133     Int_t Membersize(const Text_t* name);
00134 
00137     Bool_t fbProcessEntry;
00138 
00141     Bool_t fbPointerInitDone;
00142 
00143   private:
00144 
00146     TGo4Condition* fxCondition;                  
00147 
00149     TString fxConditionName;
00150 
00153     TString fxConVarName[__MAXCONDIM__];
00154 
00158     TString fxConEventName[__MAXCONDIM__];
00159 
00162     TGo4EventElement* fxConEvent[__MAXCONDIM__]; 
00163 
00166     Float_t* fxConDataFloat[__MAXCONDIM__];      
00167 
00170     Double_t* fxConDataDouble[__MAXCONDIM__];
00171     
00174     Int_t* fxConDataInt[__MAXCONDIM__];
00175     
00178     Short_t* fxConDataShort[__MAXCONDIM__];
00179     
00182     Char_t* fxConDataChar[__MAXCONDIM__];
00183    
00186     Long_t* fxConDataLong[__MAXCONDIM__];
00187    
00190     Bool_t* fxConDataBool[__MAXCONDIM__];
00191     
00194     UInt_t* fxConDataUInt[__MAXCONDIM__];
00195     
00198     UShort_t* fxConDataUShort[__MAXCONDIM__];
00199     
00202     UChar_t* fxConDataUChar[__MAXCONDIM__];
00203    
00206     ULong_t* fxConDataULong[__MAXCONDIM__];
00207 
00208   ClassDef(TGo4DynamicEntry,3)
00209 };
00210 
00211 #endif //TGO4DYNAMICENTRY_H
00212 
00213 //----------------------------END OF GO4 SOURCE FILE ---------------------

Generated on Tue Nov 8 10:55:52 2005 for Go4-v2.10-5 by doxygen1.2.15