BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
DumpDecayTreeAlg.cxx
Go to the documentation of this file.
1#include "GaudiKernel/MsgStream.h"
2#include "GaudiKernel/SmartDataPtr.h"
3#include "GaudiKernel/SmartRefVector.h"
4
5#include "EventModel/EventHeader.h"
6#include "McTruth/McParticle.h"
7
8#include "DumpDecayTreeAlg.h"
9
10#include <map>
11#include <string>
12#include <vector>
13
14using namespace std;
15
16/////////////////////////////////////////////////////////////////////////////
17
19DumpDecayTreeAlg::DumpDecayTreeAlg( const std::string& name, ISvcLocator* pSvcLocator )
20 : Algorithm( name, pSvcLocator ) {
21
22 // Declare the properties
23 declareProperty( "Frequency", m_freq = 1 );
24
25 declareProperty( "BesEvtGenOnly", m_BesEvtGenOnly = true );
26 declareProperty( "PrintParticles", m_PrintParticles = true );
27
28 declareProperty( "FindRunEvent", m_FindRunEvent = false );
29 declareProperty( "FindRun", m_FindRun = -5040 );
30 declareProperty( "FindEvent", m_FindEvent = 20 );
31}
32
33// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
35 MsgStream log( msgSvc(), name() );
36
37 log << MSG::INFO << "in initialize()" << endmsg;
38
39 StatusCode status;
40
41 m_eventCounter = 0;
42
43 // Fill McIds with names (Created from pdt.table from perl script)
44 m_map.insert( make_pair( 1, "d" ) );
45 m_map.insert( make_pair( -1, "anti-d" ) );
46 m_map.insert( make_pair( 2, "u" ) );
47 m_map.insert( make_pair( -2, "anti-u" ) );
48 m_map.insert( make_pair( 3, "s" ) );
49 m_map.insert( make_pair( -3, "anti-s" ) );
50 m_map.insert( make_pair( 4, "c" ) );
51 m_map.insert( make_pair( -4, "anti-c" ) );
52 m_map.insert( make_pair( 5, "b" ) );
53 m_map.insert( make_pair( -5, "anti-b" ) );
54 m_map.insert( make_pair( 6, "t" ) );
55 m_map.insert( make_pair( -6, "anti-t" ) );
56 m_map.insert( make_pair( 7, "b'" ) );
57 m_map.insert( make_pair( -7, "anti-b'" ) );
58 m_map.insert( make_pair( 8, "t'" ) );
59 m_map.insert( make_pair( -8, "anti-t'" ) );
60 m_map.insert( make_pair( 21, "g" ) );
61 m_map.insert( make_pair( 11, "e-" ) );
62 m_map.insert( make_pair( -11, "e+" ) );
63 m_map.insert( make_pair( 12, "nu_e" ) );
64 m_map.insert( make_pair( -12, "anti-nu_e" ) );
65 m_map.insert( make_pair( 13, "mu-" ) );
66 m_map.insert( make_pair( -13, "mu+" ) );
67 m_map.insert( make_pair( 14, "nu_mu" ) );
68 m_map.insert( make_pair( -14, "anti-nu_mu" ) );
69 m_map.insert( make_pair( 15, "tau-" ) );
70 m_map.insert( make_pair( -15, "tau+" ) );
71 m_map.insert( make_pair( 16, "nu_tau" ) );
72 m_map.insert( make_pair( -16, "anti-nu_tau" ) );
73 m_map.insert( make_pair( 17, "L-" ) );
74 m_map.insert( make_pair( -17, "L+" ) );
75 m_map.insert( make_pair( 18, "nu_L" ) );
76 m_map.insert( make_pair( -18, "anti-nu_L" ) );
77 m_map.insert( make_pair( 22, "gamma" ) );
78 m_map.insert( make_pair( -22, "gammaFSR" ) );
79 m_map.insert( make_pair( 10022, "vpho" ) );
80 m_map.insert( make_pair( 20022, "Cerenkov" ) );
81 m_map.insert( make_pair( 23, "Z0" ) );
82 m_map.insert( make_pair( 24, "W+" ) );
83 m_map.insert( make_pair( -24, "W-" ) );
84 m_map.insert( make_pair( 25, "Higgs0" ) );
85 m_map.insert( make_pair( 28, "reggeon" ) );
86 m_map.insert( make_pair( 29, "pomeron" ) );
87 m_map.insert( make_pair( 32, "Z'0" ) );
88 m_map.insert( make_pair( 33, "Z''0" ) );
89 m_map.insert( make_pair( 34, "W'+" ) );
90 m_map.insert( make_pair( -34, "W'-" ) );
91 m_map.insert( make_pair( 35, "Higgs'0" ) );
92 m_map.insert( make_pair( 36, "A0" ) );
93 m_map.insert( make_pair( 37, "Higgs+" ) );
94 m_map.insert( make_pair( -37, "Higgs-" ) );
95 m_map.insert( make_pair( 40, "R0" ) );
96 m_map.insert( make_pair( -40, "anti-R0" ) );
97 m_map.insert( make_pair( 41, "Xu0" ) );
98 m_map.insert( make_pair( 42, "Xu+" ) );
99 m_map.insert( make_pair( -42, "Xu-" ) );
100 m_map.insert( make_pair( 81, "specflav" ) );
101 m_map.insert( make_pair( 82, "rndmflav" ) );
102 m_map.insert( make_pair( -82, "anti-rndmflav" ) );
103 m_map.insert( make_pair( 83, "phasespa" ) );
104 m_map.insert( make_pair( 84, "c-hadron" ) );
105 m_map.insert( make_pair( -84, "anti-c-hadron" ) );
106 m_map.insert( make_pair( 85, "b-hadron" ) );
107 m_map.insert( make_pair( -85, "anti-b-hadron" ) );
108 m_map.insert( make_pair( 86, "t-hadron" ) );
109 m_map.insert( make_pair( -86, "anti-t-hadron" ) );
110 m_map.insert( make_pair( 87, "b'-hadron" ) );
111 m_map.insert( make_pair( -87, "anti-b'-hadron" ) );
112 m_map.insert( make_pair( 88, "t'-hadron" ) );
113 m_map.insert( make_pair( -88, "anti-t'-hadron" ) );
114 m_map.insert( make_pair( 89, "Wvirt+" ) );
115 m_map.insert( make_pair( -89, "Wvirt-" ) );
116 m_map.insert( make_pair( 90, "diquark" ) );
117 m_map.insert( make_pair( -90, "anti-diquark" ) );
118 m_map.insert( make_pair( 91, "cluster" ) );
119 m_map.insert( make_pair( 92, "string" ) );
120 m_map.insert( make_pair( 93, "indep" ) );
121 m_map.insert( make_pair( 94, "CMshower" ) );
122 m_map.insert( make_pair( 95, "SPHEaxis" ) );
123 m_map.insert( make_pair( 96, "THRUaxis" ) );
124 m_map.insert( make_pair( 97, "CLUSjet" ) );
125 m_map.insert( make_pair( 98, "CELLjet" ) );
126 m_map.insert( make_pair( 99, "table" ) );
127 m_map.insert( make_pair( 111, "pi0" ) );
128 m_map.insert( make_pair( 211, "pi+" ) );
129 m_map.insert( make_pair( -211, "pi-" ) );
130 m_map.insert( make_pair( 210, "pi_diff+" ) );
131 m_map.insert( make_pair( -210, "pi_diff-" ) );
132 m_map.insert( make_pair( 20111, "pi(2S)0" ) );
133 m_map.insert( make_pair( 20211, "pi(2S)+" ) );
134 m_map.insert( make_pair( -20211, "pi(2S)-" ) );
135 m_map.insert( make_pair( 221, "eta" ) );
136 m_map.insert( make_pair( 20221, "eta(2S)" ) );
137 m_map.insert( make_pair( 331, "eta'" ) );
138 m_map.insert( make_pair( 113, "rho0" ) );
139 m_map.insert( make_pair( 110, "rho_diff0" ) );
140 m_map.insert( make_pair( 213, "rho+" ) );
141 m_map.insert( make_pair( -213, "rho-" ) );
142 m_map.insert( make_pair( 30113, "rho(2S)0" ) );
143 m_map.insert( make_pair( 30213, "rho(2S)+" ) );
144 m_map.insert( make_pair( -30213, "rho(2S)-" ) );
145 m_map.insert( make_pair( 40113, "rho(3S)0" ) );
146 m_map.insert( make_pair( 40213, "rho(3S)+" ) );
147 m_map.insert( make_pair( -40213, "rho(3S)-" ) );
148 m_map.insert( make_pair( 223, "omega" ) );
149 m_map.insert( make_pair( 220, "omega_diff" ) );
150 m_map.insert( make_pair( 30223, "omega(2S)" ) );
151 m_map.insert( make_pair( 333, "phi" ) );
152 m_map.insert( make_pair( 330, "phi_diff" ) );
153 m_map.insert( make_pair( 10111, "a_00" ) );
154 m_map.insert( make_pair( 10211, "a_0+" ) );
155 m_map.insert( make_pair( -10211, "a_0-" ) );
156 m_map.insert( make_pair( 9010221, "f_0" ) );
157 m_map.insert( make_pair( 10221, "f'_0" ) );
158 m_map.insert( make_pair( 10113, "b_10" ) );
159 m_map.insert( make_pair( 10213, "b_1+" ) );
160 m_map.insert( make_pair( -10213, "b_1-" ) );
161 m_map.insert( make_pair( 10223, "h_1" ) );
162 m_map.insert( make_pair( 10333, "h'_1" ) );
163 m_map.insert( make_pair( 20113, "a_10" ) );
164 m_map.insert( make_pair( 20213, "a_1+" ) );
165 m_map.insert( make_pair( -20213, "a_1-" ) );
166 m_map.insert( make_pair( 20223, "f_1" ) );
167 m_map.insert( make_pair( 115, "a_20" ) );
168 m_map.insert( make_pair( 215, "a_2+" ) );
169 m_map.insert( make_pair( -215, "a_2-" ) );
170 m_map.insert( make_pair( 225, "f_2" ) );
171 m_map.insert( make_pair( 50221, "f_0(1500)" ) );
172 m_map.insert( make_pair( 335, "f'_2" ) );
173 m_map.insert( make_pair( 9020221, "eta(1405)" ) );
174 m_map.insert( make_pair( 10335, "eta2(1870)" ) );
175 m_map.insert( make_pair( 10331, "f_0(1710)" ) );
176 m_map.insert( make_pair( 229, "f_4(2050)" ) );
177 m_map.insert( make_pair( 20333, "f'_1" ) );
178 m_map.insert( make_pair( 8888888, "f_0(1790)" ) );
179 m_map.insert( make_pair( 9000223, "f_1(1510)" ) );
180 m_map.insert( make_pair( 9050225, "f_2(1950)" ) );
181 m_map.insert( make_pair( 9080221, "eta(2225)" ) );
182 m_map.insert( make_pair( 9040221, "eta(1760)" ) );
183 m_map.insert( make_pair( 9999999, "x(1835)" ) );
184 m_map.insert( make_pair( 311, "K0" ) );
185 m_map.insert( make_pair( -311, "anti-K0" ) );
186 m_map.insert( make_pair( 310, "K_S0" ) );
187 m_map.insert( make_pair( 130, "K_L0" ) );
188 m_map.insert( make_pair( 321, "K+" ) );
189 m_map.insert( make_pair( -321, "K-" ) );
190 m_map.insert( make_pair( 313, "K*0" ) );
191 m_map.insert( make_pair( -313, "anti-K*0" ) );
192 m_map.insert( make_pair( 323, "K*+" ) );
193 m_map.insert( make_pair( -323, "K*-" ) );
194 m_map.insert( make_pair( 10311, "K_0*0" ) );
195 m_map.insert( make_pair( -10311, "anti-K_0*0" ) );
196 m_map.insert( make_pair( 10321, "K_0*+" ) );
197 m_map.insert( make_pair( -10321, "K_0*-" ) );
198 m_map.insert( make_pair( 10313, "K_10" ) );
199 m_map.insert( make_pair( -10313, "anti-K_10" ) );
200 m_map.insert( make_pair( 10323, "K_1+" ) );
201 m_map.insert( make_pair( -10323, "K_1-" ) );
202 m_map.insert( make_pair( 315, "K_2*0" ) );
203 m_map.insert( make_pair( -315, "anti-K_2*0" ) );
204 m_map.insert( make_pair( 325, "K_2*+" ) );
205 m_map.insert( make_pair( -325, "K_2*-" ) );
206 m_map.insert( make_pair( 20313, "K'_10" ) );
207 m_map.insert( make_pair( -20313, "anti-K'_10" ) );
208 m_map.insert( make_pair( 20323, "K'_1+" ) );
209 m_map.insert( make_pair( -20323, "K'_1-" ) );
210 m_map.insert( make_pair( 100313, "K'*0" ) );
211 m_map.insert( make_pair( -100313, "anti-K'*0" ) );
212 m_map.insert( make_pair( 100323, "K'*+" ) );
213 m_map.insert( make_pair( -100323, "K'*-" ) );
214 m_map.insert( make_pair( 30313, "K''*0" ) );
215 m_map.insert( make_pair( -30313, "anti-K''*0" ) );
216 m_map.insert( make_pair( 30323, "K''*+" ) );
217 m_map.insert( make_pair( -30323, "K''*-" ) );
218 m_map.insert( make_pair( 317, "K_3*0" ) );
219 m_map.insert( make_pair( -317, "anti-K_3*0" ) );
220 m_map.insert( make_pair( 327, "K_3*+" ) );
221 m_map.insert( make_pair( -327, "K_3*-" ) );
222 m_map.insert( make_pair( 319, "K_4*0" ) );
223 m_map.insert( make_pair( -319, "anti-K_4*0" ) );
224 m_map.insert( make_pair( 329, "K_4*+" ) );
225 m_map.insert( make_pair( -329, "K_4*-" ) );
226 m_map.insert( make_pair( 411, "D+" ) );
227 m_map.insert( make_pair( -411, "D-" ) );
228 m_map.insert( make_pair( 421, "D0" ) );
229 m_map.insert( make_pair( -421, "anti-D0" ) );
230 m_map.insert( make_pair( 413, "D*+" ) );
231 m_map.insert( make_pair( -413, "D*-" ) );
232 m_map.insert( make_pair( 423, "D*0" ) );
233 m_map.insert( make_pair( -423, "anti-D*0" ) );
234 m_map.insert( make_pair( 10411, "D_0*+" ) );
235 m_map.insert( make_pair( -10411, "D_0*-" ) );
236 m_map.insert( make_pair( 10421, "D_0*0" ) );
237 m_map.insert( make_pair( -10421, "anti-D_0*0" ) );
238 m_map.insert( make_pair( 10413, "D_1+" ) );
239 m_map.insert( make_pair( -10413, "D_1-" ) );
240 m_map.insert( make_pair( 10423, "D_10" ) );
241 m_map.insert( make_pair( -10423, "anti-D_10" ) );
242 m_map.insert( make_pair( 415, "D_2*+" ) );
243 m_map.insert( make_pair( -415, "D_2*-" ) );
244 m_map.insert( make_pair( 425, "D_2*0" ) );
245 m_map.insert( make_pair( -425, "anti-D_2*0" ) );
246 m_map.insert( make_pair( 20413, "D'_1+" ) );
247 m_map.insert( make_pair( -20413, "D'_1-" ) );
248 m_map.insert( make_pair( 20423, "D'_10" ) );
249 m_map.insert( make_pair( -20423, "anti-D'_10" ) );
250 m_map.insert( make_pair( 431, "D_s+" ) );
251 m_map.insert( make_pair( -431, "D_s-" ) );
252 m_map.insert( make_pair( 433, "D_s*+" ) );
253 m_map.insert( make_pair( -433, "D_s*-" ) );
254 m_map.insert( make_pair( 10431, "D_s0*+" ) );
255 m_map.insert( make_pair( -10431, "D_s0*-" ) );
256 m_map.insert( make_pair( 10433, "D_s1+" ) );
257 m_map.insert( make_pair( -10433, "D_s1-" ) );
258 m_map.insert( make_pair( 435, "D_s2*+" ) );
259 m_map.insert( make_pair( -435, "D_s2*-" ) );
260 m_map.insert( make_pair( 20433, "D'_s1+" ) );
261 m_map.insert( make_pair( -20433, "D'_s1-" ) );
262 m_map.insert( make_pair( 30411, "D(2S)+" ) );
263 m_map.insert( make_pair( -30411, "D(2S)-" ) );
264 m_map.insert( make_pair( 30421, "D(2S)0" ) );
265 m_map.insert( make_pair( -30421, "anti-D(2S)0" ) );
266 m_map.insert( make_pair( 30413, "D*(2S)+" ) );
267 m_map.insert( make_pair( -30413, "D*(2S)-" ) );
268 m_map.insert( make_pair( 30423, "D*(2S)0" ) );
269 m_map.insert( make_pair( -30423, "anti-D*(2S)0" ) );
270 m_map.insert( make_pair( 511, "B0" ) );
271 m_map.insert( make_pair( -511, "anti-B0" ) );
272 m_map.insert( make_pair( 150, "B0L" ) );
273 m_map.insert( make_pair( 510, "B0H" ) );
274 m_map.insert( make_pair( 521, "B+" ) );
275 m_map.insert( make_pair( -521, "B-" ) );
276 m_map.insert( make_pair( 513, "B*0" ) );
277 m_map.insert( make_pair( -513, "anti-B*0" ) );
278 m_map.insert( make_pair( 523, "B*+" ) );
279 m_map.insert( make_pair( -523, "B*-" ) );
280 m_map.insert( make_pair( 10511, "B_0*0" ) );
281 m_map.insert( make_pair( -10511, "anti-B_0*0" ) );
282 m_map.insert( make_pair( 10521, "B_0*+" ) );
283 m_map.insert( make_pair( -10521, "B_0*-" ) );
284 m_map.insert( make_pair( 10513, "B_10" ) );
285 m_map.insert( make_pair( -10513, "anti-B_10" ) );
286 m_map.insert( make_pair( 10523, "B_1+" ) );
287 m_map.insert( make_pair( -10523, "B_1-" ) );
288 m_map.insert( make_pair( 515, "B_2*0" ) );
289 m_map.insert( make_pair( -515, "anti-B_2*0" ) );
290 m_map.insert( make_pair( 525, "B_2*+" ) );
291 m_map.insert( make_pair( -525, "B_2*-" ) );
292 m_map.insert( make_pair( 20513, "B'_10" ) );
293 m_map.insert( make_pair( -20513, "anti-B'_10" ) );
294 m_map.insert( make_pair( 20523, "B'_1+" ) );
295 m_map.insert( make_pair( -20523, "B'_1-" ) );
296 m_map.insert( make_pair( 531, "B_s0" ) );
297 m_map.insert( make_pair( -531, "anti-B_s0" ) );
298 m_map.insert( make_pair( 350, "B_s0L" ) );
299 m_map.insert( make_pair( 530, "B_s0H" ) );
300 m_map.insert( make_pair( 533, "B_s*0" ) );
301 m_map.insert( make_pair( -533, "anti-B_s*0" ) );
302 m_map.insert( make_pair( 10531, "B_s0*0" ) );
303 m_map.insert( make_pair( -10531, "anti-B_s0*0" ) );
304 m_map.insert( make_pair( 10533, "B_s10" ) );
305 m_map.insert( make_pair( -10533, "anti-B_s10" ) );
306 m_map.insert( make_pair( 535, "B_s2*0" ) );
307 m_map.insert( make_pair( -535, "anti-B_s2*0" ) );
308 m_map.insert( make_pair( 20533, "B'_s10" ) );
309 m_map.insert( make_pair( -20533, "anti-B'_s10" ) );
310 m_map.insert( make_pair( 541, "B_c+" ) );
311 m_map.insert( make_pair( -541, "B_c-" ) );
312 m_map.insert( make_pair( 543, "B_c*+" ) );
313 m_map.insert( make_pair( -543, "B_c*-" ) );
314 m_map.insert( make_pair( 10541, "B_c0*+" ) );
315 m_map.insert( make_pair( -10541, "B_c0*-" ) );
316 m_map.insert( make_pair( 10543, "B_c1+" ) );
317 m_map.insert( make_pair( -10543, "B_c1-" ) );
318 m_map.insert( make_pair( 545, "B_c2*+" ) );
319 m_map.insert( make_pair( -545, "B_c2*-" ) );
320 m_map.insert( make_pair( 20543, "B'_c1+" ) );
321 m_map.insert( make_pair( -20543, "B'_c1-" ) );
322 m_map.insert( make_pair( 441, "eta_c" ) );
323 m_map.insert( make_pair( 20441, "eta_c(2S)" ) );
324 m_map.insert( make_pair( 443, "J/psi" ) );
325 m_map.insert( make_pair( 440, "psi_diff" ) );
326 m_map.insert( make_pair( 100443, "psi(2S)" ) );
327 m_map.insert( make_pair( 30443, "psi(3770)" ) );
328 m_map.insert( make_pair( 9000443, "psi(4040)" ) );
329 m_map.insert( make_pair( 9010443, "psi(4160)" ) );
330 m_map.insert( make_pair( 9020443, "psi(4415)" ) );
331 m_map.insert( make_pair( 10443, "h_c" ) );
332 m_map.insert( make_pair( 10441, "chi_c0" ) );
333 m_map.insert( make_pair( 20443, "chi_c1" ) );
334 m_map.insert( make_pair( 445, "chi_c2" ) );
335 m_map.insert( make_pair( 551, "eta_b" ) );
336 m_map.insert( make_pair( 20551, "eta_b(2S)" ) );
337 m_map.insert( make_pair( 40551, "eta_b(3S)" ) );
338 m_map.insert( make_pair( 553, "Upsilon" ) );
339 m_map.insert( make_pair( 30553, "Upsilon(2S)" ) );
340 m_map.insert( make_pair( 60553, "Upsilon(3S)" ) );
341 m_map.insert( make_pair( 70553, "Upsilon(4S)" ) );
342 m_map.insert( make_pair( 80553, "Upsilon(5S)" ) );
343 m_map.insert( make_pair( 10553, "h_b" ) );
344 m_map.insert( make_pair( 40553, "h_b(2P)" ) );
345 m_map.insert( make_pair( 100553, "h_b(3P)" ) );
346 m_map.insert( make_pair( 10551, "chi_b0" ) );
347 m_map.insert( make_pair( 20553, "chi_b1" ) );
348 m_map.insert( make_pair( 555, "chi_b2" ) );
349 m_map.insert( make_pair( 30551, "chi_b0(2P)" ) );
350 m_map.insert( make_pair( 50553, "chi_b1(2P)" ) );
351 m_map.insert( make_pair( 10555, "chi_b2(2P)" ) );
352 m_map.insert( make_pair( 50551, "chi_b0(3P)" ) );
353 m_map.insert( make_pair( 110553, "chi_b1(3P)" ) );
354 m_map.insert( make_pair( 20555, "chi_b2(3P)" ) );
355 m_map.insert( make_pair( 40555, "eta_b2(1D)" ) );
356 m_map.insert( make_pair( 60555, "eta_b2(2D)" ) );
357 m_map.insert( make_pair( 120553, "Upsilon_1(1D)" ) );
358 m_map.insert( make_pair( 30555, "Upsilon_2(1D)" ) );
359 m_map.insert( make_pair( 557, "Upsilon_3(1D)" ) );
360 m_map.insert( make_pair( 130553, "Upsilon_1(2D)" ) );
361 m_map.insert( make_pair( 50555, "Upsilon_2(2D)" ) );
362 m_map.insert( make_pair( 10557, "Upsilon_3(2D)" ) );
363 m_map.insert( make_pair( 10222, "sigma_0" ) );
364 m_map.insert( make_pair( 1114, "Delta-" ) );
365 m_map.insert( make_pair( -1114, "anti-Delta+" ) );
366 m_map.insert( make_pair( 2110, "n_diffr" ) );
367 m_map.insert( make_pair( -2110, "anti-n_diffr" ) );
368 m_map.insert( make_pair( 2112, "n0" ) );
369 m_map.insert( make_pair( -2112, "anti-n0" ) );
370 m_map.insert( make_pair( 2114, "Delta0" ) );
371 m_map.insert( make_pair( -2114, "anti-Delta0" ) );
372 m_map.insert( make_pair( 2210, "p_diff+" ) );
373 m_map.insert( make_pair( -2210, "anti-p_diff-" ) );
374 m_map.insert( make_pair( 2212, "p+" ) );
375 m_map.insert( make_pair( -2212, "anti-p-" ) );
376 m_map.insert( make_pair( 2214, "Delta+" ) );
377 m_map.insert( make_pair( -2214, "anti-Delta-" ) );
378 m_map.insert( make_pair( 2224, "Delta++" ) );
379 m_map.insert( make_pair( -2224, "anti-Delta--" ) );
380 m_map.insert( make_pair( 3112, "Sigma-" ) );
381 m_map.insert( make_pair( -3112, "anti-Sigma+" ) );
382 m_map.insert( make_pair( 3114, "Sigma*-" ) );
383 m_map.insert( make_pair( -3114, "anti-Sigma*+" ) );
384 m_map.insert( make_pair( 3122, "Lambda0" ) );
385 m_map.insert( make_pair( -3122, "anti-Lambda0" ) );
386 m_map.insert( make_pair( 13122, "Lambda(1405)0" ) );
387 m_map.insert( make_pair( -13122, "anti-Lambda(1405)0" ) );
388 m_map.insert( make_pair( 3124, "Lambda(1520)0" ) );
389 m_map.insert( make_pair( -3124, "anti-Lambda(1520)0" ) );
390 m_map.insert( make_pair( 23122, "Lambda(1600)0" ) );
391 m_map.insert( make_pair( -23122, "anti-Lambda(1600)0" ) );
392 m_map.insert( make_pair( 33122, "Lambda(1670)0" ) );
393 m_map.insert( make_pair( -33122, "anti-Lambda(1670)0" ) );
394 m_map.insert( make_pair( 13124, "Lambda(1690)0" ) );
395 m_map.insert( make_pair( -13124, "anti-Lambda(1690)0" ) );
396 m_map.insert( make_pair( 43122, "Lambda(1800)0" ) );
397 m_map.insert( make_pair( -43122, "anti-Lambda(1800)0" ) );
398 m_map.insert( make_pair( 53122, "Lambda(1810)0" ) );
399 m_map.insert( make_pair( -53122, "anti-Lambda(1810)0" ) );
400 m_map.insert( make_pair( 3126, "Lambda(1820)0" ) );
401 m_map.insert( make_pair( -3126, "anti-Lambda(1820)0" ) );
402 m_map.insert( make_pair( 13126, "Lambda(1830)0" ) );
403 m_map.insert( make_pair( -13126, "anti-Lambda(1830)0" ) );
404 m_map.insert( make_pair( 13212, "Sigma(1660)0" ) );
405 m_map.insert( make_pair( -13212, "anti-Sigma(1660)0" ) );
406 m_map.insert( make_pair( 13214, "Sigma(1670)0" ) );
407 m_map.insert( make_pair( -13214, "anti-Sigma(1670)0" ) );
408 m_map.insert( make_pair( 23212, "Sigma(1750)0" ) );
409 m_map.insert( make_pair( -23212, "anti-Sigma(1750)0" ) );
410 m_map.insert( make_pair( 3216, "Sigma(1775)0" ) );
411 m_map.insert( make_pair( -3216, "anti-Sigma(1775)0" ) );
412 m_map.insert( make_pair( 3212, "Sigma0" ) );
413 m_map.insert( make_pair( -3212, "anti-Sigma0" ) );
414 m_map.insert( make_pair( 3214, "Sigma*0" ) );
415 m_map.insert( make_pair( -3214, "anti-Sigma*0" ) );
416 m_map.insert( make_pair( 3222, "Sigma+" ) );
417 m_map.insert( make_pair( -3222, "anti-Sigma-" ) );
418 m_map.insert( make_pair( 3224, "Sigma*+" ) );
419 m_map.insert( make_pair( -3224, "anti-Sigma*-" ) );
420 m_map.insert( make_pair( 3312, "Xi-" ) );
421 m_map.insert( make_pair( -3312, "anti-Xi+" ) );
422 m_map.insert( make_pair( 3314, "Xi*-" ) );
423 m_map.insert( make_pair( -3314, "anti-Xi*+" ) );
424 m_map.insert( make_pair( 3322, "Xi0" ) );
425 m_map.insert( make_pair( -3322, "anti-Xi0" ) );
426 m_map.insert( make_pair( 3324, "Xi*0" ) );
427 m_map.insert( make_pair( -3324, "anti-Xi*0" ) );
428 m_map.insert( make_pair( 3334, "Omega-" ) );
429 m_map.insert( make_pair( -3334, "anti-Omega+" ) );
430 m_map.insert( make_pair( 14122, "Lambda_c(2593)+" ) );
431 m_map.insert( make_pair( -14122, "anti-Lambda_c(2593)-" ) );
432 m_map.insert( make_pair( 14124, "Lambda_c(2625)+" ) );
433 m_map.insert( make_pair( -14124, "anti-Lambda_c(2625)-" ) );
434 m_map.insert( make_pair( 4112, "Sigma_c0" ) );
435 m_map.insert( make_pair( -4112, "anti-Sigma_c0" ) );
436 m_map.insert( make_pair( 4114, "Sigma_c*0" ) );
437 m_map.insert( make_pair( -4114, "anti-Sigma_c*0" ) );
438 m_map.insert( make_pair( 4212, "Sigma_c+" ) );
439 m_map.insert( make_pair( -4212, "anti-Sigma_c-" ) );
440 m_map.insert( make_pair( 4214, "Sigma_c*+" ) );
441 m_map.insert( make_pair( -4214, "anti-Sigma_c*-" ) );
442 m_map.insert( make_pair( 4222, "Sigma_c++" ) );
443 m_map.insert( make_pair( -4222, "anti-Sigma_c--" ) );
444 m_map.insert( make_pair( 4224, "Sigma_c*++" ) );
445 m_map.insert( make_pair( -4224, "anti-Sigma_c*--" ) );
446 m_map.insert( make_pair( 4312, "Xi'_c0" ) );
447 m_map.insert( make_pair( -4312, "anti-Xi'_c0" ) );
448 m_map.insert( make_pair( 4322, "Xi'_c+" ) );
449 m_map.insert( make_pair( -4322, "anti-Xi'_c-" ) );
450 m_map.insert( make_pair( 4324, "Xi_c*+" ) );
451 m_map.insert( make_pair( -4324, "anti-Xi_c*-" ) );
452 m_map.insert( make_pair( 4122, "Lambda_c+" ) );
453 m_map.insert( make_pair( -4122, "anti-Lambda_c-" ) );
454 m_map.insert( make_pair( 4132, "Xi_c0" ) );
455 m_map.insert( make_pair( -4132, "anti-Xi_c0" ) );
456 m_map.insert( make_pair( 4232, "Xi_c+" ) );
457 m_map.insert( make_pair( -4232, "anti-Xi_c-" ) );
458 m_map.insert( make_pair( 4314, "Xi_c*0" ) );
459 m_map.insert( make_pair( -4314, "anti-Xi_c*0" ) );
460 m_map.insert( make_pair( 4332, "Omega_c0" ) );
461 m_map.insert( make_pair( -4332, "anti-Omega_c0" ) );
462 m_map.insert( make_pair( 4334, "Omega_c*0" ) );
463 m_map.insert( make_pair( -4334, "anti-Omega_c*0" ) );
464 m_map.insert( make_pair( 5112, "Sigma_b-" ) );
465 m_map.insert( make_pair( -5112, "anti-Sigma_b+" ) );
466 m_map.insert( make_pair( 5114, "Sigma_b*-" ) );
467 m_map.insert( make_pair( -5114, "anti-Sigma_b*+" ) );
468 m_map.insert( make_pair( 5122, "Lambda_b0" ) );
469 m_map.insert( make_pair( -5122, "anti-Lambda_b0" ) );
470 m_map.insert( make_pair( 5132, "Xi_b-" ) );
471 m_map.insert( make_pair( -5132, "anti-Xi_b+" ) );
472 m_map.insert( make_pair( 5212, "Sigma_b0" ) );
473 m_map.insert( make_pair( -5212, "anti-Sigma_b0" ) );
474 m_map.insert( make_pair( 5214, "Sigma_b*0" ) );
475 m_map.insert( make_pair( -5214, "anti-Sigma_b*0" ) );
476 m_map.insert( make_pair( 5222, "Sigma_b+" ) );
477 m_map.insert( make_pair( -5222, "anti-Sigma_b-" ) );
478 m_map.insert( make_pair( 5224, "Sigma_b*+" ) );
479 m_map.insert( make_pair( -5224, "anti-Sigma_b*-" ) );
480 m_map.insert( make_pair( 5232, "Xi_b0" ) );
481 m_map.insert( make_pair( -5232, "anti-Xi_b0" ) );
482 m_map.insert( make_pair( 5312, "Xi'_b-" ) );
483 m_map.insert( make_pair( -5312, "anti-Xi'_b+" ) );
484 m_map.insert( make_pair( 5314, "Xi_b*-" ) );
485 m_map.insert( make_pair( -5314, "anti-Xi_b*+" ) );
486 m_map.insert( make_pair( 5322, "Xi'_b0" ) );
487 m_map.insert( make_pair( -5322, "anti-Xi'_b0" ) );
488 m_map.insert( make_pair( 5324, "Xi_b*0" ) );
489 m_map.insert( make_pair( -5324, "anti-Xi_b*0" ) );
490 m_map.insert( make_pair( 5332, "Omega_b-" ) );
491 m_map.insert( make_pair( -5332, "anti-Omega_b+" ) );
492 m_map.insert( make_pair( 5334, "Omega_b*-" ) );
493 m_map.insert( make_pair( -5334, "anti-Omega_b*+" ) );
494 m_map.insert( make_pair( 1101, "dd_0" ) );
495 m_map.insert( make_pair( -1101, "anti-dd_0" ) );
496 m_map.insert( make_pair( 2101, "ud_0" ) );
497 m_map.insert( make_pair( -2101, "anti-ud_0" ) );
498 m_map.insert( make_pair( 2201, "uu_0" ) );
499 m_map.insert( make_pair( -2201, "anti-uu_0" ) );
500 m_map.insert( make_pair( 3101, "sd_0" ) );
501 m_map.insert( make_pair( -3101, "anti-sd_0" ) );
502 m_map.insert( make_pair( 3201, "su_0" ) );
503 m_map.insert( make_pair( -3201, "anti-su_0" ) );
504 m_map.insert( make_pair( 3301, "ss_0" ) );
505 m_map.insert( make_pair( -3301, "anti-ss_0" ) );
506 m_map.insert( make_pair( 4101, "cd_0" ) );
507 m_map.insert( make_pair( -4101, "anti-cd_0" ) );
508 m_map.insert( make_pair( 4201, "cu_0" ) );
509 m_map.insert( make_pair( -4201, "anti-cu_0" ) );
510 m_map.insert( make_pair( 4301, "cs_0" ) );
511 m_map.insert( make_pair( -4301, "anti-cs_0" ) );
512 m_map.insert( make_pair( 4401, "cc_0" ) );
513 m_map.insert( make_pair( -4401, "anti-cc_0" ) );
514 m_map.insert( make_pair( 5101, "bd_0" ) );
515 m_map.insert( make_pair( -5101, "anti-bd_0" ) );
516 m_map.insert( make_pair( 5201, "bu_0" ) );
517 m_map.insert( make_pair( -5201, "anti-bu_0" ) );
518 m_map.insert( make_pair( 5301, "bs_0" ) );
519 m_map.insert( make_pair( -5301, "anti-bs_0" ) );
520 m_map.insert( make_pair( 5401, "bc_0" ) );
521 m_map.insert( make_pair( -5401, "anti-bc_0" ) );
522 m_map.insert( make_pair( 5501, "bb_0" ) );
523 m_map.insert( make_pair( -5501, "anti-bb_0" ) );
524 m_map.insert( make_pair( 1103, "dd_1" ) );
525 m_map.insert( make_pair( -1103, "anti-dd_1" ) );
526 m_map.insert( make_pair( 2103, "ud_1" ) );
527 m_map.insert( make_pair( -2103, "anti-ud_1" ) );
528 m_map.insert( make_pair( 2203, "uu_1" ) );
529 m_map.insert( make_pair( -2203, "anti-uu_1" ) );
530 m_map.insert( make_pair( 3103, "sd_1" ) );
531 m_map.insert( make_pair( -3103, "anti-sd_1" ) );
532 m_map.insert( make_pair( 3203, "su_1" ) );
533 m_map.insert( make_pair( -3203, "anti-su_1" ) );
534 m_map.insert( make_pair( 3303, "ss_1" ) );
535 m_map.insert( make_pair( -3303, "anti-ss_1" ) );
536 m_map.insert( make_pair( 4103, "cd_1" ) );
537 m_map.insert( make_pair( -4103, "anti-cd_1" ) );
538 m_map.insert( make_pair( 4203, "cu_1" ) );
539 m_map.insert( make_pair( -4203, "anti-cu_1" ) );
540 m_map.insert( make_pair( 4303, "cs_1" ) );
541 m_map.insert( make_pair( -4303, "anti-cs_1" ) );
542 m_map.insert( make_pair( 4403, "cc_1" ) );
543 m_map.insert( make_pair( -4403, "anti-cc_1" ) );
544 m_map.insert( make_pair( 5103, "bd_1" ) );
545 m_map.insert( make_pair( -5103, "anti-bd_1" ) );
546 m_map.insert( make_pair( 5203, "bu_1" ) );
547 m_map.insert( make_pair( -5203, "anti-bu_1" ) );
548 m_map.insert( make_pair( 5303, "bs_1" ) );
549 m_map.insert( make_pair( -5303, "anti-bs_1" ) );
550 m_map.insert( make_pair( 5403, "bc_1" ) );
551 m_map.insert( make_pair( -5403, "anti-bc_1" ) );
552 m_map.insert( make_pair( 5503, "bb_1" ) );
553 m_map.insert( make_pair( -5503, "anti-bb_1" ) );
554 m_map.insert( make_pair( 1011, "deuteron" ) );
555 m_map.insert( make_pair( -1011, "anti-deuteron" ) );
556 m_map.insert( make_pair( 1021, "tritium" ) );
557 m_map.insert( make_pair( -1021, "anti-tritium" ) );
558 m_map.insert( make_pair( 1012, "He3" ) );
559 m_map.insert( make_pair( -1012, "anti-He3" ) );
560 m_map.insert( make_pair( 1022, "alpha" ) );
561 m_map.insert( make_pair( -1022, "anti-alpha" ) );
562 m_map.insert( make_pair( 100, "geantino" ) );
563 m_map.insert( make_pair( 101, "chargedgeantino" ) );
564 m_map.insert( make_pair( 30343, "Xsd" ) );
565 m_map.insert( make_pair( -30343, "anti-Xsd" ) );
566 m_map.insert( make_pair( 30353, "Xsu" ) );
567 m_map.insert( make_pair( -30353, "anti-Xsu" ) );
568 m_map.insert( make_pair( 30373, "Xdd" ) );
569 m_map.insert( make_pair( -30373, "anti-Xdd" ) );
570 m_map.insert( make_pair( 30383, "Xdu" ) );
571 m_map.insert( make_pair( -30383, "anti-Xdu" ) );
572 m_map.insert( make_pair( 30363, "Xss" ) );
573 m_map.insert( make_pair( -30363, "anti-Xss" ) );
574 m_map.insert( make_pair( 51, "dummy00_1" ) );
575 m_map.insert( make_pair( 52, "dummy10_1" ) );
576 m_map.insert( make_pair( 53, "dummy01_1" ) );
577 m_map.insert( make_pair( 54, "dummy11_1" ) );
578 m_map.insert( make_pair( -51, "anti-dummy00_1" ) );
579 m_map.insert( make_pair( -52, "anti-dummy10_1" ) );
580 m_map.insert( make_pair( -53, "anti-dummy01_1" ) );
581 m_map.insert( make_pair( -54, "anti-dummy11_1" ) );
582 m_map.insert( make_pair( 55, "dummy00_2" ) );
583 m_map.insert( make_pair( 56, "dummy10_2" ) );
584 m_map.insert( make_pair( 57, "dummy01_2" ) );
585 m_map.insert( make_pair( 58, "dummy11_2" ) );
586 m_map.insert( make_pair( -55, "anti-dummy00_2" ) );
587 m_map.insert( make_pair( -56, "anti-dummy10_2" ) );
588 m_map.insert( make_pair( -57, "anti-dummy01_2" ) );
589 m_map.insert( make_pair( -58, "anti-dummy11_2" ) );
590
591 //
592 //--------end of book--------
593 //
594
595 log << MSG::INFO << "successfully return from initialize()" << endmsg;
596 return StatusCode::SUCCESS;
597}
598
599// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
601
602 MsgStream log( msgSvc(), name() );
603 log << MSG::INFO << "in execute()" << endmsg;
604
605 /// Get EventHeader
606 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(), "/Event/EventHeader" );
607
608 if ( !eventHeader )
609 {
610 log << MSG::FATAL << "Could not find EventHeader" << endmsg;
611 return StatusCode::FAILURE;
612 }
613
614 //// "Event/MC/McParticleCol" does NOT work
615 SmartDataPtr<Event::McParticleCol> mcParticleCol( eventSvc(),
617
618 if ( !mcParticleCol )
619 {
620 log << MSG::FATAL << "Could not find McParticleCol" << endmsg;
621 return StatusCode::FAILURE;
622 }
623
624 /// Begin counting events for frequency property
625 ++m_eventCounter;
626
627 if ( ( ( m_eventCounter % m_freq ) == 0 ) || m_FindRunEvent )
628 {
629
630 /// Extract run and event number
631 int run = eventHeader->runNumber();
632 int event = eventHeader->eventNumber();
633
634 /// if m_FindRunEvent = true, determine if this is correct run and event
635 bool validEvent = false;
636 if ( m_FindRunEvent && ( run == m_FindRun ) && ( event == m_FindEvent ) )
637 validEvent = true;
638 if ( !m_FindRunEvent ) validEvent = true;
639
640 /// Only print out information when validEvent = true
641 if ( validEvent )
642 {
643
644 cout << endl << endl << "-------------------------" << endl;
645 cout << "Run: " << run << ", Event: " << event << endl;
646
647 //////////////////////////////
648 /// Dump vertices
649 cout << "Vertices: " << endl;
650
651 // "Cluster" is first particle before BesEvtGen particle
652 bool foundClusterAsMother = false;
653 if ( !m_BesEvtGenOnly ) foundClusterAsMother = true;
654
655 Event::McParticleCol::iterator iter_mc = mcParticleCol->begin();
656 for ( ; iter_mc != mcParticleCol->end(); iter_mc++ )
657 {
658
659 if ( !( *iter_mc )->primaryParticle() )
660 {
661 if ( ( *iter_mc )->mother().particleProperty() == 91 ) foundClusterAsMother = true;
662 }
663 if ( !foundClusterAsMother ) continue;
664
665 const SmartRefVector<Event::McParticle>& gc = ( *iter_mc )->daughterList();
666
667 if ( gc.size() > 0 )
668 {
669 cout << " " << ( m_map.find( ( *iter_mc )->particleProperty() ) )->second << " ["
670 << ( *iter_mc )->trackIndex() << "] -> ";
671
672 for ( unsigned int ii = 0; ii < gc.size(); ii++ )
673 {
674 if ( ii != ( gc.size() - 1 ) )
675 cout << ( m_map.find( gc[ii]->particleProperty() ) )->second << " ["
676 << gc[ii]->trackIndex() << "], ";
677 else
678 cout << ( m_map.find( gc[ii]->particleProperty() ) )->second << " ["
679 << gc[ii]->trackIndex() << "]" << endl;
680 }
681
682 } // End of "gc.size() > 0" IF
683
684 } // End of "McParticleCol" FOR LOOP
685
686 //////////////////////////////////////
687 /// Dump particles
688
689 if ( m_PrintParticles )
690 {
691
692 cout << endl
693 << "Particles: [#Children, primParticle, leafParticle, decayFromGen, "
694 "decayInFlight] "
695 << endl;
696
697 foundClusterAsMother = false;
698 if ( !m_BesEvtGenOnly ) foundClusterAsMother = true;
699
700 bool firstDecayInFlight = true;
701 iter_mc = mcParticleCol->begin();
702 for ( ; iter_mc != mcParticleCol->end(); iter_mc++ )
703 {
704
705 if ( !( *iter_mc )->primaryParticle() )
706 {
707 if ( ( *iter_mc )->mother().particleProperty() == 91 ) foundClusterAsMother = true;
708 }
709 if ( !foundClusterAsMother ) continue;
710
711 const SmartRefVector<Event::McParticle>& gc = ( *iter_mc )->daughterList();
712 int numChildren = gc.size();
713
714 string primaryParticle = "F";
715 if ( ( *iter_mc )->primaryParticle() ) primaryParticle = "T";
716
717 string leafParticle = "F";
718 if ( ( *iter_mc )->leafParticle() ) leafParticle = "T";
719
720 string decayFromGen = "F";
721 if ( ( *iter_mc )->decayFromGenerator() ) decayFromGen = "T";
722
723 string decayInFlight = "F";
724 if ( ( *iter_mc )->decayInFlight() )
725 {
726 decayInFlight = "T";
727
728 if ( firstDecayInFlight )
729 {
730 cout << endl;
731 firstDecayInFlight = false;
732 }
733 }
734
735 cout << " " << ( *iter_mc )->trackIndex() << ": "
736 << ( m_map.find( ( *iter_mc )->particleProperty() ) )->second
737 << " p4 = " << ( *iter_mc )->initialFourMomentum() << " [" << numChildren
738 << ", " << primaryParticle << ", " << leafParticle << ", " << decayFromGen
739 << ", " << decayInFlight << "]" << endl;
740
741 } // End of "McParticleCol" FOR LOOP
742 } // End of "m_PrintParticle" IF
743
744 } // End of "validEvent" IF
745 } // End of "m_freq" IF
746
747 return StatusCode::SUCCESS;
748}
749
750// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
752
753 MsgStream log( msgSvc(), name() );
754 log << MSG::INFO << "in finalize()" << endmsg;
755
756 return StatusCode::SUCCESS;
757}
DECLARE_COMPONENT(BesBdkRc)
IMessageSvc * msgSvc()
StatusCode initialize()
DumpDecayTreeAlg(const std::string &name, ISvcLocator *pSvcLocator)