Pluto v6.3.0
Loading...
Searching...
No Matches
PStrangenessPlugin.cc
Go to the documentation of this file.
1
2//Plugin to add the strangeness particles
3//see doc/particle_list.txt
4//
5//
6//This plugin is automatically enabled. If you don't like it, call
7//makeDistributionManager()->Disable("strangeness");
8//in the very beginning of your macro
9//
11
12#include "PStrangenessPlugin.h"
13
15#include "PResonanceDalitz.h"
16
17
18Bool_t PStrangenessPlugin::hyperon_hadron_decays{kTRUE};
19Bool_t PStrangenessPlugin::hyperon_photon_decays{kTRUE};
20Bool_t PStrangenessPlugin::hyperon_dalitz_decays{kTRUE};
21Bool_t PStrangenessPlugin::hyperon_experimental_decays{kFALSE};
22
24{
25 fprintf(stderr, "Strangeness plugin - flags status:\n"
26 "- Hadron: %d\n"
27 "- Photon: %d\n"
28 "- Dalitz: %d\n"
29 "- Experimental: %d\n",
30 hyperon_hadron_decays, hyperon_photon_decays, hyperon_dalitz_decays, hyperon_experimental_decays);
31}
32
33PStrangenessPlugin::PStrangenessPlugin(const Char_t *id, const Char_t *de): PDistributionCollection(id, de),
34 is_initialized(0) {
35 // RequiresPlugin("elementary");
36}
37
39 return kTRUE;
40}
41
44
45
46Bool_t PStrangenessPlugin::ExecCommand(const char *command, Double_t) {
47
48 if (strcmp (command,"init") == 0) {
49 if (!is_initialized) {
50 is_initialized = 1;
51
52 Double_t *system_alloc_verbosity = makeStaticData()->GetBatchValue("_system_alloc_verbosity");
53 Double_t old = (*system_alloc_verbosity);
54 (*system_alloc_verbosity) = 0;
55
56 makeDistributionManager()->SetGroup("dalitz_zetenyi_wolf");
57
58 if (makeStaticData()->AddParticle(70, "Sigma13850", 1.3837) > 0) {
59 makeStaticData()->AddAlias("Sigma13850", "Sigma(1385)0");
60
61 makeStaticData()->SetParticleTotalWidth("Sigma13850", 0.0365);
62 makeStaticData()->SetParticleBaryon("Sigma13850", 1);
63 makeStaticData()->SetParticleLMass("Sigma13850", 1.2);
64 makeStaticData()->SetParticleSpin("Sigma13850", 3);
65 makeStaticData()->SetParticleParity("Sigma13850", 1);
66
67 if (hyperon_hadron_decays) {
68 makeStaticData()->AddDecay("Sigma(1385)0 --> Lambda + pi0", "Sigma13850", "Lambda,pi0", 0.87000);
69 makeStaticData()->AddDecay("Sigma(1385)0 --> Lambda + g", "Sigma13850", "Lambda,g", 0.01300 * (1. - 1./137.));
70 makeStaticData()->AddDecay("Sigma(1385)0 --> Sigma+ + pi-", "Sigma13850", "Sigma+,pi-", 0.117 / 3);
71 makeStaticData()->AddDecay("Sigma(1385)0 --> Sigma- + pi+", "Sigma13850", "Sigma-,pi+", 0.117 / 3);
72 makeStaticData()->AddDecay("Sigma(1385)0 --> Sigma0 + pi0", "Sigma13850", "Sigma0,pi0", 0.117 / 3);
73 }
74
75 if (hyperon_dalitz_decays) {
76 makeStaticData()->AddDecay("Sigma(1385)0 --> Lambda + dilepton", "Sigma13850", "Lambda,dilepton", 0.013 / 137.);
77 PResonanceDalitz * dalitz = new PResonanceDalitz("Sigma13850_dalitz@Sigma13850_to_Lambda_dilepton", "dgdm from Zetenyi/Wolf", -1);
78 dalitz->setGm(0.719);
80 }
81 } else {
82 Error("ExecCommand", "PIDs blocked, plugin disabled");
83 return kFALSE;
84 }
85
86
87 if (makeStaticData()->AddParticle(71, "Sigma1385+", 1.3828) > 0) {
88 makeStaticData()->AddAlias("Sigma1385+", "Sigma(1385)+");
89
90 makeStaticData()->SetParticleTotalWidth("Sigma1385+", 0.0358);
91 makeStaticData()->SetParticleBaryon("Sigma1385+", 1);
92 makeStaticData()->SetParticleLMass("Sigma1385+", 1.2);
93
94 if (hyperon_hadron_decays) {
95 makeStaticData()->AddDecay("Sigma(1385)+ --> Lambda + pi+", "Sigma1385+", "Lambda,pi+", 0.8815);
96 makeStaticData()->AddDecay("Sigma(1385)+ --> Sigma+ + pi0", "Sigma1385+", "Sigma+,pi0", 0.05925);
97 makeStaticData()->AddDecay("Sigma(1385)+ --> Sigma0 + pi+", "Sigma1385+", "Sigma0,pi+", 0.05925);
98 }
99 } else {
100 Error("ExecCommand", "PIDs blocked, plugin disabled");
101 return kFALSE;
102 }
103
104
105 if (makeStaticData()->AddParticle(72, "Sigma1385-", 1.3872) > 0) {
106 makeStaticData()->AddAlias("Sigma1385-", "Sigma(1385)-");
107
108 makeStaticData()->SetParticleTotalWidth("Sigma1385-", 0.0394);
109 makeStaticData()->SetParticleBaryon("Sigma1385-", 1);
110 makeStaticData()->SetParticleLMass("Sigma1385-", 1.2);
111
112 if (hyperon_hadron_decays) {
113 makeStaticData()->AddDecay("Sigma(1385)- --> Lambda + pi-", "Sigma1385-", "Lambda,pi-", 0.8815 );
114 makeStaticData()->AddDecay("Sigma(1385)- --> Sigma- + pi0", "Sigma1385-", "Sigma-,pi0", 0.05925);
115 makeStaticData()->AddDecay("Sigma(1385)- --> Sigma0 + pi-", "Sigma1385-", "Sigma0,pi-", 0.05925);
116 }
117 } else {
118 Error("ExecCommand", "PIDs blocked, plugin disabled");
119 return kFALSE;
120 }
121
122
123 if (makeStaticData()->AddParticle(73, "Lambda1405", 1.406) > 0) {
124 makeStaticData()->AddAlias("Lambda1405", "Lambda(1405)");
125
126 makeStaticData()->SetParticleTotalWidth("Lambda1405", 0.05);
127 makeStaticData()->SetParticleBaryon("Lambda1405", 1);
128 makeStaticData()->SetParticleSpin("Lambda1405", 1);
129 makeStaticData()->SetParticleParity("Lambda1405", -1);
130
131 if (hyperon_hadron_decays) {
132 makeStaticData()->AddDecay("Lambda(1405) --> Sigma+ + pi-", "Lambda1405", "Sigma+,pi-", 1. / 3);
133 makeStaticData()->AddDecay("Lambda(1405) --> Sigma- + pi+", "Lambda1405", "Sigma-,pi+", 1. / 3);
134 makeStaticData()->AddDecay("Lambda(1405) --> Sigma0 + pi0", "Lambda1405", "Sigma0,pi0", 1. / 3);
135 }
136
137 if (hyperon_photon_decays) {
138 makeStaticData()->AddDecay("Lambda(1405) --> Lambda + gamma", "Lambda1405", "Lambda,g", 0.0085);
139 makeStaticData()->AddDecay("Lambda(1405) --> Sigma(1385)0 + gamma", "Lambda1405", "Sigma13850,g", 0.0085);
140 }
141
142 if (hyperon_dalitz_decays) {
143 makeStaticData()->AddDecay("Lambda(1405) --> Lambda + dilepton", "Lambda1405", "Lambda,dilepton", 0.0085 / 137.);
144
145 PResonanceDalitz * dalitz = new PResonanceDalitz("Lambda1405_dalitz@Lambda1405_to_Lambda_dilepton", "dgdm from Zetenyi/Wolf", -1);
146 dalitz->setGm(0.719);
148 }
149 } else {
150 Error("ExecCommand", "PIDs blocked, plugin disabled");
151 return kFALSE;
152 }
153
154
155 if (makeStaticData()->AddParticle(74,"Lambda1520", 1.5195) > 0) {
156 makeStaticData()->AddAlias("Lambda1520","Lambda(1520)");
157
158 makeStaticData()->SetParticleTotalWidth("Lambda1520", 0.0156);
159 makeStaticData()->SetParticleBaryon("Lambda1520", 1);
160 makeStaticData()->SetParticleSpin("Lambda1520", 3);
161 makeStaticData()->SetParticleParity("Lambda1520", 1);
162
163 if (hyperon_hadron_decays) {
164 makeStaticData()->AddDecay("Lambda(1520) --> n + K0S", "Lambda1520", "n,K0S", 0.45 / 3); // N + /K from PDG
165 makeStaticData()->AddDecay("Lambda(1520) --> n + K0L", "Lambda1520", "n,K0L", 0.45 / 3); // N + /K from PDG
166 makeStaticData()->AddDecay("Lambda(1520) --> p + K-", "Lambda1520", "p,K-", 0.45 / 3); // N + /K from PDG
167 makeStaticData()->AddDecay("Lambda(1520) --> Lambda + pi0 + pi0", "Lambda1520", "Lambda,pi0,pi0", 0.2 / 3); // 10% * 2/3
168 makeStaticData()->AddDecay("Lambda(1520) --> Lambda + pi+ + pi-", "Lambda1520", "Lambda,pi+,pi-", 0.1 / 3); // 10% * 1/3 , old BR .014638
169 makeStaticData()->AddDecay("Lambda(1520) --> Sigma0 + pi0", "Lambda1520", "Sigma0,pi0", 0.139096); // 42% / 3
170 makeStaticData()->AddDecay("Lambda(1520) --> Sigma+ + pi-", "Lambda1520", "Sigma+,pi-", 0.139096); // 42% / 3
171 makeStaticData()->AddDecay("Lambda(1520) --> Sigma- + pi+", "Lambda1520", "Sigma-,pi+", 0.139096); // 42% / 3
172 makeStaticData()->AddDecay("Lambda(1520) --> Sigma0 + pi0 + pi0", "Lambda1520", "Sigma0,pi0,pi0", 0.009/5.0); //
173 makeStaticData()->AddDecay("Lambda(1520) --> Sigma0 + pi+ + pi-", "Lambda1520", "Sigma0,pi+,pi-", 0.009/5.0); //
174 }
175
176 if (hyperon_photon_decays) {
177 makeStaticData()->AddDecay("Lambda(1520) --> Lambda + g", "Lambda1520", "Lambda,g", 0.0085);
178 }
179
180 if (hyperon_dalitz_decays) {
181 makeStaticData()->AddDecay("Lambda(1520) --> Lambda + dilepton", "Lambda1520", "Lambda,dilepton", .007948/137.);
182
183 PResonanceDalitz * dalitz = new PResonanceDalitz("Lambda1520_dalitz@Lambda1520_to_Lambda_dilepton", "dgdm from Zetenyi/Wolf", -1);
184 dalitz->setGm(0.719);
186 }
187 } else {
188 Error("ExecCommand", "PIDs blocked, plugin disabled");
189 return kFALSE;
190 }
191
192
193 if (makeStaticData()->AddParticle(75,"Xi1530-", 1.5352) > 0) {
194 makeStaticData()->AddAlias("Xi1530-","Xi(1530)-");
195
196 makeStaticData()->SetParticleTotalWidth("Xi1530-", 0.091);
197 makeStaticData()->SetParticleBaryon("Xi1530-", 1);
198 makeStaticData()->SetParticleSpin("Xi1530-", 2);
199 makeStaticData()->SetParticleParity("Xi1530-", 1);
200
201 if (hyperon_hadron_decays) {
202 makeStaticData()->AddDecay("Xi(1530)- --> Xi0 + pi-", "Xi1530-", "Xi0,pi-", 1. / 2.0);
203 makeStaticData()->AddDecay("Xi(1530)- --> Xi- + pi0", "Xi1530-", "Xi-,pi0", 1. / 2.0);
204 }
205
206 if (hyperon_photon_decays) {
207 makeStaticData()->AddDecay("Xi(1530)- --> Xi- + g", "Xi1530-", "Xi-,g", .037);
208 }
209
210 if (hyperon_dalitz_decays) {
211 makeStaticData()->AddDecay("Xi(1530)- --> Xi- + dilepton", "Xi1530-", "Xi-,dilepton", .037/137.);
212
213 PResonanceDalitz * dalitz = new PResonanceDalitz("Xi1530-_dalitz@Xi1530-_to_Xi-_dilepton", "dgdm from Zetenyi/Wolf", -1);
214 dalitz->setGm(0.719);
216 }
217 } else {
218 Error("ExecCommand", "PIDs blocked, plugin disabled");
219 return kFALSE;
220 }
221
222
223 if (makeStaticData()->AddParticle(76,"Xi15300", 1.53178) > 0) {
224 makeStaticData()->AddAlias("Xi15300","Xi(1530)0");
225
226 makeStaticData()->SetParticleTotalWidth("Xi15300", 0.099);
227 makeStaticData()->SetParticleBaryon("Xi15300", 1);
228 makeStaticData()->SetParticleSpin("Xi15300", 2);
229 makeStaticData()->SetParticleParity("Xi15300", 1);
230
231 if (hyperon_hadron_decays) {
232 makeStaticData()->AddDecay("Xi(1530)0 --> Xi0 + pi0", "Xi15300", "Xi0,pi0", 1. / 2.0);
233 makeStaticData()->AddDecay("Xi(1530)0 --> Xi- + pi+", "Xi15300", "Xi-,pi+", 1. / 2.0);
234 }
235
236 if (hyperon_photon_decays) {
237 makeStaticData()->AddDecay("Xi(1530)0 --> Xi0 + g", "Xi15300", "Xi0,g", .037);
238 }
239
240 if (hyperon_dalitz_decays) {
241 makeStaticData()->AddDecay("Xi(1530)0 --> Xi0 + dilepton", "Xi15300", "Xi0,dilepton", .037/137.);
242
243 PResonanceDalitz * dalitz = new PResonanceDalitz("Xi15300_dalitz@Xi15300_to_Xi0_dilepton", "dgdm from Zetenyi/Wolf", -1);
244 dalitz->setGm(0.719);
246 }
247 } else {
248 Error("ExecCommand", "PIDs blocked, plugin disabled");
249 return kFALSE;
250 }
251
252
253 if (makeStaticData()->AddParticle(79, "Delta2050++", 2.05) > 0) {
254 makeStaticData()->AddAlias("Delta2050++", "Delta(2050)++");
255
256 makeStaticData()->SetParticleTotalWidth("Delta2050++", 0.25);
257 makeStaticData()->SetParticleBaryon("Delta2050++", 1);
258
259 if (hyperon_hadron_decays) {
260 makeStaticData()->AddDecay("Delta(2050)++ --> Sigma(1385)+ + K+", "Delta2050++", "Sigma1385+,K+", 1.0);
261 }
262 } else {
263 Error("ExecCommand", "PIDs blocked, plugin disabled");
264 return kFALSE;
265 }
266
267 if (makeStaticData()->AddParticle(100, "KStar0", 0.89555) > 0) {
268 makeStaticData()->AddAlias("KStar0", "K*(892)0");
269
270 makeStaticData()->SetParticleTotalWidth("KStar0", 0.0473);
271 makeStaticData()->SetParticleBaryon("KStar0", 0);
272 makeStaticData()->SetParticleMeson("KStar0", 1);
273
274 makeStaticData()->AddDecay("K*(892)0 --> K+ + pi-", "KStar0", "K+,pi-", 2./3.);
275 makeStaticData()->AddDecay("K*(892)0 --> K0S + pi0", "KStar0", "K0S,pi0", 1./3.);
276 } else {
277 Error("ExecCommand", "PIDs blocked, plugin disabled");
278 return kFALSE;
279 }
280
281 if (makeStaticData()->AddParticle(101, "KStar+", 0.89176) > 0) {
282 makeStaticData()->AddAlias("KStar+", "K*(892)+");
283
284 makeStaticData()->SetParticleTotalWidth("KStar+", 0.0503);
285 makeStaticData()->SetParticleBaryon("KStar+", 0);
286 makeStaticData()->SetParticleMeson("KStar+", 1);
287
288 makeStaticData()->AddDecay("K*(892)+ --> K0S + pi+", "KStar+", "K0S,pi+", 2./3.);
289 makeStaticData()->AddDecay("K*(892)+ --> K+ + pi0", "KStar+", "K+,pi0", 1./3.);
290 } else {
291 Error("ExecCommand", "PIDs blocked, plugin disabled");
292 return kFALSE;
293 }
294
295 if (makeStaticData()->AddParticle(102, "KStar-", 0.89176) > 0) {
296 makeStaticData()->AddAlias("KStar-", "K*(892)-");
297
298 makeStaticData()->SetParticleTotalWidth("KStar-", 0.0503);
299 makeStaticData()->SetParticleBaryon("KStar-", 0);
300 makeStaticData()->SetParticleMeson("KStar-", 1);
301
302 makeStaticData()->AddDecay("K*(892)- --> K0S + pi-", "KStar-", "K0S,pi-", 2./3.);
303 makeStaticData()->AddDecay("K*(892)- --> K- + pi0", "KStar-", "K-,pi0", 1./3.);
304 } else {
305 Error("ExecCommand", "PIDs blocked, plugin disabled");
306 return kFALSE;
307 }
308
309 if (makeStaticData()->AddParticle(103, "anti_KStar0", 0.89555) > 0) {
310 makeStaticData()->AddAlias("anti_KStar0", "anti_K*(892)0");
311
312 makeStaticData()->SetParticleTotalWidth("anti_KStar0", 0.0473);
313 makeStaticData()->SetParticleBaryon("anti_KStar0", 0);
314 makeStaticData()->SetParticleMeson("anti_KStar0", 1);
315
316 makeStaticData()->AddDecay("anti_K*(892)0 --> K- + pi+", "anti_KStar0", "K-,pi+", 2./3.);
317 makeStaticData()->AddDecay("anti_K*(892)0 --> K0S + pi0", "anti_KStar0", "K0S,pi0", 1./3.);
318 } else {
319 Error("ExecCommand", "PIDs blocked, plugin disabled");
320 return kFALSE;
321 }
322
323 (*system_alloc_verbosity) = old;
324 }
325 return kTRUE;
326 }
327
328 return kFALSE;
329}
330
331
333
ClassImp(PBeamLineSimulation) PBeamLineSimulation
PDistributionManager * makeDistributionManager()
PStaticData * makeStaticData()
void SetGroup(const Char_t *id)
int Add(PDistribution *dist)
int AddDecay(int didx, const char *name, const char *parent, const char *daughters, double br)
void SetParticleSpin(const char *id, Int_t spin)
void SetParticleLMass(const int &id, const double v)
void SetParticleMeson(const char *id, Int_t num=1)
void SetParticleTotalWidth(Int_t id, Float_t wid)
Double_t * GetBatchValue(const char *name, Int_t make_val=1)
void SetParticleBaryon(const char *id, Int_t num=1)
void SetParticleParity(const char *id, Int_t parity)
int AddAlias(const char *old_name, const char *new_name)
PStrangenessPlugin(const Char_t *id, const Char_t *de)
Bool_t ExecCommand(const char *command, Double_t value)
embedded AddParticle(e_plus)
POmega3Pi * dalitz