51#ifndef G4OpticalParameters_h
52#define G4OpticalParameters_h 1
93 return "Scintillation";
95 return "OpAbsorption";
111class G4OpticalParameters
114 static G4OpticalParameters*
Instance();
123 friend std::ostream&
operator<<(std::ostream& os,
const G4OpticalParameters&);
194 const std::vector<std::pair<G4XRayModelType, const G4String> >&
199 G4OpticalParameters();
204 static G4OpticalParameters* theInstance;
212 std::map<G4String, G4bool> processActivation;
215 G4bool cerenkovStackPhotons;
216 G4bool cerenkovTrackSecondariesFirst;
217 G4bool cerenkovOffloadPhotons;
219 G4int cerenkovVerboseLevel;
220 G4int cerenkovMaxPhotons;
228 G4bool scintFiniteRiseTime;
233 G4bool scintByParticleType;
243 G4bool scintOffloadPhotons;
245 G4int scintVerboseLevel;
246 G4bool scintTrackSecondariesFirst;
250 G4int wlsVerboseLevel;
254 G4int wls2VerboseLevel;
257 G4int absorptionVerboseLevel;
260 G4int rayleighVerboseLevel;
263 G4int mieVerboseLevel;
268 G4int boundaryVerboseLevel;
271 std::vector<std::pair<G4XRayModelType, const G4String> > xrayVolumes;
273#ifdef G4MULTITHREADED
274 static G4Mutex opticalParametersMutex;
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.
@ kNoProcess
Number of processes, no selected process.
@ kCerenkov
Cerenkov process index.
@ kMieHG
Mie scattering process index.
G4String G4OpticalProcessName(G4int)
Return the name for a given optical process index.
void SetActiveVolume(const G4String &name, G4XRayModelType type)
G4bool GetBoundaryInvokeSD() const
void SetScintByParticleType(G4bool)
void SetCerenkovMaxBetaChange(G4double)
void SetRayleighVerboseLevel(G4int)
void SetScintOffloadPhotons(G4bool)
G4bool GetScintOffloadPhotons() const
void SetCerenkovMaxPhotonsPerStep(G4int)
void SetBoundaryInvokeSD(G4bool)
void SetBoundaryVerboseLevel(G4int)
G4int GetCerenkovVerboseLevel() const
void SetWLS2VerboseLevel(G4int)
void SetScintTrackSecondariesFirst(G4bool)
G4int GetScintVerboseLevel() const
void StreamInfo(std::ostream &os) const
G4int GetAbsorptionVerboseLevel() const
void SetScintVerboseLevel(G4int)
void SetScintStackPhotons(G4bool)
G4bool GetScintStackPhotons() const
void EnableCerenkovGeneral(G4bool)
G4int GetBoundaryVerboseLevel() const
G4int GetRayleighVerboseLevel() const
G4int GetWLS2VerboseLevel() const
G4String GetWLS2TimeProfile() const
const std::vector< std::pair< G4XRayModelType, const G4String > > & ActiveVolumes() const
G4int GetMieVerboseLevel() const
void SetVerboseLevel(G4int)
void SetWLS2TimeProfile(const G4String &)
G4int GetCerenkovMaxPhotonsPerStep() const
G4bool CerenkovGeneral() const
static G4OpticalParameters * Instance()
G4double GetCerenkovMaxBetaChange() const
G4int GetVerboseLevel() const
friend std::ostream & operator<<(std::ostream &os, const G4OpticalParameters &)
void SetAbsorptionVerboseLevel(G4int)
G4bool GetProcessActivation(const G4String &) const
void SetCerenkovStackPhotons(G4bool)
void SetCerenkovTrackSecondariesFirst(G4bool)
G4bool GetCerenkovOffloadPhotons() const
void SetScintFiniteRiseTime(G4bool)
G4String GetWLSTimeProfile() const
G4bool GetScintByParticleType() const
void SetMieVerboseLevel(G4int)
void SetScintTrackInfo(G4bool)
void SetWLSTimeProfile(const G4String &)
G4bool GetScintFiniteRiseTime() const
void SetCerenkovVerboseLevel(G4int)
G4bool GetScintTrackInfo() const
void SetCerenkovOffloadPhotons(G4bool)
G4bool GetCerenkovTrackSecondariesFirst() const
void SetWLSVerboseLevel(G4int)
G4int GetWLSVerboseLevel() const
void SetProcessActivation(const G4String &, G4bool)
G4bool GetScintTrackSecondariesFirst() const
G4bool GetCerenkovStackPhotons() const