12 #include "G4hMultipleScattering.hh"
13 #include "G4hIonisation.hh"
14 #include "G4CoulombScattering.hh"
15 #include "G4ProcessManager.hh"
20 using namespace CLHEP;
25 : G4VPhysicsConstructor(
name) {
28 dfactor =
p.getParameter<
double>(
"DarkMPFactor");
32 dfactor =
p.getParameter<
double>(
"dark_factor");
40 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"CustomPhysicsListSS: Path for custom particle definition file: \n"
47 edm::LogVerbatim(
"SimG4CoreCustomPhysicsSS") <<
"===== CustomPhysicsList::ConstructParticle ";
52 edm::LogVerbatim(
"SimG4CoreCustomPhysicsSS") <<
"CustomPhysicsListSS: adding CustomPhysics processes";
54 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
59 G4ProcessManager* pmanager = particle->GetProcessManager();
61 <<
"CustomPhysicsListSS: " << particle->GetParticleName() <<
" PDGcode= " << particle->GetPDGEncoding()
62 <<
" Mass= " << particle->GetPDGMass() /
GeV <<
" GeV.";
64 if (particle->GetPDGCharge() != 0.0) {
65 ph->RegisterProcess(
new G4CoulombScattering, particle);
66 ph->RegisterProcess(
new G4hIonisation, particle);
70 <<
"CustomPhysicsListSS: " << particle->GetParticleName()
71 <<
" CloudMass= " <<
cp->GetCloud()->GetPDGMass() /
GeV
72 <<
" GeV; SpectatorMass= " <<
cp->GetSpectator()->GetPDGMass() /
GeV <<
" GeV.";
79 if (particle->GetParticleType() ==
"darkpho") {
81 pmanager->AddDiscreteProcess(darkGamma);