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

Add Hypernuclei and Open Charm decay

parent 30f329ba
No related branches found
No related tags found
No related merge requests found
......@@ -167,13 +167,17 @@ void CbmTransport::ConfigureVMC()
LOG(info) << GetName() << ": Create TGeant3";
vmc = new TGeant3("C++ Interface to Geant3");
} //? Native Geant3
if (!fGeant3Settings) { fGeant3Settings = new CbmGeant3Settings(); }
if (!fGeant3Settings) {
fGeant3Settings = new CbmGeant3Settings();
}
fGeant3Settings->Init(vmc);
} //? Geant3
else if (fEngine == kGeant4) {
LOG(info) << GetName() << ": Create TGeant4";
if (!fGeant4Settings) { fGeant4Settings = new CbmGeant4Settings(); }
if (!fGeant4Settings) {
fGeant4Settings = new CbmGeant4Settings();
}
std::array<std::string, 3> runConfigSettings = fGeant4Settings->GetG4RunConfig();
TG4RunConfiguration* runConfig =
new TG4RunConfiguration(runConfigSettings[0], runConfigSettings[1], runConfigSettings[2]);
......@@ -412,8 +416,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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];
......@@ -435,8 +439,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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++) {
......@@ -455,8 +459,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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++) {
......@@ -476,8 +480,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -496,8 +500,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -518,8 +522,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -538,8 +542,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -557,8 +561,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -578,8 +582,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -598,8 +602,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -618,8 +622,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -637,8 +641,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -656,8 +660,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -676,8 +680,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -696,8 +700,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -717,8 +721,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -737,8 +741,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -760,8 +764,8 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
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);
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.;
......@@ -776,8 +780,6 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc)
TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode);
TGeant3* gMC3 = static_cast<TGeant3*>(vmc);
assert(vmc);
......@@ -850,14 +852,18 @@ void CbmTransport::Run(Int_t nEvents)
if (gen) {
numAvailEvents = gen->GetNumAvailableEvents();
if (nEvents > numAvailEvents) {
if (numAvailEvents < numMinAvailEvents) { numMinAvailEvents = numAvailEvents; }
if (numAvailEvents < numMinAvailEvents) {
numMinAvailEvents = numAvailEvents;
}
}
}
CbmPlutoGenerator* pgen = dynamic_cast<CbmPlutoGenerator*>(genList->At(i));
if (pgen) {
numAvailEvents = pgen->GetNumAvailableEvents();
if (nEvents > numAvailEvents) {
if (numAvailEvents < numMinAvailEvents) { numMinAvailEvents = numAvailEvents; }
if (numAvailEvents < numMinAvailEvents) {
numMinAvailEvents = numAvailEvents;
}
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment