16 #include <G4OpticalPhoton.hh>
17 #include <G4PhysicsOrderedFreeVector.hh>
19 #include <G4VDiscreteProcess.hh>
21 #include <templates.hh>
24 class G4VWLSTimeGeneratorProfile;
32 BNLOpWLS(
const G4String &processName =
"OpWLS", G4ProcessType type = fOptical);
41 G4double GetEmEnergy(G4double);
51 void SetExEmData(std::string fname);
55 G4int SampleQY(G4double);
58 G4bool IsApplicable(
const G4ParticleDefinition &aParticleType);
61 void BuildPhysicsTable(
const G4ParticleDefinition &aParticleType);
65 G4double GetMeanFreePath(
const G4Track &aTrack, G4double, G4ForceCondition *);
69 G4VParticleChange *PostStepDoIt(
const G4Track &aTrack,
const G4Step &aStep);
72 G4PhysicsTable *GetIntegralTable()
const;
75 void UseTimeProfile(
const G4String name);
79 void BuildThePhysicsTable();
83 void BuildTheQYTable();
88 G4VWLSTimeGeneratorProfile *WLSTimeGeneratorProfile;
89 G4PhysicsTable *theIntegralTable;
90 G4PhysicsTable *theQYTable;
95 inline G4bool BNLOpWLS::IsApplicable(
const G4ParticleDefinition &aParticleType) {
96 return (&aParticleType == G4OpticalPhoton::OpticalPhoton());
99 inline G4PhysicsTable *BNLOpWLS::GetIntegralTable()
const {
return theIntegralTable; }
Definition: BNLOpWLSData.hh:20
Definition: BNLOpWLS.hh:30