Skip to content
Snippets Groups Projects
Commit d87d6f4b authored by Iouri Vassiliev's avatar Iouri Vassiliev
Browse files

Add Hypernuclei and Open Charm decay

parent 119d9884
No related branches found
No related tags found
No related merge requests found
...@@ -369,7 +369,7 @@ void CbmTransport::RegisterIons() ...@@ -369,7 +369,7 @@ void CbmTransport::RegisterIons()
stable = kTRUE; stable = kTRUE;
charge = 2.; charge = 2.;
pdgdb->AddParticle(name, name, mass, stable, 0., charge, "Ion", code); pdgdb->AddParticle(name, name, mass, stable, 0., charge, "Ion", code);
pdgdb->AddAntiParticle("He3-", -1 * code); pdgdb->AddAntiParticle("He4-", -1 * code);
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
...@@ -394,7 +394,7 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc) ...@@ -394,7 +394,7 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
{ {
assert(vmc); assert(vmc);
LOG(info) << GetName() << ": Set decay modes for pi0 and eta"; LOG(info) << GetName() << ": Set decay modes for pi0, eta, Hypernuclei and Open Charm";
if (fEngine == kGeant4) { if (fEngine == kGeant4) {
std::cout << std::endl << std::endl; std::cout << std::endl << std::endl;
...@@ -407,6 +407,376 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc) ...@@ -407,6 +407,376 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
std::cout << std::endl << std::endl; std::cout << std::endl << std::endl;
return; return;
} }
Double_t lifetime = 1.85e-10; // lifetime 3HL
Double_t mass = 2.99339;
Int_t PDG = 3004;
Double_t charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "H3L", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
Int_t mode[6][3];
Float_t bratio[6];
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 1000020030; //3He
mode[0][1] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 2.632e-10; // lifetime NL
mass = 2.046;
PDG = 3003;
charge = 0.;
TVirtualMC::GetMC()->DefineParticle(PDG, "LambdaN", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 1000010020; //d
mode[0][1] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 1.80e-10; // lifetime 4HL
mass = 3.92975;
PDG = 3005;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "H4L", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 1000020040; //4He
mode[0][1] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 1.50e-10; // lifetime 4HeL
mass = 3.93070;
PDG = 3006;
charge = 2.;
TVirtualMC::GetMC()->DefineParticle(PDG, "He4L", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 1000020030; //3He
mode[0][1] = 2212; //proton
mode[0][2] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 1.85e-10; // lifetime 3HL->d p pi
mass = 2.99339;
PDG = 3012;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "H3L_{dppi}", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 1000010020; //d
mode[0][1] = 2212; //proton
mode[0][2] = -211; //pi-
// mode[0][0] = 3003; //LambdaN
// mode[0][1] = 2212; //proton
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 2.632e-10; // lifetime 5HeL->4He p pi
mass = 4.8393;
PDG = 3007;
charge = 2.;
TVirtualMC::GetMC()->DefineParticle(PDG, "He5L", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 1000020040; //4He
mode[0][1] = 2212; //proton
mode[0][2] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 2.632e-10; // lifetime 4HLL_2body
mass = 4.10791;
PDG = 3008;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "H4LL_{He4Lpi-}", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 3006; //4HeL
mode[0][1] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 2.632e-10; // lifetime 4HLL_3body
mass = 4.10791;
PDG = 3009;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "H4LL_{H3Lppi-}", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 3004; //3HL
mode[0][1] = 2212; //p
mode[0][2] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 2.632e-10; // lifetime 5HLL
mass = 5.04748;
PDG = 3010;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "H5LL_{He5Lpi-}", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 3007; //5HeL
mode[0][1] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 2.632e-10; // lifetime 6HeLL
mass = 5.98575;
PDG = 3011;
charge = 2.;
TVirtualMC::GetMC()->DefineParticle(PDG, "He6LL", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 3007; //5HeL
mode[0][1] = 2212; //proton
mode[0][2] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
// charm **********************************************************************************************************************
lifetime = 4.1e-13; // lifetime D0 -> K- pi
mass = 1.86486;
PDG = 421;
charge = 0.;
TVirtualMC::GetMC()->DefineParticle(PDG, "D0", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = -321; //K-
mode[0][1] = 211; //pi+
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 4.1e-13; // lifetime D0b -> K+ pi-
mass = 1.86486;
PDG = -421;
charge = 0.;
TVirtualMC::GetMC()->DefineParticle(PDG, "D0b", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 321; //K+
mode[0][1] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 2.0e-13; // lifetime Lc -> p K- pi+
mass = 2.28646;
PDG = 4122;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "Lc", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 2212; //p
mode[0][1] = -321; //K-
mode[0][2] = 211; //pi+
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 1.04e-12; // lifetime D+ -> K- pi pi
mass = 1.86962;
PDG = 411;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "D+", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = -321; //K-
mode[0][1] = 211; //pi+
mode[0][2] = 211; //pi+
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 1.04e-12; // lifetime D- -> K pi- pi-
mass = 1.86962;
PDG = -411;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "D-", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 321; //K+
mode[0][1] = -211; //pi-
mode[0][2] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 5.0e-13; // lifetime Ds+ -> K- K+ pi+
mass = 1.96850;
PDG = 431;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "Ds+", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = -321; //K-
mode[0][1] = 321; //K+
mode[0][2] = 211; //pi+
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
lifetime = 5.0e-13; // lifetime Ds- -> K- K+ pi-
mass = 1.96850;
PDG = -431;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "Ds-", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = -321; //K-
mode[0][1] = 321; //K+
mode[0][2] = -211; //pi-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
// end charm **********************************************************************************************************************
lifetime = 1.55e-22; // lifetime 5HeD->4He K pi- pi-
mass = 5.5809994;
PDG = 4006;
charge = 1.;
TVirtualMC::GetMC()->DefineParticle(PDG, "He5D", kPTHadron, mass, charge, lifetime, "hadron", 0.0,
1, 1, 0, 1, 1, 0, 0, 1, kFALSE);
for (Int_t kz = 0; kz < 6; kz++) {
bratio[kz] = 0.;
mode[kz][0] = 0;
mode[kz][1] = 0;
mode[kz][2] = 0;
}
bratio[0] = 100.;
mode[0][0] = 1000020040; //4He
mode[0][1] = -411; //D-
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
TGeant3* gMC3 = static_cast<TGeant3*>(vmc); TGeant3* gMC3 = static_cast<TGeant3*>(vmc);
assert(vmc); assert(vmc);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment