14 #include "G4hMultipleScattering.hh"
15 #include "G4hIonisation.hh"
16 #include "G4ProcessManager.hh"
23 using namespace CLHEP;
28 : G4VPhysicsConstructor(
name) {
31 dfactor =
p.getParameter<
double>(
"DarkMPFactor");
35 dfactor =
p.getParameter<
double>(
"dark_factor");
43 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"CustomPhysicsList: Path for custom particle definition file: \n"
51 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"===== CustomPhysicsList::ConstructParticle ";
56 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"CustomPhysicsList: adding CustomPhysics processes "
57 <<
"for the list of particles";
59 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
62 if (particle->GetParticleType() ==
"simp") {
63 G4ProcessManager* pmanager = particle->GetProcessManager();
67 theQGSPSIMPB->
Build(simpInelPr);
68 pmanager->AddDiscreteProcess(simpInelPr);
75 G4ProcessManager* pmanager = particle->GetProcessManager();
77 <<
"CustomPhysicsList: " << particle->GetParticleName() <<
" PDGcode= " << particle->GetPDGEncoding()
78 <<
" Mass= " << particle->GetPDGMass() /
GeV <<
" GeV.";
80 if (particle->GetPDGCharge() != 0.0) {
81 ph->RegisterProcess(
new G4hMultipleScattering, particle);
82 ph->RegisterProcess(
new G4hIonisation, particle);
86 <<
"CustomPhysicsList: " << particle->GetParticleName()
87 <<
" CloudMass= " <<
cp->GetCloud()->GetPDGMass() /
GeV
88 <<
" GeV; SpectatorMass= " <<
cp->GetSpectator()->GetPDGMass() /
GeV <<
" GeV.";
95 if (particle->GetParticleType() ==
"darkpho") {
97 pmanager->AddDiscreteProcess(darkGamma);