Pluto v6.3.0
Loading...
Searching...
No Matches
PPDGPlugin.cc
Go to the documentation of this file.
1
2//
3//Plugin to add the pdg code to the Pluto data base
4//Required for the unigen input source
5//
7
8#include "PPDGPlugin.h"
9
10
11PPDGPlugin::PPDGPlugin(const Char_t *id, const Char_t *de):
13 is_initialized = 0;
14 is_extend_resonances = 0;
15}
16
18 return kTRUE;
19}
20
23
24
25Bool_t PPDGPlugin::ExecCommand(const char *command, Double_t) {
26
27 if (strcmp (command,"extend_resonances") == 0) {
28 if (!is_extend_resonances) {
29 is_extend_resonances = 1;
30 //============================= N*(1680)0 ==================================
31 makeStaticData()->AddParticle(80,"NF150", 1.68); //PID, name, mass
32 makeStaticData()->AddAlias("NF150","N*(1680)0");
33 makeStaticData()->SetParticleTotalWidth("NF150", 0.13);
34 makeStaticData()->SetParticleBaryon("NF150", 1);
35 makeStaticData()->SetParticleSpin("NF150", 5);
36 makeStaticData()->SetParticleCharge("NF150", 0);
38 makeStaticData()->SetParticleParity("NF150", 1);
39 //-------------------- N,pi ---------------
40 makeStaticData()->AddDecay("NF150 --> p + pi-", "NF150",
41 "p,pi-", 0.65/3. );
42 makeStaticData()->AddDecay("NF150 --> n + pi+", "NF150",
43 "n,pi0", 0.65*2./3. );
44 //------------------ D1232,pi -------------
45 makeStaticData()->AddDecay("NF150 --> Delta+ + pi-", "NF150",
46 "D+,pi-", 0.097482/2. ); //PDG - {0.05-0.15}
47 makeStaticData()->AddDecay("NF150 --> Delta0 + pi0", "NF150",
48 "D0,pi0", 0.097482/3. );
49 makeStaticData()->AddDecay("NF150 --> Delta- + pi+", "NF150",
50 "D-,pi+", 0.097482/6. );
51 //------------------ N,rho -------------
52 makeStaticData()->AddDecay("NF150 --> p + rho-", "NF150",
53 "p,rho-", 0.1/3. ); //PDG - {0.03-0.15}
54 makeStaticData()->AddDecay("NF150 --> n + rho0", "NF150",
55 "n,rho0", 0.1*2./3. );
56 //------------------ p,pi,pi -------------
57 makeStaticData()->AddDecay("NF150 --> n + pi+ + pi-", "NF150",
58 "p,pi+,pi-", 0.1475*2./3. ); //PDG - {0.05-0.20}
59 makeStaticData()->AddDecay("NF150 --> n + pi0 + pi0", "NF150",
60 "p,pi0,pi0", 0.1475/3. );
61 //------------------ p,gamma -------------
62 makeStaticData()->AddDecay("NF150 --> n + g", "NF150",
63 "p,g", 0.0025 ); //PDG - {0.0021-0.0032}
64 //0.0025/137 = 1.8e-5 left for Dalitz Decay
65
66 //============================= N*(1680)+ ==================================
67 makeStaticData()->AddParticle(81,"NF15+", 1.68); //PID, name, mass
68 makeStaticData()->AddAlias("NF15+","N*(1680)+");
69 makeStaticData()->SetParticleTotalWidth("NF15+", 0.13);
70 makeStaticData()->SetParticleBaryon("NF15+", 1);
71 makeStaticData()->SetParticleSpin("NF15+", 5);
72 makeStaticData()->SetParticleCharge("NF15+", 1);
74 makeStaticData()->SetParticleParity("NF15+", 1);
75 //-------------------- N,pi ---------------
76 makeStaticData()->AddDecay("NF15+ --> p + pi0", "NF15+",
77 "p,pi0", 0.65/3. );
78 makeStaticData()->AddDecay("NF15+ --> n + pi+", "NF15+",
79 "n,pi+", 0.65*2./3. );
80 //------------------ D1232,pi -------------
81 makeStaticData()->AddDecay("NF15+ --> Delta++ + pi-", "NF15+",
82 "D++,pi-", 0.097482/2. ); //PDG - {0.05-0.15}
83 makeStaticData()->AddDecay("NF15+ --> Delta+ + pi0", "NF15+",
84 "D+,pi0", 0.097482/3. );
85 makeStaticData()->AddDecay("NF15+ --> Delta0 + pi+", "NF15+",
86 "D0,pi+", 0.097482/6. );
87 //------------------ N,rho -------------
88 makeStaticData()->AddDecay("NF15+ --> p + rho0", "NF15+",
89 "p,rho0", 0.1/3. ); //PDG - {0.03-0.15}
90 makeStaticData()->AddDecay("NF15+ --> n + rho+", "NF15+",
91 "n,rho+", 0.1*2./3. );
92 //------------------ p,pi,pi -------------
93 makeStaticData()->AddDecay("NF15+ --> p + pi+ + pi-", "NF15+",
94 "p,pi+,pi-", 0.1475*2./3. ); //PDG - {0.05-0.20}
95 makeStaticData()->AddDecay("NF15+ --> p + pi0 + pi0", "NF15+",
96 "p,pi0,pi0", 0.1475/3. );
97 //------------------ p,gamma -------------
98 makeStaticData()->AddDecay("NF15+ --> p + g", "NF15+",
99 "p,g", 0.0025 ); //PDG - {0.0021-0.0032}
100 //0.0025/137 = 1.8e-5 left for Dalitz Decay
101
102 //=========================================================================
103 //=========================================================================
104 //=========================================================================
105
106 //============================= D(1700)- ==================================
107 makeStaticData()->AddParticle(82,"DD33-", 1.7); //PID, name, mass
108 makeStaticData()->AddAlias("DD33-","Delta(1700)+");
109 makeStaticData()->SetParticleTotalWidth("DD33-", 0.3);
110 makeStaticData()->SetParticleBaryon("DD33-", 1);
111 makeStaticData()->SetParticleSpin("DD33-", 3);
112 makeStaticData()->SetParticleCharge("DD33-", -1);
113 makeStaticData()->SetParticleIsospin("DD33-", 3);
114 makeStaticData()->SetParticleParity("DD33-", -1);
115 //-------------------- N,pi ---------------
116 makeStaticData()->AddDecay("DD33- --> n + pi-", "DD33-",
117 "n,pi-", 0.15 ); //PDG - {0.1-0.2}
118 //------------------ D1232,pi -------------
119 makeStaticData()->AddDecay("DD33- --> Delta0 + pi-", "DD33-",
120 "D0,pi-", 4.495854e-01*2./5. );//PDG - {0.3-0.6}
121 makeStaticData()->AddDecay("DD33- --> Delta- + pi0", "DD33-",
122 "D-,pi0", 4.495854e-01*3./5. );
123 //------------------ N,rho -------------
124 makeStaticData()->AddDecay("DD33- --> n + rho-", "DD33-",
125 "n,rho-", 0.45 ); //PDG - {0.3-0.55}
126
127 //============================= D(1700)0 ==================================
128 makeStaticData()->AddParticle(83,"DD330", 1.7); //PID, name, mass
129 makeStaticData()->AddAlias("DD330","Delta(1700)+");
130 makeStaticData()->SetParticleTotalWidth("DD330", 0.3);
131 makeStaticData()->SetParticleBaryon("DD330", 1);
132 makeStaticData()->SetParticleSpin("DD330", 3);
133 makeStaticData()->SetParticleCharge("DD330", 0);
134 makeStaticData()->SetParticleIsospin("DD330", 3);
135 makeStaticData()->SetParticleParity("DD330", -1);
136 //-------------------- N,pi ---------------
137 makeStaticData()->AddDecay("DD330 --> p + pi-", "DD330",
138 "p,pi-", 0.15/3. ); //PDG - {0.1-0.2}
139 makeStaticData()->AddDecay("DD330 --> n + pi0", "DD330",
140 "n,pi0", 0.15*2./3. );
141 //------------------ D1232,pi -------------
142 makeStaticData()->AddDecay("DD330 --> Delta+ + pi-", "DD330",
143 "D+,pi-", 4.495854e-01*8./15. );//PDG - {0.3-0.6}
144 makeStaticData()->AddDecay("DD330 --> Delta0 + pi0", "DD330",
145 "D0,pi0", 4.495854e-01/15. );
146 makeStaticData()->AddDecay("DD330 --> Delta- + pi+", "DD330",
147 "D-,pi+", 4.495854e-01*2./5. );
148 //"D0,pi+", 0.5897*8./15. );
149 //------------------ N,rho -------------
150 makeStaticData()->AddDecay("DD330 --> n + rho0", "DD330",
151 "n,rho0", 0.45*2./3. ); //PDG - {0.3-0.55}
152 makeStaticData()->AddDecay("DD330 --> p + rho-", "DD330",
153 "p,rho-", 0.45/3. );
154 //------------------ p,gamma -------------
155 makeStaticData()->AddDecay("DD330 --> n + g", "DD330",
156 "n,g", 0.002 );
157
158
159 //============================= D(1700)+ ==================================
160 makeStaticData()->AddParticle(84,"DD33+", 1.7); //PID, name, mass
161 makeStaticData()->AddAlias("DD33+","Delta(1700)+");
162 makeStaticData()->SetParticleTotalWidth("DD33+", 0.3);
163 makeStaticData()->SetParticleBaryon("DD33+", 1);
164 makeStaticData()->SetParticleSpin("DD33+", 3);
165 makeStaticData()->SetParticleCharge("DD33+", 1);
166 makeStaticData()->SetParticleIsospin("DD33+", 3);
167 makeStaticData()->SetParticleParity("DD33+", -1);
168 //-------------------- N,pi ---------------
169 makeStaticData()->AddDecay("DD33+ --> p + pi0", "DD33+",
170 "p,pi0", 0.15*2./3. ); //PDG - {0.1-0.2}
171 makeStaticData()->AddDecay("DD33+ --> n + pi+", "DD33+",
172 "n,pi+", 0.15/3. );
173 //------------------ D1232,pi -------------
174 makeStaticData()->AddDecay("DD33+ --> Delta++ + pi-", "DD33+",
175 "D++,pi-", 4.495854e-01*2./5. );//PDG - {0.3-0.6}
176 makeStaticData()->AddDecay("DD33+ --> Delta+ + pi0", "DD33+",
177 "D+,pi0", 4.495854e-01/15. );
178 makeStaticData()->AddDecay("DD33+ --> Delta0 + pi+", "DD33+",
179 "D0,pi+", 4.495854e-01*8./15. );
180 //------------------ N,rho -------------
181 makeStaticData()->AddDecay("DD33+ --> p + rho0", "DD33+",
182 "p,rho0", 0.45*2./3. ); //PDG - {0.3-0.55}
183 makeStaticData()->AddDecay("DD33+ --> n + rho+", "DD33+",
184 "n,rho+", 0.45/3. );
185 //------------------ p,gamma -------------
186 makeStaticData()->AddDecay("DD33+ --> p + g", "DD33+",
187 "p,g", 0.002 );
188 //0.002/137 = 1.46e-5 left for Dalitz Decay
189
190 //============================= D(1700)++ ==================================
191 makeStaticData()->AddParticle(85,"DD33++", 1.7); //PID, name, mass
192 makeStaticData()->AddAlias("DD33++","Delta(1700)++");
193 makeStaticData()->SetParticleTotalWidth("DD33++", 0.3);
194 makeStaticData()->SetParticleBaryon("DD33++", 1);
195 makeStaticData()->SetParticleSpin("DD33++", 3);
196 makeStaticData()->SetParticleCharge("DD33++", 1);
197 makeStaticData()->SetParticleIsospin("DD33++", 3);
198 makeStaticData()->SetParticleParity("DD33++", -1);
199 //-------------------- N,pi ---------------
200 makeStaticData()->AddDecay("DD33++ --> p + pi+", "DD33++",
201 "p,pi+", 0.15 ); //PDG - {0.1-0.2}
202 //------------------ D1232,pi -------------
203 makeStaticData()->AddDecay("DD33++ --> Delta++ + pi0", "DD33++",
204 "D++,pi0", 4.495854e-01*3./5. );//PDG - {0.3-0.6}
205 makeStaticData()->AddDecay("DD33++ --> Delta+ + pi+", "DD33++",
206 "D+,pi+", 4.495854e-01*2./5. );
207 //------------------ N,rho -------------
208 makeStaticData()->AddDecay("DD33++ --> p + rho+", "DD33++",
209 "p,rho+", 0.45 ); //PDG - {0.3-0.55}
210 //0.002/137 = 1.46e-5 left for Dalitz Decay
211
212 //=========================================================================
213 //=========================================================================
214 //=========================================================================
215
216 //============================= D(1905)- ==================================
217 makeStaticData()->AddParticle(86,"DF35-", 1.89); //PID, name, mass
218 makeStaticData()->AddAlias("DF35-","Delta(1905)+");
219 makeStaticData()->SetParticleTotalWidth("DF35-", 0.33);
220 makeStaticData()->SetParticleBaryon("DF35-", 1);
221 makeStaticData()->SetParticleSpin("DF35-", 5);
222 makeStaticData()->SetParticleCharge("DF35-", -1);
223 makeStaticData()->SetParticleIsospin("DF35-", 3);
224 makeStaticData()->SetParticleParity("DF35-", 1);
225 //-------------------- N,pi ---------------
226 makeStaticData()->AddDecay("DF35- --> n + pi-", "DF35-",
227 "n,pi-", 0.12 ); //PDG - {0.09-0.15}
228 //------------------ D1232,pi -------------
229 makeStaticData()->AddDecay("DF35- --> Delta0 + pi-", "DF35-",
230 "D0,pi-", 1.479854e-01*2./5. );//PDG - {0.3-0.6}
231 makeStaticData()->AddDecay("DF35- --> Delta- + pi0", "DF35-",
232 "D-,pi0", 1.479854e-01*3./5. );
233 //------------------ N,rho -------------
234 makeStaticData()->AddDecay("DF35- --> n + rho-", "DF35-",
235 "n,rho-", 0.73 ); //PDG - {0.3-0.55}
236
237 //============================= D(1905)0 ==================================
238 makeStaticData()->AddParticle(87,"DF350", 1.89); //PID, name, mass
239 makeStaticData()->AddAlias("DF350","Delta(1905)+");
240 makeStaticData()->SetParticleTotalWidth("DF350", 0.33);
241 makeStaticData()->SetParticleBaryon("DF350", 1);
242 makeStaticData()->SetParticleSpin("DF350", 5);
243 makeStaticData()->SetParticleCharge("DF350", 0);
244 makeStaticData()->SetParticleIsospin("DF350", 3);
245 makeStaticData()->SetParticleParity("DF350", 1);
246 //-------------------- N,pi ---------------
247 makeStaticData()->AddDecay("DF350 --> p + pi-", "DF350",
248 "p,pi-", 0.12/3. ); //PDG - {0.09-0.15}
249 makeStaticData()->AddDecay("DF350 --> n + pi0", "DF350",
250 "n,pi0", 0.12*2./3. );
251 //------------------ D1232,pi -------------
252 makeStaticData()->AddDecay("DF350 --> Delta+ + pi-", "DF350",
253 "D+,pi-", 1.479854e-01*8./15. );//PDG - {0.3-0.6}
254 makeStaticData()->AddDecay("DF350 --> Delta0 + pi0", "DF350",
255 "D0,pi0", 1.479854e-01/15. );
256 makeStaticData()->AddDecay("DF350 --> Delta- + pi+", "DF350",
257 "D-,pi+", 1.479854e-01*2./5. );
258 //"D0,pi+", 0.5897*8./15. );
259 //------------------ N,rho -------------
260 makeStaticData()->AddDecay("DF350 --> n + rho0", "DF350",
261 "n,rho0", 0.73*2./3. ); //PDG - {0.3-0.55}
262 makeStaticData()->AddDecay("DF350 --> p + rho-", "DF350",
263 "p,rho-", 0.73/3. );
264 //------------------ p,gamma -------------
265 makeStaticData()->AddDecay("DF350 --> n + g", "DF350",
266 "n,g", 0.002 );
267
268
269 //============================= D(1905)+ ==================================
270 makeStaticData()->AddParticle(88,"DF35+", 1.89); //PID, name, mass
271 makeStaticData()->AddAlias("DF35+","Delta(1905)+");
272 makeStaticData()->SetParticleTotalWidth("DF35+", 0.33);
273 makeStaticData()->SetParticleBaryon("DF35+", 1);
274 makeStaticData()->SetParticleSpin("DF35+", 5);
275 makeStaticData()->SetParticleCharge("DF35+", 1);
276 makeStaticData()->SetParticleIsospin("DF35+", 3);
277 makeStaticData()->SetParticleParity("DF35+", 1);
278 //-------------------- N,pi ---------------
279 makeStaticData()->AddDecay("DF35+ --> p + pi0", "DF35+",
280 "p,pi0", 0.12*2./3. ); //PDG - {0.09-0.15}
281 makeStaticData()->AddDecay("DF35+ --> n + pi+", "DF35+",
282 "n,pi+", 0.12/3. );
283 //------------------ D1232,pi -------------
284 makeStaticData()->AddDecay("DF35+ --> Delta++ + pi-", "DF35+",
285 "D++,pi-", 1.479854e-01*2./5. );//PDG - {<25%}
286 makeStaticData()->AddDecay("DF35+ --> Delta+ + pi0", "DF35+",
287 "D+,pi0", 1.479854e-01/15. );
288 makeStaticData()->AddDecay("DF35+ --> Delta0 + pi+", "DF35+",
289 "D0,pi+", 1.479854e-01*8./15. );
290 //------------------ N,rho -------------
291 makeStaticData()->AddDecay("DF35+ --> p + rho0", "DF35+",
292 "p,rho0", 0.73*2./3. ); //PDG - {>60%}
293 makeStaticData()->AddDecay("DF35+ --> n + rho+", "DF35+",
294 "n,rho+", 0.73/3. );
295 //------------------ p,gamma -------------
296 makeStaticData()->AddDecay("DF35+ --> p + g", "DF35+",
297 "p,g", 0.002 );
298 //0.002/137 = 1.46e-5 left for Dalitz Decay
299
300 //============================= D(1905)++ ==================================
301 makeStaticData()->AddParticle(89,"DF35++", 1.89); //PID, name, mass
302 makeStaticData()->AddAlias("DF35++","Delta(1905)++");
303 makeStaticData()->SetParticleTotalWidth("DF35++", 0.33);
304 makeStaticData()->SetParticleBaryon("DF35++", 1);
305 makeStaticData()->SetParticleSpin("DF35++", 5);
306 makeStaticData()->SetParticleCharge("DF35++", 1);
307 makeStaticData()->SetParticleIsospin("DF35++", 3);
308 makeStaticData()->SetParticleParity("DF35++", 1);
309 //-------------------- N,pi ---------------
310 makeStaticData()->AddDecay("DF35++ --> p + pi+", "DF35++",
311 "p,pi+", 0.12 ); //PDG - {0.09-0.15}
312 //------------------ D1232,pi -------------
313 makeStaticData()->AddDecay("DF35++ --> Delta++ + pi0", "DF35++",
314 "D++,pi0", 1.479854e-01*3./5. );//PDG - {0.3-0.6}
315 makeStaticData()->AddDecay("DF35++ --> Delta+ + pi+", "DF35++",
316 "D+,pi+", 1.479854e-01*2./5. );
317 //------------------ N,rho -------------
318 makeStaticData()->AddDecay("DF35++ --> p + rho+", "DF35++",
319 "p,rho+", 0.73 ); //PDG - {0.3-0.55}
320 //0.002/137 = 1.46e-5 left for Dalitz Decay
321 return kTRUE;
322 }
323 }
324
325 if (strcmp (command,"init") == 0) {
326 if (!is_initialized) {
327 is_initialized = 1;
328
329 makeDataBase()->MakeParamInt("pdg", "PDG code");
330
331 //this arry was copied from UniGen (pluto_pdg.dat)
332
333 Int_t pdg[70] = {0,22,
334 -11,
335 11,
336 12,
337 -13,
338 13,
339 111,
340 211,
341 -211,
342 130,
343 321,
344 -321,
345 2112,
346 2212,
347 -2212,
348 310,
349 221,
350 3122,
351 3222,
352 3212,
353 3112,
354 3322,
355 3312,
356 3334,
357 -2112,
358 -3122,
359 -3112,
360 -3212,
361 -3222,
362 -3322,
363 -3312,
364 -3334 ,
365 0,
366 2114,
367 2224,
368 2214,
369 1114,
370 0,
371 0,
372 0,
373 113,
374 213,
375 -213,
376 0,
377 0,
378 0,
379 0,
380 0,
381 0,
382 0,
383 0,
384 223,
385 331,
386 0,
387 333,
388 0,
389 0,
390 0,
391 0,
392 0,
393 0,
394 0,
395 0,
396 0,
397 0,
398 0,
399 443,
400 100443,
401 0};
402
403 for (int i=0; i<70; i++) { //loop over known particles
404
405 int pkey = makeStaticData()->GetParticleKey(i);
406
407 if (pkey > 0) {
408 if (!makeDataBase()->SetParamInt (pkey, "pdg", new Int_t(pdg[i])))
409 return kFALSE;
410// else
411// cout << pkey << ":" << pdg[i] << endl;
412 }
413
414 }
415 }
416 return kTRUE;
417 }
418
419
420 return kFALSE;
421}
422
423
424
426
427
428
429
ClassImp(PBeamLineSimulation) PBeamLineSimulation
PDataBase * makeDataBase()
PStaticData * makeStaticData()
Int_t MakeParamInt(const char *paramname, const char *descr)
Bool_t Activate(void)
Definition PPDGPlugin.cc:17
Bool_t ExecCommand(const char *command, Double_t value)
Definition PPDGPlugin.cc:25
PPDGPlugin(const Char_t *id, const Char_t *de)
Definition PPDGPlugin.cc:11
int AddDecay(int didx, const char *name, const char *parent, const char *daughters, double br)
void SetParticleIsospin(const char *id, Int_t isospin)
void SetParticleSpin(const char *id, Int_t spin)
void SetParticleTotalWidth(Int_t id, Float_t wid)
void SetParticleCharge(const char *id, Int_t charge)
int GetParticleKey(const int &id)
void SetParticleBaryon(const char *id, Int_t num=1)
void SetParticleParity(const char *id, Int_t parity)
int AddParticle(int pid, const char *name, double mass)
int AddAlias(const char *old_name, const char *new_name)
PPDGPlugin * pdg