diff --git a/sim/transport/steer/CbmTransport.cxx b/sim/transport/steer/CbmTransport.cxx index 24140f5b0ea5ee156bc13eaaa2172e94e07c35dc..79f6b510fda5b601d70ed7c53545b0d9192dcf03 100644 --- a/sim/transport/steer/CbmTransport.cxx +++ b/sim/transport/steer/CbmTransport.cxx @@ -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]); @@ -407,376 +411,374 @@ void CbmTransport::PiAndEtaDecay(TVirtualMC* vmc) std::cout << std::endl << std::endl; 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- + 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 = 1.80e-10; // lifetime 4HL - mass = 3.92975; - PDG = 3005; - charge = 1.; + TVirtualMC::GetMC()->SetDecayMode(PDG, bratio, mode); - TVirtualMC::GetMC()->DefineParticle(PDG, "H4L", kPTHadron, mass, charge, lifetime, "hadron", 0.0, - 1, 1, 0, 1, 1, 0, 0, 1, kFALSE); + 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] = 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); + 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); assert(vmc); @@ -842,22 +844,26 @@ void CbmTransport::Run(Int_t nEvents) // Get the minimum number of events from all file based generators // Set the number of events to process to this minimum number of events - Int_t numAvailEvents {0}; - Int_t numMinAvailEvents {INT_MAX}; + Int_t numAvailEvents{0}; + Int_t numMinAvailEvents{INT_MAX}; TObjArray* genList = fEventGen->GetListOfGenerators(); for (Int_t i = 0; i < genList->GetEntries(); i++) { CbmUnigenGenerator* gen = dynamic_cast<CbmUnigenGenerator*>(genList->At(i)); 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; + } } } }