StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
gl3Algorithm.cxx
1 //:>------------------------------------------------------------------
2 //: FILE: gl3Algorithm.cc
3 //: HISTORY:
4 //: 1feb2000 version 1.00
5 //:<------------------------------------------------------------------
6 #include "Stl3Util/gl3/gl3Algorithm.h"
7 
8 #include "Stl3Util/base/FtfLog.h"
9 
10 //####################################################################
11 //
12 //####################################################################
13 gl3Algorithm::gl3Algorithm ( )
14 {
15  GI1 = 0; GI2 = 0; GI3 = 0; GI4 = 0; GI5 = 0;
16  GF1 = 0; GF2 = 0; GF3 = 0; GF4 = 0; GF5 = 0;
17 
18  preScale = 1;
19  postScale = 1;
20 
21  priority = 2;
22 
23  init();
24 }
25 
26 //####################################################################
27 //
28 //####################################################################
29 gl3Algorithm::~gl3Algorithm ( )
30 {
31 }
32 
33 
34 //####################################################################
35 //
36 //####################################################################
37 int gl3Algorithm::process (gl3Event* event_in)
38 {
39  event = event_in;
40 
41  on = 0; accept = 0; build = 0;
42 
43  // PreScaling
44  preScale_cnt++;
45 
46  if ( (preScale > 0) && (preScale_cnt != preScale) ) {
47  return 0;
48  }
49 
50  preScale_cnt = 0;
51  on = 1;
52 
53  int decision = this->decide();
54 
55  //ftfLog("decision: %d\n", decision);
56 
57  if (!decision) {
58  return 0;
59  }
60  accept = 1;
61 
62  // PostScaling
63  if ( accept_cnt%postScale != 0 ) {
64  return 0;
65  }
66 
67  build = 1;
68 
69  event = NULL;
70 
71  return decision ? priority : 0;
72 }
73 
74 
75 //####################################################################
76 //
77 //####################################################################
78 void gl3Algorithm::incrementCounters ()
79 {
80  if (on) call_cnt++;
81  if (accept) accept_cnt++;
82  if (build) build_cnt++;
83 }
84 
85 
86 //####################################################################
87 //
88 //####################################################################
89 int gl3Algorithm::init()
90 {
91  resetCounters();
92  on = 0; accept = 0; build = 0;
93 
94  for (int i=0; i<10; i++) {
95  SummaryData[i] = 0;
96  }
97 
98  return 0 ;
99 }
100 
101 //####################################################################
102 //
103 //####################################################################
104 int gl3Algorithm::end ( )
105 {
106  return 0 ;
107 }
108 
109 //####################################################################
110 //
111 //####################################################################
112 int gl3Algorithm::setParameters(int GI1_in, int GI2_in, int GI3_in,
113  int GI4_in, int GI5_in,
114  float GF1_in, float GF2_in, float GF3_in,
115  float GF4_in, float GF5_in)
116 {
117  GI1 = GI1_in;
118  GI2 = GI2_in;
119  GI3 = GI3_in;
120  GI4 = GI4_in;
121  GI5 = GI5_in;
122 
123  GF1 = GF1_in;
124  GF2 = GF2_in;
125  GF3 = GF3_in;
126  GF4 = GF4_in;
127  GF5 = GF5_in;
128 
129  return 0;
130 
131 }
132 
133 //####################################################################
134 // Set the scalers: pre- and postScale must be >=1!
135 //####################################################################
136 void gl3Algorithm::setScaling(int preScale_in, int postScale_in)
137 {
138  preScale = (preScale_in > 0) ? preScale_in : 1;
139  postScale = (postScale_in > 0) ? postScale_in : 1;
140 }
141 
142 //####################################################################
143 //
144 //####################################################################
145 void gl3Algorithm::fillSummary(struct algorithm_data *dest)
146 {
147  dest->algId = getAlgorithmID();
148  dest->on = on;
149  dest->accept = accept;
150  dest->build = build;
151  dest->nProcessed = call_cnt;
152  dest->nAccept = accept_cnt;
153  dest->nBuild = build_cnt;;
154 
155  for (int i=0; i<10; i++) {
156  dest->data[i] = SummaryData[i];
157  }
158 }
159 
160 
161 void gl3Algorithm::resetCounters()
162 {
163  preScale_cnt = 0;
164  call_cnt =0;
165  accept_cnt = 0;
166  build_cnt = 0;
167 }
168 
169 void gl3Algorithm::showConfiguration()
170 {
171  ftfLog("%s: Pre-PostScale: %d %d\n",
172  getAlgorithmName(), (int)preScale, (int)postScale);
173 
174  ftfLog("%s: Int Parameters: %d %d %d %d %d\n",
175  getAlgorithmName(), GI1, GI2, GI3, GI4, GI5);
176 
177  ftfLog("%s: Float Parameters: %f %f %f %f %f\n",
178  getAlgorithmName(), GF1, GF2, GF3, GF4, GF5);
179 };
180