StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StL3AlgorithmInfo.h
1 
5 /***************************************************************************
6  *
7  * $Id: StL3AlgorithmInfo.h,v 2.4 2003/05/23 20:40:44 ullrich Exp $
8  *
9  * Author: Christof Struck, July 2001
10  ***************************************************************************
11  *
12  * Description: L3 Algorithm Information
13  *
14  ***************************************************************************
15  *
16  * $Log: StL3AlgorithmInfo.h,v $
17  * Revision 2.4 2003/05/23 20:40:44 ullrich
18  * Removed dependcies on DAQ lib in header file.
19  *
20  * Revision 2.3 2002/02/22 22:56:48 jeromel
21  * Doxygen basic documentation in all header files. None of this is required
22  * for QM production.
23  *
24  * Revision 2.2 2001/08/20 21:29:00 ullrich
25  * Changed counter type from UInt_t to Int_t.
26  *
27  * Revision 2.1 2001/08/02 01:26:31 ullrich
28  * Initial Revision.
29  *
30  **************************************************************************/
31 #ifndef StL3AlgorithmInfo_hh
32 #define StL3AlgorithmInfo_hh
33 
34 #include "StObject.h"
35 #include "TArrayF.h"
36 #include "TArrayI.h"
37 
38 class Algorithm_Data;
39 
41 {
42 public:
46 
47  int id() const;
48  bool on() const;
49  bool accept() const;
50  bool build() const;
51  int numberOfProcessedEvents() const;
52  int numberOfAcceptedEvents() const;
53  int numberOfBuildEvents() const;
54  int dataSize() const;
55  float data(int index) const;
56  int preScale() const;
57  int postScale() const;
58  int intParameterSize() const;
59  int intParameter(int) const;
60  int floatParameterSize() const;
61  float floatParameter(int) const;
62 
63  void setCounters(int, int, int);
64  void setParameters(int*, float*);
65  void setPreScale(int);
66  void setPostScale(int);
67 
68 private:
69  void initArrays();
70 
71  Int_t mId;
72  Bool_t mOn;
73  Bool_t mAccept;
74  Bool_t mBuild;
75  Int_t mNumberOfProcessedEvents;
76  Int_t mNumberOfAcceptedEvents;
77  Int_t mNumberOfBuildEvents;
78  UShort_t mDataSize;
79  TArrayF mDataArray;
80  Int_t mPreScale;
81  Int_t mPostScale;
82  UShort_t mIntParameterSize;
83  TArrayI mIntParameterArray;
84  UShort_t mFloatParameterSize;
85  TArrayF mFloatParameterArray;
86 
87  ClassDef(StL3AlgorithmInfo, 1)
88 };
89 
90 inline int
91 StL3AlgorithmInfo::id() const { return mId; }
92 
93 inline bool
94 StL3AlgorithmInfo::on() const { return mOn; }
95 
96 inline bool
97 StL3AlgorithmInfo::accept() const { return mAccept; }
98 
99 inline bool
100 StL3AlgorithmInfo::build() const { return mBuild; }
101 
102 inline int
103 StL3AlgorithmInfo::numberOfProcessedEvents() const { return mNumberOfProcessedEvents; }
104 
105 inline int
106 StL3AlgorithmInfo::numberOfAcceptedEvents() const { return mNumberOfAcceptedEvents; }
107 
108 inline int
109 StL3AlgorithmInfo::numberOfBuildEvents() const { return mNumberOfBuildEvents; }
110 
111 inline int
112 StL3AlgorithmInfo::dataSize() const { return mDataSize; }
113 
114 inline float
115 StL3AlgorithmInfo::data(int i) const
116 {
117  return i < mDataSize ? const_cast<TArrayF&>(mDataArray)[i] : 0;
118 }
119 
120 inline int
121 StL3AlgorithmInfo::preScale() const { return mPreScale; }
122 
123 inline int
124 StL3AlgorithmInfo::postScale() const { return mPostScale; }
125 
126 inline int
127 StL3AlgorithmInfo::intParameterSize() const { return mIntParameterSize; }
128 
129 inline int
130 StL3AlgorithmInfo::intParameter(int i) const
131 {
132  return i < mIntParameterSize ? const_cast<TArrayI&>(mIntParameterArray)[i] : 0;
133 }
134 
135 inline int
136 StL3AlgorithmInfo::floatParameterSize() const { return mFloatParameterSize; }
137 
138 inline float
139 StL3AlgorithmInfo::floatParameter(int i) const
140 {
141  return i < mFloatParameterSize ? const_cast<TArrayF&>(mFloatParameterArray)[i] :0;
142 }
143 #endif