12 #include "G4hMultipleScattering.hh" 13 #include "G4hIonisation.hh" 14 #include "G4ProcessManager.hh" 19 using namespace CLHEP;
25 : G4VPhysicsConstructor(name)
42 <<
"CustomPhysicsList: Path for custom particle definition file: \n" 43 <<particleDefFilePath <<
"\n" <<
" dark_factor= " <<
dfactor;
51 <<
"===== CustomPhysicsList::ConstructParticle ";
58 <<
"CustomPhysicsList: adding CustomPhysics processes " 59 <<
"for the list of particles";
61 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
66 G4ProcessManager* pmanager = particle->GetProcessManager();
68 <<
"CustomPhysicsList: " << particle->GetParticleName()
69 <<
" PDGcode= " << particle->GetPDGEncoding()
70 <<
" Mass= " << particle->GetPDGMass()/
GeV <<
" GeV.";
72 if(particle->GetPDGCharge() != 0.0) {
73 ph->RegisterProcess(
new G4hMultipleScattering, particle);
74 ph->RegisterProcess(
new G4hIonisation, particle);
79 <<
"CustomPhysicsList: " << particle->GetParticleName()
81 <<
" GeV; SpectatorMass= " << cp->
GetSpectator()->GetPDGMass()/
GeV<<
" GeV.";
86 if(particle->GetParticleType()==
"darkpho"){
88 pmanager->AddDiscreteProcess(darkGamma);
T getParameter(std::string const &) const
CustomPhysicsList(const std::string &name, const edm::ParameterSet &p, bool useuni=false)
void ConstructProcess() override
edm::ParameterSet myConfig
std::string particleDefFilePath
G4ParticleDefinition * GetCloud()
static G4ThreadLocal std::unique_ptr< G4ProcessHelper > myHelper
void ConstructParticle() override
bool fHadronicInteraction
G4ParticleDefinition * GetSpectator()
static bool s_isRHadron(int pdg)
std::unique_ptr< CustomParticleFactory > fParticleFactory
~CustomPhysicsList() override