Skip to content

Commit 4f5e4fb

Browse files
authored
Updating hypernuclei information in O2 Databases (#13750)
Adding correct masses and inserting Xi-bound states Adding Xi-bound states, fixing masses, lifetimes and decay channels. Removing excited states for A=4 hypernuclei (see latest AliRoot AliMC.cxx).
1 parent 4b86cfc commit 4f5e4fb

File tree

2 files changed

+165
-62
lines changed

2 files changed

+165
-62
lines changed

DataFormats/simulation/include/SimulationDataFormat/O2DatabasePDG.h

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -235,62 +235,38 @@ inline void O2DatabasePDG::addALICEParticles(TDatabasePDG* db)
235235
//Hyper nuclei and exotica
236236
ionCode = 1010010030;
237237
if (!db->GetParticle(ionCode)) {
238-
db->AddParticle("HyperTriton", "HyperTriton", 2.99131, kFALSE,
238+
db->AddParticle("HyperTriton", "HyperTriton", 2.991134, kFALSE,
239239
2.5e-15, 3, "Ion", ionCode);
240240
}
241241

242242
ionCode = -1010010030;
243243
if (!db->GetParticle(ionCode)) {
244-
db->AddParticle("AntiHyperTriton", "AntiHyperTriton", 2.99131, kFALSE,
244+
db->AddParticle("AntiHyperTriton", "AntiHyperTriton", 2.991134, kFALSE,
245245
2.5e-15, 3, "Ion", ionCode);
246246
}
247247

248248
//hyper hydrogen 4 ground state
249249
ionCode = 1010010040;
250250
if (!db->GetParticle(ionCode)) {
251-
db->AddParticle("Hyperhydrog4", "Hyperhydrog4", 3.9226, kFALSE,
251+
db->AddParticle("Hyperhydrog4", "Hyperhydrog4", 3.922434, kFALSE,
252252
2.5e-15, 3, "Ion", ionCode);
253253
}
254254
//anti hyper hydrogen 4 ground state
255255
ionCode = -1010010040;
256256
if (!db->GetParticle(ionCode)) {
257-
db->AddParticle("AntiHyperhydrog4", "AntiHyperhydrog4", 3.9226, kFALSE,
258-
2.5e-15, 3, "Ion", ionCode);
259-
}
260-
//hyper hydrogen 4 excited state
261-
ionCode = 1010010041;
262-
if (!db->GetParticle(ionCode)) {
263-
db->AddParticle("Hyperhydrog4*", "Hyperhydrog4*", 3.9237, kFALSE,
264-
2.5e-15, 3, "Ion", ionCode);
265-
}
266-
//anti hyper hydrogen 4 excited state
267-
ionCode = -1010010041;
268-
if (!db->GetParticle(ionCode)) {
269-
db->AddParticle("AntiHyperhydrog4*", "AntiHyperhydrog4*", 3.9237, kFALSE,
257+
db->AddParticle("AntiHyperhydrog4", "AntiHyperhydrog4", 3.922434, kFALSE,
270258
2.5e-15, 3, "Ion", ionCode);
271259
}
272260
//hyper helium 4 ground state
273261
ionCode = 1010020040;
274262
if (!db->GetParticle(ionCode)) {
275-
db->AddParticle("Hyperhelium4", "Hyperhelium4", 3.9217, kFALSE,
263+
db->AddParticle("Hyperhelium4", "Hyperhelium4", 3.921728, kFALSE,
276264
2.5e-15, 6, "Ion", ionCode);
277265
}
278266
//anti hyper helium 4 ground state
279267
ionCode = -1010020040;
280268
if (!db->GetParticle(ionCode)) {
281-
db->AddParticle("AntiHyperhelium4", "AntiHyperhelium4", 3.9217, kFALSE,
282-
2.5e-15, 6, "Ion", ionCode);
283-
}
284-
//hyper helium 4 excited state
285-
ionCode = 1010020041;
286-
if (!db->GetParticle(ionCode)) {
287-
db->AddParticle("Hyperhelium4*", "Hyperhelium4*", 3.9231, kFALSE,
288-
2.5e-15, 6, "Ion", ionCode);
289-
}
290-
//anti hyper helium 4 excited state
291-
ionCode = -1010020041;
292-
if (!db->GetParticle(ionCode)) {
293-
db->AddParticle("AntiHyperhelium4*", "AntiHyperhelium4*", 3.9231, kFALSE,
269+
db->AddParticle("AntiHyperhelium4", "AntiHyperhelium4", 3.921728, kFALSE,
294270
2.5e-15, 6, "Ion", ionCode);
295271
}
296272

@@ -309,13 +285,13 @@ inline void O2DatabasePDG::addALICEParticles(TDatabasePDG* db)
309285

310286
ionCode = 1010020050;
311287
if (!db->GetParticle(ionCode)) {
312-
db->AddParticle("Hyperhelium5", "Hyperhelium5", 4.841, kFALSE,
288+
db->AddParticle("Hyperhelium5", "Hyperhelium5", 4.839961, kFALSE,
313289
2.5e-15, 6, "Ion", ionCode);
314290
}
315291

316292
ionCode = -1010020050;
317293
if (!db->GetParticle(ionCode)) {
318-
db->AddParticle("AntiHyperhelium5", "AntiHyperhelium5", 4.841, kFALSE,
294+
db->AddParticle("AntiHyperhelium5", "AntiHyperhelium5", 4.839961, kFALSE,
319295
2.5e-15, 6, "Ion", ionCode);
320296
}
321297

@@ -331,6 +307,20 @@ inline void O2DatabasePDG::addALICEParticles(TDatabasePDG* db)
331307
2.5e-15, 6, "Ion", ionCode);
332308
}
333309

310+
// 4-Xi-He
311+
ionCode = 1120020040;
312+
if (!db->GetParticle(ionCode)) {
313+
db->AddParticle("4XiHe", "4XiHe", 4.128, kFALSE, 4.04e-15, 3, "Ion", ionCode);
314+
db->AddAntiParticle("Anti4XiHe", -ionCode);
315+
}
316+
317+
// 4-Xi-H
318+
ionCode = 1120010040;
319+
if (!db->GetParticle(ionCode)) {
320+
db->AddParticle("4XiH", "4XiH", 4.128, kFALSE, 4.04e-15, 3, "Ion", ionCode);
321+
db->AddAntiParticle("Anti4XiH", -ionCode);
322+
}
323+
334324
// hyper helium 4 sigma
335325
ionCode = 1110020040;
336326
if (!db->GetParticle(ionCode)) {

Steer/src/O2MCApplication.cxx

Lines changed: 143 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -264,45 +264,44 @@ void addSpecialParticles()
264264
LOG(info) << "Adding custom particles to VMC";
265265

266266
//Hypertriton
267-
TVirtualMC::GetMC()->DefineParticle(1010010030, "HyperTriton", kPTHadron, 2.99131, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 3, kFALSE);
267+
TVirtualMC::GetMC()->DefineParticle(1010010030, "HyperTriton", kPTHadron, 2.991134, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 3, kFALSE);
268268
//Anti-Hypertriton
269-
TVirtualMC::GetMC()->DefineParticle(-1010010030, "AntiHyperTriton", kPTHadron, 2.99131, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 3, kFALSE);
269+
TVirtualMC::GetMC()->DefineParticle(-1010010030, "AntiHyperTriton", kPTHadron, 2.991134, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 3, kFALSE);
270270

271271
//Hyper hydrogen 4 ground state
272-
TVirtualMC::GetMC()->DefineParticle(1010010040, "Hyperhydrog4", kPTHadron, 3.9226, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
272+
TVirtualMC::GetMC()->DefineParticle(1010010040, "Hyperhydrog4", kPTHadron, 3.922434, 1.0, 2.08e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
273273
//Anti-Hyper hydrogen 4 ground state
274-
TVirtualMC::GetMC()->DefineParticle(-1010010040, "AntiHyperhydrog4", kPTHadron, 3.9226, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
275-
276-
//Hyper hydrogen 4 excited state
277-
TVirtualMC::GetMC()->DefineParticle(1010010041, "Hyperhydrog4*", kPTHadron, 3.9237, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
278-
//Anti-Hyper hydrogen 4 excited state
279-
TVirtualMC::GetMC()->DefineParticle(-1010010041, "AntiHyperhydrog4*", kPTHadron, 3.9237, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
274+
TVirtualMC::GetMC()->DefineParticle(-1010010040, "AntiHyperhydrog4", kPTHadron, 3.922434, 1.0, 2.08e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
280275

281276
//Hyper helium 4 ground state
282-
TVirtualMC::GetMC()->DefineParticle(1010020040, "Hyperhelium4", kPTHadron, 3.9217, 2.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
277+
TVirtualMC::GetMC()->DefineParticle(1010020040, "Hyperhelium4", kPTHadron, 3.921728, 2.0, 2.50e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
283278
//Anti-Hyper helium 4 ground state
284-
TVirtualMC::GetMC()->DefineParticle(-1010020040, "AntiHyperhelium4", kPTHadron, 3.9217, 2.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
285-
286-
//Hyper helium 4 excited state
287-
TVirtualMC::GetMC()->DefineParticle(1010020041, "Hyperhelium4*", kPTHadron, 3.9231, 2.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
288-
//Anti-Hyper helium 4 excited state
289-
TVirtualMC::GetMC()->DefineParticle(-1010020041, "AntiHyperhelium4*", kPTHadron, 3.9231, 2.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
279+
TVirtualMC::GetMC()->DefineParticle(-1010020040, "AntiHyperhelium4", kPTHadron, 3.921728, 2.0, 2.50e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
290280

291281
// Lithium 4 ground state
292282
TVirtualMC::GetMC()->DefineParticle(1000030040, "Lithium4", kPTHadron, 3.7513, 3.0, 9.1e-23, "Ion", 0.003, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
293283
// Anti-Lithium 4 ground state
294284
TVirtualMC::GetMC()->DefineParticle(-1000030040, "AntiLithium4", kPTHadron, 3.7513, 3.0, 9.1e-23, "Ion", 0.003, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
295285

296286
//Hyper helium 5
297-
TVirtualMC::GetMC()->DefineParticle(1010020050, "Hyperhelium5", kPTHadron, 4.841, 2.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 5, kFALSE);
287+
TVirtualMC::GetMC()->DefineParticle(1010020050, "Hyperhelium5", kPTHadron, 4.839961, 2.0, 2.74e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 5, kFALSE);
298288
//Anti-Hyper helium 5
299-
TVirtualMC::GetMC()->DefineParticle(-1010020050, "AntiHyperhelium5", kPTHadron, 4.841, 2.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 5, kFALSE);
289+
TVirtualMC::GetMC()->DefineParticle(-1010020050, "AntiHyperhelium5", kPTHadron, 4.839961, 2.0, 2.74e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 5, kFALSE);
300290

301291
//Double Hyper hydrogen 4
302292
TVirtualMC::GetMC()->DefineParticle(1020010040, "DoubleHyperhydrogen4", kPTHadron, 4.106, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
303293
//Double Anti-Hyper hydrogen 4
304294
TVirtualMC::GetMC()->DefineParticle(-1020010040, "DoubleAntiHyperhydrogen4", kPTHadron, 4.106, 1.0, 2.632e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
305295

296+
// 4Xi(-)H
297+
TVirtualMC::GetMC()->DefineParticle(1120010040, "4XiH", kPTHadron, 4.128, 1.0, 1.639e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
298+
// Anti-4Xi(-)H
299+
TVirtualMC::GetMC()->DefineParticle(-1120010040, "Anti4XiH", kPTHadron, 4.128, 1.0, 1.639e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
300+
// 4Xi(-)He
301+
TVirtualMC::GetMC()->DefineParticle(1120020040, "4XiHe", kPTHadron, 4.128, 1.0, 1.639e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
302+
// Anti-4Xi(-)He
303+
TVirtualMC::GetMC()->DefineParticle(-1120020040, "Anti4XiHe", kPTHadron, 4.128, 1.0, 1.639e-10, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
304+
306305
// Hyper helium 4 sigma
307306
TVirtualMC::GetMC()->DefineParticle(1110020040, "Hyperhelium4sigma", kPTHadron, 3.995, 2.0, 8.018e-11, "Ion", 0.0, 0, 1, 0, 0, 0, 0, 0, 4, kFALSE);
308307
// Anti-Hyper helium 4 sigma
@@ -586,8 +585,6 @@ void addSpecialParticles()
586585
mode3[1][2] = -211; // negative pion
587586

588587
TVirtualMC::GetMC()->SetDecayMode(1010010040, bratio3, mode3);
589-
//Decay for the excited state (after em transition)
590-
TVirtualMC::GetMC()->SetDecayMode(1010010041, bratio3, mode3);
591588

592589
// Define the 2- and 3-body phase space decay for the Hyper Hydrogen 4
593590
Int_t amode3[6][3];
@@ -608,8 +605,6 @@ void addSpecialParticles()
608605
amode3[1][2] = 211; // positive pion
609606

610607
TVirtualMC::GetMC()->SetDecayMode(-1010010040, abratio3, amode3);
611-
//Decay for the excited state (after em transition)
612-
TVirtualMC::GetMC()->SetDecayMode(-1010010041, abratio3, amode3);
613608

614609
// Define the 3-body phase space decay for the Hyper Helium 4
615610
Int_t mode4[6][3];
@@ -621,14 +616,16 @@ void addSpecialParticles()
621616
mode4[kz][1] = 0;
622617
mode4[kz][2] = 0;
623618
}
624-
bratio4[0] = 100.;
619+
bratio4[0] = 50.;
625620
mode4[0][0] = 1000020030; // Helium3
626621
mode4[0][1] = -211; // negative pion
627622
mode4[0][2] = 2212; // proton
628623

624+
bratio4[1] = 50.;
625+
mode4[1][0] = 1000030040; // lithium-4
626+
mode4[1][1] = -211; // negative pion
627+
629628
TVirtualMC::GetMC()->SetDecayMode(1010020040, bratio4, mode4);
630-
//Decay for the excited state (after em transition)
631-
TVirtualMC::GetMC()->SetDecayMode(1010020041, bratio4, mode4);
632629

633630
// Define the 2-body phase space decay for the Anti-Hyper Helium 4
634631
Int_t amode4[6][3];
@@ -640,14 +637,16 @@ void addSpecialParticles()
640637
amode4[kz][1] = 0;
641638
amode4[kz][2] = 0;
642639
}
643-
abratio4[0] = 100.;
640+
abratio4[0] = 50.;
644641
amode4[0][0] = -1000020030; // anti-Helium 3
645642
amode4[0][1] = 211; // positive pion
646643
amode4[0][2] = -2212; // anti proton
647644

645+
abratio4[1] = 50.;
646+
amode4[1][0] = -1000030040; // antilithium-4
647+
amode4[1][1] = 211; // positive pion
648+
648649
TVirtualMC::GetMC()->SetDecayMode(-1010020040, abratio4, amode4);
649-
//Decay for the excited state (after em transition)
650-
TVirtualMC::GetMC()->SetDecayMode(-1010020041, abratio4, amode4);
651650

652651
// Define the 2-body phase space decay for the Lithium 4
653652
Int_t model4[6][3];
@@ -733,10 +732,15 @@ void addSpecialParticles()
733732
mode42[kz][1] = 0;
734733
mode42[kz][2] = 0;
735734
}
736-
bratio42[0] = 100.;
735+
bratio42[0] = 50.;
737736
mode42[0][0] = 1010020040; // Hyper-Helium4
738737
mode42[0][1] = -211; // negative pion
739738

739+
bratio42[1] = 50.;
740+
mode42[1][0] = 1010010030; // Hypertriton
741+
mode42[1][1] = 2212; // proton
742+
mode42[1][2] = -211; // negative pion
743+
740744
TVirtualMC::GetMC()->SetDecayMode(1020010040, bratio42, mode42);
741745

742746
// Define the 2-body phase space decay for the Anti Double Hyper Hydrogen 4
@@ -749,12 +753,121 @@ void addSpecialParticles()
749753
amode42[kz][1] = 0;
750754
amode42[kz][2] = 0;
751755
}
752-
abratio42[0] = 100.;
756+
abratio42[0] = 50.;
753757
amode42[0][0] = -1010020040; // anti-Hyper-Helium 4
754758
amode42[0][1] = 211; // positive pion
755759

760+
abratio42[1] = 50.;
761+
amode42[1][0] = -1010010030; // anti-Hypertriton
762+
amode42[1][1] = -2212; // antiproton
763+
amode42[1][2] = 211; // positive pion
764+
756765
TVirtualMC::GetMC()->SetDecayMode(-1020010040, abratio42, amode42);
757766

767+
// Define the decay for the 4Xi(-)He
768+
Int_t mode4XiHe[6][3];
769+
Float_t bratio4XiHe[6];
770+
771+
for (Int_t kz = 0; kz < 6; kz++) {
772+
bratio4XiHe[kz] = 0.;
773+
mode4XiHe[kz][0] = 0;
774+
mode4XiHe[kz][1] = 0;
775+
mode4XiHe[kz][2] = 0;
776+
}
777+
bratio4XiHe[0] = 33.;
778+
mode4XiHe[0][0] = 1010020040; // HyperHelium4
779+
mode4XiHe[0][1] = -211; // negative pion
780+
781+
bratio4XiHe[1] = 33.;
782+
mode4XiHe[1][0] = 3122; // lambda
783+
mode4XiHe[1][1] = 1000020030; // helium-3
784+
mode4XiHe[1][2] = -211; // negative pion
785+
786+
bratio4XiHe[2] = 33.;
787+
mode4XiHe[2][0] = 1000030040; // lithium-4
788+
mode4XiHe[2][1] = -211; // negative pion
789+
mode4XiHe[2][2] = -211; // negative pion
790+
791+
TVirtualMC::GetMC()->SetDecayMode(1120020040, bratio4XiHe, mode4XiHe);
792+
793+
// Define the decay for the Anti-4Xi(-)He
794+
Int_t amode4XiHe[6][3];
795+
Float_t abratio4XiHe[6];
796+
797+
for (Int_t kz = 0; kz < 6; kz++) {
798+
abratio4XiHe[kz] = 0.;
799+
amode4XiHe[kz][0] = 0;
800+
amode4XiHe[kz][1] = 0;
801+
amode4XiHe[kz][2] = 0;
802+
}
803+
abratio4XiHe[0] = 33.;
804+
amode4XiHe[0][0] = -1010020040; // antiHyperHelium-4
805+
amode4XiHe[0][1] = 211; // positive pion
806+
807+
abratio4XiHe[1] = 33.;
808+
amode4XiHe[1][0] = -3122; // antilambda
809+
amode4XiHe[1][1] = -1000020030; // antihelium-3
810+
amode4XiHe[1][2] = 211; // positive pion
811+
812+
abratio4XiHe[2] = 33.;
813+
amode4XiHe[2][0] = -1000030040; // antilithium-4
814+
amode4XiHe[2][1] = 211; // positive pion
815+
amode4XiHe[2][2] = 211; // positive pion
816+
817+
TVirtualMC::GetMC()->SetDecayMode(-1120020040, abratio4XiHe, amode4XiHe);
818+
819+
// Define the decay for the 4Xi(-)H
820+
Int_t mode4XiH[6][3];
821+
Float_t bratio4XiH[6];
822+
823+
for (Int_t kz = 0; kz < 6; kz++) {
824+
bratio4XiH[kz] = 0.;
825+
mode4XiH[kz][0] = 0;
826+
mode4XiH[kz][1] = 0;
827+
mode4XiH[kz][2] = 0;
828+
}
829+
bratio4XiH[0] = 33.;
830+
mode4XiH[0][0] = 1010010040; // HyperHydrogen4
831+
mode4XiH[0][1] = -211; // negative pion
832+
833+
bratio4XiH[1] = 33.;
834+
mode4XiH[1][0] = 3122; // lambda
835+
mode4XiH[1][1] = 1000010030; // triton
836+
mode4XiH[1][2] = -211; // negative pion
837+
838+
bratio4XiH[2] = 33.;
839+
mode4XiH[2][0] = 1000020040; // alpha
840+
mode4XiH[2][1] = -211; // negative pion
841+
mode4XiH[2][2] = -211; // negative pion
842+
843+
TVirtualMC::GetMC()->SetDecayMode(1120010040, bratio4XiH, mode4XiH);
844+
845+
// Define the decay for the Anti-4Xi(-)H
846+
Int_t amode4XiH[6][3];
847+
Float_t abratio4XiH[6];
848+
849+
for (Int_t kz = 0; kz < 6; kz++) {
850+
abratio4XiH[kz] = 0.;
851+
amode4XiH[kz][0] = 0;
852+
amode4XiH[kz][1] = 0;
853+
amode4XiH[kz][2] = 0;
854+
}
855+
abratio4XiH[0] = 33.;
856+
amode4XiH[0][0] = -1010010040; // antiHyperHydrogen-4
857+
amode4XiH[0][1] = 211; // positive pion
858+
859+
abratio4XiH[1] = 33.;
860+
amode4XiH[1][0] = -3122; // antilambda
861+
amode4XiH[1][1] = -1000010030; // antitriton
862+
amode4XiH[1][2] = 211; // positive pion
863+
864+
abratio4XiH[2] = 33.;
865+
amode4XiH[2][0] = -1000020040; // antialpha
866+
amode4XiH[2][1] = 211; // positive pion
867+
amode4XiH[2][2] = 211; // positive pion
868+
869+
TVirtualMC::GetMC()->SetDecayMode(-1120010040, abratio4XiH, amode4XiH);
870+
758871
// Define the 2- and 3-body phase space decay for the Hyper Helium 4 sigma
759872
Int_t mode4s[6][3];
760873
Float_t bratio4s[6];

0 commit comments

Comments
 (0)