00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef StL3AlgorithmInfo_hh
00032 #define StL3AlgorithmInfo_hh
00033
00034 #include "StObject.h"
00035 #include "TArrayF.h"
00036 #include "TArrayI.h"
00037
00038 class Algorithm_Data;
00039
00040 class StL3AlgorithmInfo : public StObject
00041 {
00042 public:
00043 StL3AlgorithmInfo();
00044 StL3AlgorithmInfo(Algorithm_Data*);
00045 ~StL3AlgorithmInfo();
00046
00047 int id() const;
00048 bool on() const;
00049 bool accept() const;
00050 bool build() const;
00051 int numberOfProcessedEvents() const;
00052 int numberOfAcceptedEvents() const;
00053 int numberOfBuildEvents() const;
00054 int dataSize() const;
00055 float data(int index) const;
00056 int preScale() const;
00057 int postScale() const;
00058 int intParameterSize() const;
00059 int intParameter(int) const;
00060 int floatParameterSize() const;
00061 float floatParameter(int) const;
00062
00063 void setCounters(int, int, int);
00064 void setParameters(int*, float*);
00065 void setPreScale(int);
00066 void setPostScale(int);
00067
00068 private:
00069 void initArrays();
00070
00071 Int_t mId;
00072 Bool_t mOn;
00073 Bool_t mAccept;
00074 Bool_t mBuild;
00075 Int_t mNumberOfProcessedEvents;
00076 Int_t mNumberOfAcceptedEvents;
00077 Int_t mNumberOfBuildEvents;
00078 UShort_t mDataSize;
00079 TArrayF mDataArray;
00080 Int_t mPreScale;
00081 Int_t mPostScale;
00082 UShort_t mIntParameterSize;
00083 TArrayI mIntParameterArray;
00084 UShort_t mFloatParameterSize;
00085 TArrayF mFloatParameterArray;
00086
00087 ClassDef(StL3AlgorithmInfo, 1)
00088 };
00089
00090 inline int
00091 StL3AlgorithmInfo::id() const { return mId; }
00092
00093 inline bool
00094 StL3AlgorithmInfo::on() const { return mOn; }
00095
00096 inline bool
00097 StL3AlgorithmInfo::accept() const { return mAccept; }
00098
00099 inline bool
00100 StL3AlgorithmInfo::build() const { return mBuild; }
00101
00102 inline int
00103 StL3AlgorithmInfo::numberOfProcessedEvents() const { return mNumberOfProcessedEvents; }
00104
00105 inline int
00106 StL3AlgorithmInfo::numberOfAcceptedEvents() const { return mNumberOfAcceptedEvents; }
00107
00108 inline int
00109 StL3AlgorithmInfo::numberOfBuildEvents() const { return mNumberOfBuildEvents; }
00110
00111 inline int
00112 StL3AlgorithmInfo::dataSize() const { return mDataSize; }
00113
00114 inline float
00115 StL3AlgorithmInfo::data(int i) const
00116 {
00117 return i < mDataSize ? const_cast<TArrayF&>(mDataArray)[i] : 0;
00118 }
00119
00120 inline int
00121 StL3AlgorithmInfo::preScale() const { return mPreScale; }
00122
00123 inline int
00124 StL3AlgorithmInfo::postScale() const { return mPostScale; }
00125
00126 inline int
00127 StL3AlgorithmInfo::intParameterSize() const { return mIntParameterSize; }
00128
00129 inline int
00130 StL3AlgorithmInfo::intParameter(int i) const
00131 {
00132 return i < mIntParameterSize ? const_cast<TArrayI&>(mIntParameterArray)[i] : 0;
00133 }
00134
00135 inline int
00136 StL3AlgorithmInfo::floatParameterSize() const { return mFloatParameterSize; }
00137
00138 inline float
00139 StL3AlgorithmInfo::floatParameter(int i) const
00140 {
00141 return i < mFloatParameterSize ? const_cast<TArrayF&>(mFloatParameterArray)[i] :0;
00142 }
00143 #endif