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 TGO4HISTOGRAMENTRY_H 00017 #define TGO4HISTOGRAMENTRY_H 00018 00019 00020 #include "Go4DynamicList/TGo4DynamicEntry.h" 00021 #include "TString.h" 00022 00023 /* maximum dimension of histogram processable in dynamic list */ 00024 #define __MAXHISDIM__ 3 00025 00026 class TH1; 00027 class TGo4EventElement; 00028 class TGo4DynamicEntryStatus; 00029 class TGo4HistogramEntryStatus; 00030 class TGo4Condition; 00031 class TGo4EventDataIndex; 00032 00038 class TGo4HistogramEntry : public TGo4DynamicEntry { 00039 00040 public: 00041 00043 static const UInt_t fguMAXHISDIMENSION; 00044 00045 TGo4HistogramEntry(const Text_t * name); 00046 00047 TGo4HistogramEntry(); 00048 00049 virtual ~TGo4HistogramEntry(); 00050 00055 TGo4DynamicEntryStatus * CreateStatus(); 00056 00058 Int_t Process(); 00059 00061 void SetHistogramName(const Text_t * name); 00062 00066 void SetHisVarName(UInt_t ix, const Text_t * name); 00067 00071 void SetHisEventName(UInt_t ix, const Text_t * name); 00072 00077 virtual void CleanupHistogram(TH1 * his); 00078 00080 virtual void Reset(); 00081 00085 virtual void InitPointers(); 00086 00088 virtual void SetStatus(TGo4DynamicEntryStatus * state); 00089 00095 virtual void CleanupEvent(TGo4EventElement * ev); 00096 00097 private: 00102 void UpdateStatus(TGo4DynamicEntryStatus * state); 00103 00105 TH1* fxHistogram; 00106 00108 TString fxHistogramName; 00109 00111 TString fxHisVarName[__MAXHISDIM__]; 00112 00115 TString fxHisEventName[__MAXHISDIM__]; 00116 00119 TGo4EventElement* fxHisEvent[__MAXHISDIM__]; 00120 00123 Float_t* fxHisDataFloat[__MAXHISDIM__]; 00124 00127 Double_t* fxHisDataDouble[__MAXHISDIM__]; 00128 00131 Int_t* fxHisDataInt[__MAXHISDIM__]; 00132 00135 Short_t* fxHisDataShort[__MAXHISDIM__]; 00136 00139 Char_t* fxHisDataChar[__MAXHISDIM__]; 00140 00143 Long_t* fxHisDataLong[__MAXHISDIM__]; 00144 00147 Bool_t* fxHisDataBool[__MAXHISDIM__]; 00148 00151 UInt_t* fxHisDataUInt[__MAXHISDIM__]; 00152 00155 UShort_t* fxHisDataUShort[__MAXHISDIM__]; 00156 00159 UChar_t* fxHisDataUChar[__MAXHISDIM__]; 00160 00163 ULong_t* fxHisDataULong[__MAXHISDIM__]; 00164 00165 ClassDef(TGo4HistogramEntry,3) 00166 }; 00167 00168 #endif //TGO4HISTOGRAMENTRY_H 00169 00170 //----------------------------END OF GO4 SOURCE FILE ---------------------