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;
55 NTuple::Tuple* m_tuple1;
56 NTuple::Item<long> m_run;
57 NTuple::Item<long> m_rec;
58 NTuple::Item<double> m_mpprecall;
59 NTuple::Item<double> m_meeall;
60 NTuple::Item<double> m_ncgjs;
61 NTuple::Item<double> m_cla2kpi;
62 NTuple::Array<double> m_comcs2kpi;
63 NTuple::Array<double> m_comcs4pi;
64 NTuple::Item<long> m_idxmc;
65 NTuple::Array<long> m_pdgid;
66 NTuple::Array<long> m_motheridx;
67 NTuple::Item<double> m_mpprec4c;
68 NTuple::Array<double> m_x0js, m_y0js, m_z0js, m_r0js, m_Rxyjs, m_Rzjs;
69 NTuple::Array<double> m_Rnxyjs;
70 NTuple::Array<double> m_Rnzjs;
71 NTuple::Array<double> m_phinjs;
72 NTuple::Item<long> m_cy2kpi;
73 NTuple::Item<long> m_cl4pi;
74 NTuple::Item<long> m_clajs;
75 NTuple::Item<long> m_idxmdc;
76 NTuple::Array<double> m_pdg;
77 NTuple::Array<double> m_cbmc;
79 NTuple::Array<double> m_angjs5;
80 NTuple::Array<double> m_nearjs5;
81 NTuple::Array<double> m_angjs6;
82 NTuple::Array<double> m_nearjs6;
83 NTuple::Array<double> m_ang4pi5;
84 NTuple::Array<double> m_near4pi5;
85 NTuple::Array<double> m_ang4pi6;
86 NTuple::Array<double> m_near4pi6;
88 NTuple::Array<double> m_ppmdcjs;
89 NTuple::Array<double> m_pxmdcjs;
90 NTuple::Array<double> m_pymdcjs;
91 NTuple::Array<double> m_pzmdcjs;
92 NTuple::Array<double> m_ptmdcjs;
93 NTuple::Array<double> m_ppkaljs;
94 NTuple::Array<double> m_ptkaljs;
95 NTuple::Array<double> m_ppmdc2kpi;
96 NTuple::Array<double> m_pxmdc2kpi;
97 NTuple::Array<double> m_pymdc2kpi;
98 NTuple::Array<double> m_pzmdc2kpi;
99 NTuple::Array<double> m_ptmdc2kpi;
100 NTuple::Array<double> m_ppkal2kpi;
101 NTuple::Array<double> m_ptkal2kpi;
102 NTuple::Array<double> m_charge2kpi;
103 NTuple::Array<double> m_chie2kpi;
104 NTuple::Array<double> m_chimu2kpi;
105 NTuple::Array<double> m_chipi2kpi;
106 NTuple::Array<double> m_chik2kpi;
107 NTuple::Array<double> m_chip2kpi;
108 NTuple::Array<double> m_ghit2kpi;
109 NTuple::Array<double> m_thit2kpi;
110 NTuple::Array<double> m_probph2kpi;
111 NTuple::Array<double> m_normph2kpi;
113 NTuple::Array<double> m_chiejs;
114 NTuple::Array<double> m_chimujs;
115 NTuple::Array<double> m_chipijs;
116 NTuple::Array<double> m_chikjs;
117 NTuple::Array<double> m_chipjs;
118 NTuple::Array<double> m_ghitjs;
119 NTuple::Array<double> m_thitjs;
120 NTuple::Array<double> m_probphjs;
121 NTuple::Array<double> m_normphjs;
123 NTuple::Array<double> m_bjmucjs;
124 NTuple::Array<double> m_bjmuc2kpi;
125 NTuple::Array<double> m_bjemcjs;
126 NTuple::Array<double> m_bjemc2kpi;
127 NTuple::Array<double> m_bjtofjs;
128 NTuple::Array<double> m_bjtof2kpi;
129 NTuple::Array<double> m_bjtofvaljs;
130 NTuple::Array<double> m_bjtofval2kpi;
131 NTuple::Array<double> m_emcjs;
132 NTuple::Array<double> m_evpjs;
133 NTuple::Array<double> m_timecgjs;
134 NTuple::Array<double> m_depthmucjs;
135 NTuple::Array<double> m_layermucjs;
136 NTuple::Array<double> m_emc2kpi;
137 NTuple::Array<double> m_evp2kpi;
138 NTuple::Array<double> m_timecg2kpi;
139 NTuple::Array<double> m_depthmuc2kpi;
140 NTuple::Array<double> m_layermuc2kpi;
141 NTuple::Array<double> m_cosmdc2kpi;
142 NTuple::Array<double> m_phimdc2kpi;
144 NTuple::Array<double> m_costpid2kpi;
145 NTuple::Array<double> m_dedxpid2kpi;
146 NTuple::Array<double> m_tof1pid2kpi;
147 NTuple::Array<double> m_tof2pid2kpi;
148 NTuple::Array<double> m_probe2kpi;
149 NTuple::Array<double> m_probmu2kpi;
150 NTuple::Array<double> m_probpi2kpi;
151 NTuple::Array<double> m_probk2kpi;
152 NTuple::Array<double> m_probpr2kpi;
153 NTuple::Array<double> m_pidnum2kpi;
155 NTuple::Array<double> m_chipidxpid2kpi;
156 NTuple::Array<double> m_chipitof1pid2kpi;
157 NTuple::Array<double> m_chipitof2pid2kpi;
158 NTuple::Array<double> m_chipitofpid2kpi;
159 NTuple::Array<double> m_chipitofepid2kpi;
160 NTuple::Array<double> m_chipitofqpid2kpi;
161 NTuple::Array<double> m_probpidxpid2kpi;
162 NTuple::Array<double> m_probpitofpid2kpi;
164 NTuple::Array<double> m_chikdxpid2kpi;
165 NTuple::Array<double> m_chiktof1pid2kpi;
166 NTuple::Array<double> m_chiktof2pid2kpi;
167 NTuple::Array<double> m_chiktofpid2kpi;
168 NTuple::Array<double> m_chiktofepid2kpi;
169 NTuple::Array<double> m_chiktofqpid2kpi;
170 NTuple::Array<double> m_probkdxpid2kpi;
171 NTuple::Array<double> m_probktofpid2kpi;
173 NTuple::Array<double> m_chiprdxpid2kpi;
174 NTuple::Array<double> m_chiprtof1pid2kpi;
175 NTuple::Array<double> m_chiprtof2pid2kpi;
176 NTuple::Array<double> m_chiprtofpid2kpi;
177 NTuple::Array<double> m_chiprtofepid2kpi;
178 NTuple::Array<double> m_chiprtofqpid2kpi;
179 NTuple::Array<double> m_probprdxpid2kpi;
180 NTuple::Array<double> m_probprtofpid2kpi;
182 NTuple::Array<double> m_cosmdcjs;
183 NTuple::Array<double> m_phimdcjs;
184 NTuple::Array<double> m_dedxpidjs;
185 NTuple::Array<double> m_tof1pidjs;
186 NTuple::Array<double> m_tof2pidjs;
187 NTuple::Array<double> m_probejs;
188 NTuple::Array<double> m_probmujs;
189 NTuple::Array<double> m_probpijs;
190 NTuple::Array<double> m_probkjs;
191 NTuple::Array<double> m_probprjs;
193 NTuple::Array<double> m_cotof1js;
194 NTuple::Array<double> m_cotof2js;
195 NTuple::Array<double> m_counterjs;
196 NTuple::Array<double> m_barreljs;
197 NTuple::Array<double> m_layertofjs;
198 NTuple::Array<double> m_readoutjs;
199 NTuple::Array<double> m_clusterjs;
200 NTuple::Array<double> m_betajs;
201 NTuple::Array<double> m_tofjs;
202 NTuple::Array<double> m_tofpathjs;
203 NTuple::Array<double> m_zhitjs;
204 NTuple::Array<double> m_tofIDjs;
205 NTuple::Array<double> m_clusterIDjs;
206 NTuple::Array<double> m_texejs;
207 NTuple::Array<double> m_texmujs;
208 NTuple::Array<double> m_texpijs;
209 NTuple::Array<double> m_texkjs;
210 NTuple::Array<double> m_texprjs;
211 NTuple::Array<double> m_dtejs;
212 NTuple::Array<double> m_dtmujs;
213 NTuple::Array<double> m_dtpijs;
214 NTuple::Array<double> m_dtkjs;
215 NTuple::Array<double> m_dtprjs;
217 NTuple::Array<double> m_cotof12kpi;
218 NTuple::Array<double> m_cotof22kpi;
219 NTuple::Array<double> m_counter2kpi;
220 NTuple::Array<double> m_barrel2kpi;
221 NTuple::Array<double> m_layertof2kpi;
222 NTuple::Array<double> m_readout2kpi;
223 NTuple::Array<double> m_cluster2kpi;
224 NTuple::Array<double> m_beta2kpi;
225 NTuple::Array<double> m_tof2kpi;
226 NTuple::Array<double> m_tofpath2kpi;
227 NTuple::Array<double> m_zhit2kpi;
228 NTuple::Array<double> m_tofID2kpi;
229 NTuple::Array<double> m_clusterID2kpi;
230 NTuple::Array<double> m_texe2kpi;
231 NTuple::Array<double> m_texmu2kpi;
232 NTuple::Array<double> m_texpi2kpi;
233 NTuple::Array<double> m_texk2kpi;
234 NTuple::Array<double> m_texpr2kpi;
235 NTuple::Array<double> m_dte2kpi;
236 NTuple::Array<double> m_dtmu2kpi;
237 NTuple::Array<double> m_dtpi2kpi;
238 NTuple::Array<double> m_dtk2kpi;
239 NTuple::Array<double> m_dtpr2kpi;
240 NTuple::Array<double> m_sigmaetof2kpi;
241 NTuple::Array<double> m_sigmamutof2kpi;
242 NTuple::Array<double> m_sigmapitof2kpi;
243 NTuple::Array<double> m_sigmaktof2kpi;
244 NTuple::Array<double> m_sigmaprtof2kpi;
245 NTuple::Array<double> m_t0tof2kpi;
246 NTuple::Array<double> m_errt0tof2kpi;
248 NTuple::Array<double> m_sigmaetofjs;
249 NTuple::Array<double> m_sigmamutofjs;
250 NTuple::Array<double> m_sigmapitofjs;
251 NTuple::Array<double> m_sigmaktofjs;
252 NTuple::Array<double> m_sigmaprtofjs;
253 NTuple::Array<double> m_t0tofjs;
254 NTuple::Array<double> m_errt0tofjs;
255 NTuple::Item<double> m_mchic2kpi;
256 NTuple::Item<long> m_eventtype;
257 NTuple::Item<double> m_mpsip2kpi;
258 NTuple::Item<double> m_chis2kpi;
259 NTuple::Item<double> m_mchic4c2kpi;
260 NTuple::Item<double> m_mpsip4c2kpi;
261 NTuple::Item<double> m_chis4c2kpi;
262 NTuple::Item<double> m_mlplm2kpi;
263 NTuple::Item<double> m_mhphm2kpi;
264 NTuple::Item<double> m_mlphp2kpi;
265 NTuple::Item<double> m_mlmhm2kpi;
266 NTuple::Item<double> m_mlphm2kpi;
267 NTuple::Item<double> m_mlmhp2kpi;
269 NTuple::Item<long> m_ncy20;
270 NTuple::Item<long> m_ncy30;
272 NTuple::Item<long> m_idxemc;
273 NTuple::Array<long> m_numHits;
274 NTuple::Array<double> m_secondmoment;
275 NTuple::Array<double> m_latmoment;
276 NTuple::Array<double> m_timegm;
277 NTuple::Array<double> m_cellId;
278 NTuple::Array<double> m_module;
279 NTuple::Array<double> m_a20Moment;
280 NTuple::Array<double> m_a42Moment;
281 NTuple::Array<double> m_getEAll;
282 NTuple::Array<double> m_getShowerId;
283 NTuple::Array<double> m_getClusterId;
284 NTuple::Array<double> m_x;
285 NTuple::Array<double> m_y;
286 NTuple::Array<double> m_z;
287 NTuple::Array<double> m_cosemc;
288 NTuple::Array<double> m_phiemc;
289 NTuple::Array<double> m_energy;
290 NTuple::Array<double> m_eSeed;
291 NTuple::Array<double> m_e3x3;
292 NTuple::Array<double> m_e5x5;
293 NTuple::Array<double> m_dang4c;
294 NTuple::Array<double> m_dthe4c;
295 NTuple::Array<double> m_dphi4c;
296 NTuple::Array<double> m_dang4crt;
297 NTuple::Array<double> m_dthe4crt;
298 NTuple::Array<double> m_dphi4crt;
299 NTuple::Matrix<double> m_phgmtof;
300 NTuple::Array<double> m_phgmtof0;
301 NTuple::Array<double> m_phgmtof1;
302 NTuple::Array<double> m_phgmtof2;
305 Algorithm* m_subalg1;
306 Algorithm* m_subalg2;
307 Algorithm* m_subalg3;