4 #include "SimG4Core/CustomPhysics/interface/G4ProcessHelper.hh" 12 #include "G4hMultipleScattering.hh" 13 #include "G4hIonisation.hh" 14 #include "G4ProcessManager.hh" 16 #include "SimG4Core/CustomPhysics/interface/FullModelHadronicProcess.hh" 17 #include "SimG4Core/CustomPhysics/interface/ToyModelHadronicProcess.hh" 18 #include "SimG4Core/CustomPhysics/interface/CMSDarkPairProductionProcess.hh" 20 using namespace CLHEP;
26 : G4VPhysicsConstructor(name)
35 <<
"CustomPhysicsList: Path for custom particle definition file: \n" 36 <<particleDefFilePath <<
"\n" <<
" dark_factor= " <<
dfactor;
43 G4cout <<
"===== CustomPhysicsList::ConstructParticle " <<
this << G4endl;
50 <<
"CustomPhysicsList: adding CustomPhysics processes " 51 <<
"for the list of particles";
55 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
60 G4ProcessManager* pmanager = particle->GetProcessManager();
62 <<
"CustomPhysicsList: " << particle->GetParticleName()
63 <<
" PDGcode= " << particle->GetPDGEncoding()
64 <<
" Mass= " << particle->GetPDGMass()/
GeV <<
" GeV.";
66 if(particle->GetPDGCharge() != 0.0) {
67 ph->RegisterProcess(
new G4hMultipleScattering, particle);
68 ph->RegisterProcess(
new G4hIonisation, particle);
76 <<
"CustomPhysicsList: " << particle->GetParticleName()
78 <<
" GeV; SpectatorMass= " << cp->
GetSpectator()->GetPDGMass()/
GeV<<
" GeV.";
81 pmanager->AddDiscreteProcess(
new FullModelHadronicProcess(
myHelper));
83 if(particle->GetParticleType()==
"darkpho"){
84 CMSDarkPairProductionProcess * darkGamma =
new CMSDarkPairProductionProcess(
dfactor);
85 pmanager->AddDiscreteProcess(darkGamma);
T getParameter(std::string const &) const
static G4ThreadLocal G4Decay * fDecayProcess
void ConstructProcess() override
edm::ParameterSet myConfig
std::string particleDefFilePath
G4ParticleDefinition * GetCloud()
static void loadCustomParticles(const std::string &filePath)
void ConstructParticle() override
static G4ThreadLocal G4ProcessHelper * myHelper
bool fHadronicInteraction
G4ParticleDefinition * GetSpectator()
static bool s_isRHadron(int pdg)
CustomPhysicsList(std::string name, const edm::ParameterSet &p)
static const std::vector< G4ParticleDefinition * > & GetCustomParticles()
~CustomPhysicsList() override