12 #include "G4hMultipleScattering.hh"
13 #include "G4hIonisation.hh"
14 #include "G4ProcessManager.hh"
21 using namespace CLHEP;
26 : G4VPhysicsConstructor(
name) {
29 dfactor =
p.getParameter<
double>(
"DarkMPFactor");
33 dfactor =
p.getParameter<
double>(
"dark_factor");
41 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"CustomPhysicsList: Path for custom particle definition file: \n"
49 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"===== CustomPhysicsList::ConstructParticle ";
54 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"CustomPhysicsList: adding CustomPhysics processes "
55 <<
"for the list of particles";
57 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
60 if (particle->GetParticleType() ==
"simp") {
61 G4ProcessManager* pmanager = particle->GetProcessManager();
65 theQGSPSIMPB->
Build(simpInelPr);
66 pmanager->AddDiscreteProcess(simpInelPr);
73 G4ProcessManager* pmanager = particle->GetProcessManager();
75 <<
"CustomPhysicsList: " << particle->GetParticleName() <<
" PDGcode= " << particle->GetPDGEncoding()
76 <<
" Mass= " << particle->GetPDGMass() /
GeV <<
" GeV.";
78 if (particle->GetPDGCharge() != 0.0) {
79 ph->RegisterProcess(
new G4hMultipleScattering, particle);
80 ph->RegisterProcess(
new G4hIonisation, particle);
84 <<
"CustomPhysicsList: " << particle->GetParticleName()
85 <<
" CloudMass= " <<
cp->GetCloud()->GetPDGMass() /
GeV
86 <<
" GeV; SpectatorMass= " <<
cp->GetSpectator()->GetPDGMass() /
GeV <<
" GeV.";
93 if (particle->GetParticleType() ==
"darkpho") {
95 pmanager->AddDiscreteProcess(darkGamma);