14 #include "G4hMultipleScattering.hh" 15 #include "G4hIonisation.hh" 16 #include "G4CoulombScattering.hh" 17 #include "G4ProcessManager.hh" 22 using namespace CLHEP;
27 : G4VPhysicsConstructor(
name) {
30 dfactor =
p.getParameter<
double>(
"DarkMPFactor");
34 dfactor =
p.getParameter<
double>(
"dark_factor");
42 edm::LogVerbatim(
"SimG4CoreCustomPhysics") <<
"CustomPhysicsListSS: Path for custom particle definition file: \n" 49 edm::LogVerbatim(
"SimG4CoreCustomPhysicsSS") <<
"===== CustomPhysicsList::ConstructParticle ";
54 edm::LogVerbatim(
"SimG4CoreCustomPhysicsSS") <<
"CustomPhysicsListSS: adding CustomPhysics processes";
56 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
61 G4ProcessManager* pmanager = particle->GetProcessManager();
63 <<
"CustomPhysicsListSS: " << particle->GetParticleName() <<
" PDGcode= " << particle->GetPDGEncoding()
64 <<
" Mass= " << particle->GetPDGMass() / GeV <<
" GeV.";
66 if (particle->GetPDGCharge() != 0.0) {
67 ph->RegisterProcess(
new G4CoulombScattering, particle);
68 ph->RegisterProcess(
new G4hIonisation, particle);
75 <<
"CustomPhysicsListSS: " << particle->GetParticleName()
76 <<
" CloudMass= " <<
cp->GetCloud()->GetPDGMass() / GeV
77 <<
" GeV; SpectatorMass= " <<
cp->GetSpectator()->GetPDGMass() / GeV <<
" GeV.";
84 if (particle->GetParticleType() ==
"darkpho") {
86 pmanager->AddDiscreteProcess(darkGamma);
std::string particleDefFilePath
Log< level::Info, true > LogVerbatim
std::unique_ptr< CustomParticleFactory > fParticleFactory
void ConstructParticle() override
static bool s_isgluinoHadron(int pdg)
~CustomPhysicsListSS() override
bool fHadronicInteraction
static G4ThreadLocal std::unique_ptr< G4ProcessHelper > myHelper
edm::ParameterSet myConfig
void ConstructProcess() override
static bool s_issbottomHadron(int pdg)
CustomPhysicsListSS(const std::string &name, const edm::ParameterSet &p, bool useuni=false)
static bool s_isstopHadron(int pdg)