19#include "BDSLaserCompton.hh"
20#include "BDSPhysicsLaserWire.hh"
23#include "G4Electron.hh"
25#include "G4OpticalPhoton.hh"
26#include "G4ParticleDefinition.hh"
27#include "G4Positron.hh"
28#include "G4ProcessManager.hh"
29#include "G4Version.hh"
31BDSPhysicsLaserWire::BDSPhysicsLaserWire():
32 G4VPhysicsConstructor(
"BDSPhysicsLaserWire")
35BDSPhysicsLaserWire::~BDSPhysicsLaserWire()
40 G4Electron::ElectronDefinition();
41 G4Positron::PositronDefinition();
43 G4OpticalPhoton::OpticalPhotonDefinition();
51#if G4VERSION_NUMBER > 1029
52 auto aParticleIterator = GetParticleIterator();
54 aParticleIterator->reset();
58 while((*aParticleIterator)())
60 G4ParticleDefinition* particle = aParticleIterator->value();
61 G4ProcessManager* pmanager = particle->GetProcessManager();
62 G4String particleName = particle->GetParticleName();
64 if (particleName ==
"e-")
66 pmanager->AddProcess(lwProcess);
67 pmanager->SetProcessOrderingToLast(lwProcess,idxPostStep);
70 if (particleName ==
"e+")
72 pmanager->AddProcess(lwProcess);
73 pmanager->SetProcessOrderingToLast(lwProcess,idxPostStep);
Laser compton scattering process to achieve a laserwire.
virtual void ConstructParticle()
Construct electrons and positrons and the photon.
virtual void ConstructProcess()
Construct and attache BDSIM laserwire process.
G4bool Activated() const
Get whether this instance has been activated.
void SetActivated()
Flag this instance as activated for later querying.