1#ifndef Physics_Analysis_Gam4pikp_H
2#define Physics_Analysis_Gam4pikp_H
4#include "GaudiKernel/AlgFactory.h"
5#include "GaudiKernel/Algorithm.h"
6#include "GaudiKernel/NTuple.h"
12 Gam4pikp(
const std::string& name, ISvcLocator* pSvcLocator);
19 void BubbleSort(std::vector<double> &, std::vector<int> &);
31 double m_energyThreshold;
33 double m_gammaThetaCut;
35 double m_gammadangcut;
45 NTuple::Tuple* m_tuple0;
46 NTuple::Item<double> m_tnumber;
47 NTuple::Item<double> m_totaltrack;
48 NTuple::Item<double> m_totalcharged;
49 NTuple::Item<double> m_totalgam;
50 NTuple::Item<double> m_massth;
54 NTuple::Tuple* trk_tuple;
55 NTuple::Item<double> m_trk_trackid;
56 NTuple::Item<double> m_trk_tofid;
57 NTuple::Item<double> m_trk_raw;
58 NTuple::Item<double> m_trk_readout;
59 NTuple::Item<double> m_trk_counter;
60 NTuple::Item<double> m_trk_cluster;
61 NTuple::Item<double> m_trk_barrel;
62 NTuple::Item<double> m_trk_east;
63 NTuple::Item<double> m_trk_layer;
64 NTuple::Item<double> m_trk_path;
65 NTuple::Item<double> m_trk_zrhit;
66 NTuple::Item<double> m_trk_ph;
67 NTuple::Item<double> m_trk_tof;
68 NTuple::Item<double> m_trk_beta;
69 NTuple::Item<double> m_trk_texpe;
70 NTuple::Item<double> m_trk_texpmu;
71 NTuple::Item<double> m_trk_texppi;
72 NTuple::Item<double> m_trk_texpk;
73 NTuple::Item<double> m_trk_texpp;
74 NTuple::Item<double> m_trk_offe;
75 NTuple::Item<double> m_trk_offmu;
76 NTuple::Item<double> m_trk_offpi;
77 NTuple::Item<double> m_trk_offk;
78 NTuple::Item<double> m_trk_offp;
79 NTuple::Item<double> m_trk_quality;
80 NTuple::Item<double> m_trk_type;
81 NTuple::Item<double> m_trk_pidtype;
82 NTuple::Item<double> m_trk_ppmdc;
83 NTuple::Item<double> m_trk_ptmdc;
84 NTuple::Item<double> m_trk_ppkal;
85 NTuple::Item<double> m_trk_ptkal;
86 NTuple::Item<double> m_trk_cosmdc;
87 NTuple::Item<double> m_trk_phimdc;
88 NTuple::Item<double> m_trk_coskal;
89 NTuple::Item<double> m_trk_phikal;
90 NTuple::Item<double> m_trk_charge;
93 NTuple::Tuple* m_tuple1;
94 NTuple::Item<long> m_run;
95 NTuple::Item<long> m_rec;
96 NTuple::Item<double> m_mpprecall;
97 NTuple::Item<double> m_meeall;
98 NTuple::Item<double> m_ncgjs;
99 NTuple::Item<double> m_cla2kpi;
100 NTuple::Array<double> m_comcs2kpi;
101 NTuple::Array<double> m_comcs4pi;
102 NTuple::Item<long> m_idxmc;
103 NTuple::Array<long> m_pdgid;
104 NTuple::Array<long> m_motheridx;
105 NTuple::Item<double> m_mpprec4c;
106 NTuple::Array<double> m_x0js, m_y0js, m_z0js, m_r0js, m_Rxyjs, m_Rzjs;
107 NTuple::Array<double> m_Rnxyjs;
108 NTuple::Array<double> m_Rnzjs;
109 NTuple::Array<double> m_phinjs;
110 NTuple::Item<long> m_cy2kpi;
111 NTuple::Item<long> m_cl4pi;
112 NTuple::Item<long> m_clajs;
113 NTuple::Item<long> m_idxmdc;
114 NTuple::Array<double> m_pdg;
115 NTuple::Array<double> m_cbmc;
117 NTuple::Array<double> m_angjs5;
118 NTuple::Array<double> m_nearjs5;
119 NTuple::Array<double> m_angjs6;
120 NTuple::Array<double> m_nearjs6;
121 NTuple::Array<double> m_ang4pi5;
122 NTuple::Array<double> m_near4pi5;
123 NTuple::Array<double> m_ang4pi6;
124 NTuple::Array<double> m_near4pi6;
126 NTuple::Array<double> m_ppmdcjs;
127 NTuple::Array<double> m_pxmdcjs;
128 NTuple::Array<double> m_pymdcjs;
129 NTuple::Array<double> m_pzmdcjs;
130 NTuple::Array<double> m_ptmdcjs;
131 NTuple::Array<double> m_ppkaljs;
132 NTuple::Array<double> m_ptkaljs;
133 NTuple::Array<double> m_ppmdc2kpi;
134 NTuple::Array<double> m_pxmdc2kpi;
135 NTuple::Array<double> m_pymdc2kpi;
136 NTuple::Array<double> m_pzmdc2kpi;
137 NTuple::Array<double> m_ptmdc2kpi;
138 NTuple::Array<double> m_ppkal2kpi;
139 NTuple::Array<double> m_ptkal2kpi;
140 NTuple::Array<double> m_charge2kpi;
141 NTuple::Array<double> m_chie2kpi;
142 NTuple::Array<double> m_chimu2kpi;
143 NTuple::Array<double> m_chipi2kpi;
144 NTuple::Array<double> m_chik2kpi;
145 NTuple::Array<double> m_chip2kpi;
146 NTuple::Array<double> m_ghit2kpi;
147 NTuple::Array<double> m_thit2kpi;
148 NTuple::Array<double> m_probph2kpi;
149 NTuple::Array<double> m_normph2kpi;
151 NTuple::Array<double> m_chiejs;
152 NTuple::Array<double> m_chimujs;
153 NTuple::Array<double> m_chipijs;
154 NTuple::Array<double> m_chikjs;
155 NTuple::Array<double> m_chipjs;
156 NTuple::Array<double> m_ghitjs;
157 NTuple::Array<double> m_thitjs;
158 NTuple::Array<double> m_probphjs;
159 NTuple::Array<double> m_normphjs;
161 NTuple::Array<double> m_bjmucjs;
162 NTuple::Array<double> m_bjmuc2kpi;
163 NTuple::Array<double> m_bjemcjs;
164 NTuple::Array<double> m_bjemc2kpi;
165 NTuple::Array<double> m_bjtofjs;
166 NTuple::Array<double> m_bjtof2kpi;
167 NTuple::Array<double> m_bjtofvaljs;
168 NTuple::Array<double> m_bjtofval2kpi;
169 NTuple::Array<double> m_emcjs;
170 NTuple::Array<double> m_evpjs;
171 NTuple::Array<double> m_timecgjs;
172 NTuple::Array<double> m_depthmucjs;
173 NTuple::Array<double> m_layermucjs;
174 NTuple::Array<double> m_emc2kpi;
175 NTuple::Array<double> m_evp2kpi;
176 NTuple::Array<double> m_timecg2kpi;
177 NTuple::Array<double> m_depthmuc2kpi;
178 NTuple::Array<double> m_layermuc2kpi;
179 NTuple::Array<double> m_cosmdc2kpi;
180 NTuple::Array<double> m_phimdc2kpi;
182 NTuple::Array<double> m_costpid2kpi;
183 NTuple::Array<double> m_dedxpid2kpi;
184 NTuple::Array<double> m_tof1pid2kpi;
185 NTuple::Array<double> m_tof2pid2kpi;
186 NTuple::Array<double> m_probe2kpi;
187 NTuple::Array<double> m_probmu2kpi;
188 NTuple::Array<double> m_probpi2kpi;
189 NTuple::Array<double> m_probk2kpi;
190 NTuple::Array<double> m_probpr2kpi;
191 NTuple::Array<double> m_pidnum2kpi;
193 NTuple::Array<double> m_chipidxpid2kpi;
194 NTuple::Array<double> m_chipitof1pid2kpi;
195 NTuple::Array<double> m_chipitof2pid2kpi;
196 NTuple::Array<double> m_chipitofpid2kpi;
197 NTuple::Array<double> m_chipitofepid2kpi;
198 NTuple::Array<double> m_chipitofqpid2kpi;
199 NTuple::Array<double> m_probpidxpid2kpi;
200 NTuple::Array<double> m_probpitofpid2kpi;
202 NTuple::Array<double> m_chikdxpid2kpi;
203 NTuple::Array<double> m_chiktof1pid2kpi;
204 NTuple::Array<double> m_chiktof2pid2kpi;
205 NTuple::Array<double> m_chiktofpid2kpi;
206 NTuple::Array<double> m_chiktofepid2kpi;
207 NTuple::Array<double> m_chiktofqpid2kpi;
208 NTuple::Array<double> m_probkdxpid2kpi;
209 NTuple::Array<double> m_probktofpid2kpi;
211 NTuple::Array<double> m_chiprdxpid2kpi;
212 NTuple::Array<double> m_chiprtof1pid2kpi;
213 NTuple::Array<double> m_chiprtof2pid2kpi;
214 NTuple::Array<double> m_chiprtofpid2kpi;
215 NTuple::Array<double> m_chiprtofepid2kpi;
216 NTuple::Array<double> m_chiprtofqpid2kpi;
217 NTuple::Array<double> m_probprdxpid2kpi;
218 NTuple::Array<double> m_probprtofpid2kpi;
220 NTuple::Array<double> m_cosmdcjs;
221 NTuple::Array<double> m_phimdcjs;
222 NTuple::Array<double> m_dedxpidjs;
223 NTuple::Array<double> m_tof1pidjs;
224 NTuple::Array<double> m_tof2pidjs;
225 NTuple::Array<double> m_probejs;
226 NTuple::Array<double> m_probmujs;
227 NTuple::Array<double> m_probpijs;
228 NTuple::Array<double> m_probkjs;
229 NTuple::Array<double> m_probprjs;
231 NTuple::Array<double> m_cotof1js;
232 NTuple::Array<double> m_cotof2js;
233 NTuple::Array<double> m_counterjs;
234 NTuple::Array<double> m_barreljs;
235 NTuple::Array<double> m_layertofjs;
236 NTuple::Array<double> m_readoutjs;
237 NTuple::Array<double> m_clusterjs;
238 NTuple::Array<double> m_betajs;
239 NTuple::Array<double> m_tofjs;
240 NTuple::Array<double> m_tofpathjs;
241 NTuple::Array<double> m_zhitjs;
242 NTuple::Array<double> m_tofIDjs;
243 NTuple::Array<double> m_clusterIDjs;
244 NTuple::Array<double> m_texejs;
245 NTuple::Array<double> m_texmujs;
246 NTuple::Array<double> m_texpijs;
247 NTuple::Array<double> m_texkjs;
248 NTuple::Array<double> m_texprjs;
249 NTuple::Array<double> m_dtejs;
250 NTuple::Array<double> m_dtmujs;
251 NTuple::Array<double> m_dtpijs;
252 NTuple::Array<double> m_dtkjs;
253 NTuple::Array<double> m_dtprjs;
255 NTuple::Array<double> m_cotof12kpi;
256 NTuple::Array<double> m_cotof22kpi;
257 NTuple::Array<double> m_counter2kpi;
258 NTuple::Array<double> m_barrel2kpi;
259 NTuple::Array<double> m_layertof2kpi;
260 NTuple::Array<double> m_readout2kpi;
261 NTuple::Array<double> m_cluster2kpi;
262 NTuple::Array<double> m_beta2kpi;
263 NTuple::Array<double> m_tof2kpi;
264 NTuple::Array<double> m_tofpath2kpi;
265 NTuple::Array<double> m_zhit2kpi;
266 NTuple::Array<double> m_tofID2kpi;
267 NTuple::Array<double> m_clusterID2kpi;
268 NTuple::Array<double> m_texe2kpi;
269 NTuple::Array<double> m_texmu2kpi;
270 NTuple::Array<double> m_texpi2kpi;
271 NTuple::Array<double> m_texk2kpi;
272 NTuple::Array<double> m_texpr2kpi;
273 NTuple::Array<double> m_dte2kpi;
274 NTuple::Array<double> m_dtmu2kpi;
275 NTuple::Array<double> m_dtpi2kpi;
276 NTuple::Array<double> m_dtk2kpi;
277 NTuple::Array<double> m_dtpr2kpi;
278 NTuple::Array<double> m_sigmaetof2kpi;
279 NTuple::Array<double> m_sigmamutof2kpi;
280 NTuple::Array<double> m_sigmapitof2kpi;
281 NTuple::Array<double> m_sigmaktof2kpi;
282 NTuple::Array<double> m_sigmaprtof2kpi;
283 NTuple::Array<double> m_t0tof2kpi;
284 NTuple::Array<double> m_errt0tof2kpi;
286 NTuple::Array<double> m_sigmaetofjs;
287 NTuple::Array<double> m_sigmamutofjs;
288 NTuple::Array<double> m_sigmapitofjs;
289 NTuple::Array<double> m_sigmaktofjs;
290 NTuple::Array<double> m_sigmaprtofjs;
291 NTuple::Array<double> m_t0tofjs;
292 NTuple::Array<double> m_errt0tofjs;
293 NTuple::Item<double> m_mchic2kpi;
294 NTuple::Item<long> m_eventtype;
295 NTuple::Item<double> m_mpsip2kpi;
296 NTuple::Item<double> m_chis2kpi;
297 NTuple::Item<double> m_mchic4c2kpi;
298 NTuple::Item<double> m_mpsip4c2kpi;
299 NTuple::Item<double> m_chis4c2kpi;
300 NTuple::Item<double> m_mlplm2kpi;
301 NTuple::Item<double> m_mhphm2kpi;
302 NTuple::Item<double> m_mlphp2kpi;
303 NTuple::Item<double> m_mlmhm2kpi;
304 NTuple::Item<double> m_mlphm2kpi;
305 NTuple::Item<double> m_mlmhp2kpi;
307 NTuple::Item<long> m_ncy20;
308 NTuple::Item<long> m_ncy30;
310 NTuple::Item<long> m_idxemc;
311 NTuple::Array<long> m_numHits;
312 NTuple::Array<double> m_secondmoment;
313 NTuple::Array<double> m_latmoment;
314 NTuple::Array<double> m_timegm;
315 NTuple::Array<double> m_cellId;
316 NTuple::Array<double> m_module;
317 NTuple::Array<double> m_a20Moment;
318 NTuple::Array<double> m_a42Moment;
319 NTuple::Array<double> m_getEAll;
320 NTuple::Array<double> m_getShowerId;
321 NTuple::Array<double> m_getClusterId;
322 NTuple::Array<double> m_x;
323 NTuple::Array<double> m_y;
324 NTuple::Array<double> m_z;
325 NTuple::Array<double> m_cosemc;
326 NTuple::Array<double> m_phiemc;
327 NTuple::Array<double> m_energy;
328 NTuple::Array<double> m_eSeed;
329 NTuple::Array<double> m_e3x3;
330 NTuple::Array<double> m_e5x5;
331 NTuple::Array<double> m_dang4c;
332 NTuple::Array<double> m_dthe4c;
333 NTuple::Array<double> m_dphi4c;
334 NTuple::Array<double> m_dang4crt;
335 NTuple::Array<double> m_dthe4crt;
336 NTuple::Array<double> m_dphi4crt;
337 NTuple::Matrix<double> m_phgmtof;
338 NTuple::Array<double> m_phgmtof0;
339 NTuple::Array<double> m_phgmtof1;
340 NTuple::Array<double> m_phgmtof2;
343 Algorithm* m_subalg1;
344 Algorithm* m_subalg2;
345 Algorithm* m_subalg3;