20#include "BDSPhysicsAnnihiToMuMu.hh"
22#include "G4AutoDelete.hh"
23#include "G4AnnihiToMuPair.hh"
24#include "G4LeptonConstructor.hh"
25#include "G4ParticleDefinition.hh"
26#include "G4PhysicsListHelper.hh"
28#include "G4Version.hh"
31BDSPhysicsAnnihiToMuMu::BDSPhysicsAnnihiToMuMu():
32 G4VPhysicsConstructor(
"BDSPhysicsAnnihiToMuMu")
35BDSPhysicsAnnihiToMuMu::~BDSPhysicsAnnihiToMuMu()
40 G4LeptonConstructor leptons;
41 leptons.ConstructParticle();
49 G4AnnihiToMuPair* ePlusToMuPair =
new G4AnnihiToMuPair();
50 G4AutoDelete::Register(ePlusToMuPair);
52 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
54#if G4VERSION_NUMBER > 1029
55 auto aParticleIterator = GetParticleIterator();
57 aParticleIterator->reset();
59 while( (*aParticleIterator)() )
61 G4ParticleDefinition* particle = aParticleIterator->value();
62 G4String particleName = particle->GetParticleName();
64 if (particleName ==
"e+")
65 {ph->RegisterProcess(ePlusToMuPair, particle);}
virtual void ConstructParticle()
Construct all leptions, photons (inc optical), and pion +- just in case.
virtual void ConstructProcess()
Construct and attach the processes to the relevant particles.
G4bool Activated() const
Get whether this instance has been activated.
void SetActivated()
Flag this instance as activated for later querying.