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