19#include "BDSPhysicsCherenkov.hh"
22#include "G4AutoDelete.hh"
23#include "G4Cerenkov.hh"
25#include "G4LeptonConstructor.hh"
26#include "G4OpticalPhoton.hh"
27#include "G4ParticleDefinition.hh"
28#include "G4PhysicsListHelper.hh"
29#include "G4Version.hh"
31BDSPhysicsCherenkov::BDSPhysicsCherenkov(G4double maxPhotonsPerStepIn,
32 G4double maxBetaChangePerStepIn):
33 G4VPhysicsConstructor(
"BDSPhysicsCherenkov"),
34 maxPhotonsPerStep(maxPhotonsPerStepIn),
35 maxBetaChangePerStep(maxBetaChangePerStepIn)
38BDSPhysicsCherenkov::~BDSPhysicsCherenkov()
41void BDSPhysicsCherenkov::ConstructParticle()
43 G4LeptonConstructor leptons;
44 leptons.ConstructParticle();
47 G4OpticalPhoton::OpticalPhotonDefinition();
50void BDSPhysicsCherenkov::ConstructProcess()
55 G4Cerenkov* cherenkov =
new G4Cerenkov();
56 G4AutoDelete::Register(cherenkov);
59 cherenkov->SetTrackSecondariesFirst(
true);
66 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
68#if G4VERSION_NUMBER > 1029
69 auto aParticleIterator = GetParticleIterator();
71 aParticleIterator->reset();
72 while( (*aParticleIterator)() )
74 G4ParticleDefinition* particle = aParticleIterator->value();
76 if (cherenkov->IsApplicable(*particle))
77 {ph->RegisterProcess(cherenkov, particle);}
G4double maxPhotonsPerStep
Parameter from global constants to control cherenkov physics.
G4double maxBetaChangePerStep
Parameter from global constants to control cherenkov physics.
G4bool Activated() const
Get whether this instance has been activated.
void SetActivated()
Flag this instance as activated for later querying.