10#include <G4VPhysicsConstructor.hh>
17#include "G4ProcessManager.hh"
18#include "G4ParticleTable.hh"
19#include "G4DecayTable.hh"
20#include "G4VDecayChannel.hh"
21#include "G4PhaseSpaceDecayChannel.hh"
27#include "G4Version.hh"
28#if G4VERSION_NUMBER > 1029
29#define PARTICLEITERATOR (this->GetParticleIterator())
30#elif G4VERSION_NUMBER > 1009
31#define PARTICLEITERATOR aParticleIterator
33#define PARTICLEITERATOR theParticleIterator
40 const std::string& nam,
const IInterface* parent )
41 : base_class (
type, nam , parent )
43 m_physicsOptionType = G4AtlasPhysicsOption::Type::GlobalProcesses;
65 while(std::getline(
ss, token,
','))
70 return StatusCode::SUCCESS;
78 if (
m_ParticleName==
static_cast<const std::string&
>(particle->GetParticleName()))
81 G4DecayTable *table = particle->GetDecayTable();
84 table =
new G4DecayTable();
87 G4VDecayChannel *mode_vec(
nullptr);
105 throw "Decay with more than four particles";
118 table->Insert(mode_vec);
121 particle->SetDecayTable(table);
128 return std::make_unique<AddPhysicsDecayTool::PhysicsConstructor>(