62 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"CustomPhysicsList: adding CustomPhysics processes " 63 <<
"for the list of particles";
65 G4PhysicsListHelper*
ph = G4PhysicsListHelper::GetPhysicsListHelper();
68 if (particle->GetParticleType() ==
"simp") {
69 G4ProcessManager* pmanager = particle->GetProcessManager();
73 theQGSPSIMPB->
Build(simpInelPr);
74 pmanager->AddDiscreteProcess(simpInelPr);
81 G4ProcessManager* pmanager = particle->GetProcessManager();
83 <<
"CustomPhysicsList: " << particle->GetParticleName() <<
" PDGcode= " << particle->GetPDGEncoding()
84 <<
" Mass= " << particle->GetPDGMass() / GeV <<
" GeV.";
86 if (particle->GetPDGCharge() != 0.0) {
87 ph->RegisterProcess(
new G4hMultipleScattering, particle);
88 ph->RegisterProcess(
new G4hIonisation, particle);
95 <<
"CustomPhysicsList: " << particle->GetParticleName()
96 <<
" CloudMass= " <<
cp->GetCloud()->GetPDGMass() / GeV
97 <<
" GeV; SpectatorMass= " <<
cp->GetSpectator()->GetPDGMass() / GeV <<
" GeV.";
104 if (particle->GetParticleType() ==
"darkpho") {
106 pmanager->AddDiscreteProcess(darkGamma);
108 if (particle->GetParticleName() ==
"anti_sexaq") {
110 G4HadronicProcess* sqInelPr =
new G4HadronicProcess();
112 sqInelPr->RegisterMe(sqModel);
114 sqInelPr->AddDataSet(sqInelXS);
115 pmanager->AddDiscreteProcess(sqInelPr);
118 pmanager->AddContinuousProcess(sqLoopPr);
120 pmanager->AddDiscreteProcess(sqLoopPrDiscr);
121 }
else if (particle->GetParticleName() ==
"sexaq") {
122 edm::LogVerbatim(
"CustomPhysics") <<
" No pmanager implemented for sexaq, only for anti_sexaq";
Log< level::Info, true > LogVerbatim
void Build(CMSSIMPInelasticProcess *aP)
static bool s_isgluinoHadron(int pdg)
edm::ParameterSet myConfig
static G4ThreadLocal std::unique_ptr< G4ProcessHelper > myHelper
bool fHadronicInteraction
std::unique_ptr< CustomParticleFactory > fParticleFactory
static bool s_issbottomHadron(int pdg)
static bool s_isstopHadron(int pdg)