89 G4cout <<
"G4OpticalPhysics:: Add Optical Physics Processes"<<
G4endl;
98 ed <<
"Optical Photon without a Process Manager";
99 G4Exception(
"G4OpticalPhysics::ConstructProcess()",
"",
105 if (params->GetProcessActivation(
"OpAbsorption")) pManager->
AddDiscreteProcess(absorption);
108 if (params->GetProcessActivation(
"OpRayleigh")) pManager->
AddDiscreteProcess(rayleigh);
114 if (params->GetProcessActivation(
"OpBoundary")) pManager->
AddDiscreteProcess(boundary);
129 myParticleIterator->reset();
131 while( (*myParticleIterator)() ){
139 ed <<
"Particle " << particleName <<
"without a Process Manager";
140 G4Exception(
"G4OpticalPhysics::ConstructProcess()",
"",
145 if (cerenkov->
IsApplicable(*particle) && params->GetProcessActivation(
"Cerenkov")) {
149 if (scint->
IsApplicable(*particle) && params->GetProcessActivation(
"Scintillation")) {
154 if (boundary->
IsApplicable(*particle) && params->GetProcessActivation(
"OpBoundary")) {
188 ed <<
"Method G4OpticalPhysics::SetTrackSecondariesFirst is deprecated." <<
G4endl
189 <<
"Use G4OpticalParameters::Set[Cerenkov/Scint]TrackSecondariesFirst(G4bool) instead.";
197 ed <<
"Method G4OpticalPhysics::SetMaxNumPhotonsPerStep is deprecated." <<
G4endl
198 <<
"Use G4OpticalParameters::SetCerenkovMaxPhotonsPerStep(G4int) instead.";
205 ed <<
"Method G4OpticalPhysics::SetMaxBetaChangePerStep is deprecated." <<
G4endl
206 <<
"Use G4OpticalParameters::SetCerenkovMaxBetaChange(G4double) instead.";
213 ed <<
"Method G4OpticalPhysics::SetCerenkovStackPhotons is deprecated." <<
G4endl
214 <<
"Use G4OpticalParameters::SetCerenkovStackPhotons(G4int) "
222 ed <<
"Method G4OpticalPhysics::SetCerenkovTrackSecondariesFirst is deprecated." <<
G4endl
223 <<
"Use G4OpticalParameters::SetCerenkovTrackSecondariesFirst(G4int) instead.";
230 ed <<
"Method G4OpticalPhysics::SetCerenkovVerbosity is deprecated." <<
G4endl
231 <<
"Use G4OpticalParameters::SetCerenkovVerbosity(G4int) instead.";
239 ed <<
"Method G4OpticalPhysics::SetScintillationYieldFactor is deprecated." <<
G4endl
240 <<
"Use G4OpticalParameters::SetScintYieldFactor(G4double) instead.";
247 ed <<
"Method G4OpticalPhysics::SetScintillationExcitationRatio is deprecated." <<
G4endl
248 <<
"Use G4OpticalParameters::SetScintExcitationRatio(G4double) instead.";
255 ed <<
"Method G4OpticalPhysics::SetScintillationByParticleType is deprecated." <<
G4endl
256 <<
"Use G4OpticalParameters::SetScintByParticleType(G4bool) instead.";
263 ed <<
"Method G4OpticalPhysics::SetScintillationTrackInfo is deprecated." <<
G4endl
264 <<
"Use G4OpticalParameters::SetScintTrackInfo(G4bool) instead.";
271 ed <<
"Method G4OpticalPhysics::SetScintillationTrackSecondariesFirst is deprecated." <<
G4endl
272 <<
"Use G4OpticalParameters::SetScintTrackSecondariesFirst(G4bool) instead.";
279 ed <<
"Method G4OpticalPhysics::SetFiniteRiseTime is deprecated." <<
G4endl
280 <<
"Use G4OpticalParameters::SetScintFiniteRiseTime(G4bool) instead.";
287 ed <<
"Method G4OpticalPhysics::SetScintillationStackPhotons is deprecated." <<
G4endl
288 <<
"Use G4OpticalParameters::SetScintStackPhotons(G4bool) instead.";
295 ed <<
"Method G4OpticalPhysics::SetScintillationVerbosity is deprecated." <<
G4endl
296 <<
"Use G4OpticalParameters::SetScintVerboseLevel(G4int) instead.";
303 ed <<
"Method G4OpticalPhysics::SetScintillationEnhanceTimeConstants is deprecated." <<
G4endl
304 <<
"Use G4OpticalParameters::SetScintEnhancedTimeConstants(G4bool) instead.";
314 ed <<
"Method G4OpticalPhysics::SetWLSTimeProfile is deprecated." <<
G4endl
315 <<
"Use G4OpticalParameters::SetWLSTimeProfile(G4String) instead.";
322 ed <<
"Method G4OpticalPhysics::SetWLSVerbosity is deprecated." <<
G4endl
323 <<
"Use G4OpticalParameters::SetWLSVerboseLevel(G4int) instead.";
331 ed <<
"Method G4OpticalPhysics::SetBoundaryVerbosity is deprecated." <<
G4endl
332 <<
"Use G4OpticalParameters::SetBoundaryVerboseLevel(G4int) instead.";
339 ed <<
"Method G4OpticalPhysics::SetInvokeSD is deprecated." <<
G4endl
340 <<
"Use G4OpticalParameters::SetBoundaryInvokeSD(G4bool) instead.";
347 ed <<
"Method G4OpticalPhysics::SetAbsorptionVerbosity is deprecated." <<
G4endl
348 <<
"Use G4OpticalParameters::SetAbsorptionVerboseLevel(G4int) instead.";
355 ed <<
"Method G4OpticalPhysics::SetRayleighVerbosity is deprecated." <<
G4endl
356 <<
"Use G4OpticalParameters::SetRayleighVerboseLevel(G4int) instead.";
363 ed <<
"Method G4OpticalPhysics::SetMieVerbosity is deprecated." <<
G4endl
364 <<
"Use G4OpticalParameters::SetMieVerboseLevel(G4int) instead.";
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
@ kWLS
Wave Length Shifting process index.
@ kScintillation
Scintillation process index.
@ kWLS2
Second Wave Length Shifting process index.
@ kRayleigh
Rayleigh scattering process index.
@ kAbsorption
Absorption process index.
@ kBoundary
Boundary process index.
@ kCerenkov
Cerenkov process index.
@ kMieHG
Mie scattering process index.
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)
G4GLOB_DLL std::ostream G4cout
G4bool IsApplicable(const G4ParticleDefinition &aParticleType) override
static G4LossTableManager * Instance()
G4EmSaturation * EmSaturation()
virtual G4bool IsApplicable(const G4ParticleDefinition &aParticleType) override
void SetScintByParticleType(G4bool)
void SetCerenkovMaxBetaChange(G4double)
void SetRayleighVerboseLevel(G4int)
void SetCerenkovMaxPhotonsPerStep(G4int)
void SetBoundaryInvokeSD(G4bool)
void SetBoundaryVerboseLevel(G4int)
void SetScintTrackSecondariesFirst(G4bool)
void SetScintEnhancedTimeConstants(G4bool)
void SetScintVerboseLevel(G4int)
void SetScintStackPhotons(G4bool)
void SetVerboseLevel(G4int)
static G4OpticalParameters * Instance()
void SetAbsorptionVerboseLevel(G4int)
void SetCerenkovStackPhotons(G4bool)
void SetCerenkovTrackSecondariesFirst(G4bool)
void SetScintFiniteRiseTime(G4bool)
void SetMieVerboseLevel(G4int)
void SetScintTrackInfo(G4bool)
void SetWLSTimeProfile(const G4String &)
void SetCerenkovVerboseLevel(G4int)
void SetScintExcitationRatio(G4double)
void SetScintYieldFactor(G4double)
void SetWLSVerboseLevel(G4int)
void SetProcessActivation(const G4String &, G4bool)
static G4OpticalPhoton * OpticalPhotonDefinition()
static G4OpticalPhoton * OpticalPhoton()
void SetScintillationStackPhotons(G4bool)
void SetRayleighVerbosity(G4int)
void SetMaxBetaChangePerStep(G4double)
void SetScintillationYieldFactor(G4double)
void SetMieVerbosity(G4int)
void Configure(G4OpticalProcessIndex, G4bool)
void SetScintillationTrackInfo(G4bool)
void SetScintillationByParticleType(G4bool)
void SetMaxNumPhotonsPerStep(G4int)
void SetScintillationEnhancedTimeConstants(G4bool)
void SetScintillationVerbosity(G4int)
void SetCerenkovTrackSecondariesFirst(G4bool)
virtual ~G4OpticalPhysics()
void SetWLSVerbosity(G4int)
void SetTrackSecondariesFirst(G4OpticalProcessIndex, G4bool)
void SetCerenkovStackPhotons(G4bool)
virtual void ConstructProcess()
virtual void ConstructParticle()
void SetCerenkovVerbosity(G4int)
void SetWLSTimeProfile(G4String)
void SetScintillationTrackSecondariesFirst(G4bool)
void SetFiniteRiseTime(G4bool)
void SetAbsorptionVerbosity(G4int)
void SetScintillationExcitationRatio(G4double)
virtual void PrintStatistics() const
G4OpticalPhysics(G4int verbose=0, const G4String &name="Optical")
void SetBoundaryVerbosity(G4int)
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
void AddSaturation(G4EmSaturation *sat)
G4bool IsApplicable(const G4ParticleDefinition &aParticleType) override
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const