Geant4  10.02.p03
WLSOpticalPhysics Class Reference

#include <WLSOpticalPhysics.hh>

Inheritance diagram for WLSOpticalPhysics:
Collaboration diagram for WLSOpticalPhysics:

Public Member Functions

 WLSOpticalPhysics (G4bool toggle=true)
 
virtual ~WLSOpticalPhysics ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
G4OpWLSGetWLSProcess ()
 
G4CerenkovGetCerenkovProcess ()
 
G4ScintillationGetScintillationProcess ()
 
G4OpAbsorptionGetAbsorptionProcess ()
 
G4OpRayleighGetRayleighScatteringProcess ()
 
G4OpMieHGGetMieHGScatteringProcess ()
 
G4OpBoundaryProcessGetBoundaryProcess ()
 
void SetNbOfPhotonsCerenkov (G4int)
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 

Private Attributes

G4OpWLSfWLSProcess
 
G4CerenkovfCerenkovProcess
 
G4ScintillationfScintProcess
 
G4OpAbsorptionfAbsorptionProcess
 
G4OpRayleighfRayleighScattering
 
G4OpMieHGfMieHGScatteringProcess
 
G4OpBoundaryProcessfBoundaryProcess
 
G4bool fAbsorptionOn
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 51 of file WLSOpticalPhysics.hh.

Constructor & Destructor Documentation

◆ WLSOpticalPhysics()

WLSOpticalPhysics::WLSOpticalPhysics ( G4bool  toggle = true)

Definition at line 40 of file WLSOpticalPhysics.cc.

41  : G4VPhysicsConstructor("Optical")
42 {
43  fWLSProcess = NULL;
44  fScintProcess = NULL;
45  fCerenkovProcess = NULL;
46  fBoundaryProcess = NULL;
47  fAbsorptionProcess = NULL;
48  fRayleighScattering = NULL;
50 
51  fAbsorptionOn = toggle;
52 }
G4OpRayleigh * fRayleighScattering
G4OpBoundaryProcess * fBoundaryProcess
G4OpMieHG * fMieHGScatteringProcess
G4Scintillation * fScintProcess
G4OpAbsorption * fAbsorptionProcess
G4Cerenkov * fCerenkovProcess
G4VPhysicsConstructor(const G4String &="")

◆ ~WLSOpticalPhysics()

WLSOpticalPhysics::~WLSOpticalPhysics ( )
virtual

Definition at line 54 of file WLSOpticalPhysics.cc.

54 { }

Member Function Documentation

◆ ConstructParticle()

void WLSOpticalPhysics::ConstructParticle ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 58 of file WLSOpticalPhysics.cc.

59 {
61 }
static G4OpticalPhoton * OpticalPhotonDefinition()
Here is the call graph for this function:

◆ ConstructProcess()

void WLSOpticalPhysics::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 65 of file WLSOpticalPhysics.cc.

66 {
67  G4cout << "WLSOpticalPhysics:: Add Optical Physics Processes"
68  << G4endl;
69 
70  fWLSProcess = new G4OpWLS();
71 
75 
79 
84 
85  G4ProcessManager* pManager =
87 
88  if (!pManager) {
89  std::ostringstream o;
90  o << "Optical Photon without a Process Manager";
91  G4Exception("WLSOpticalPhysics::ConstructProcess()","",
92  FatalException,o.str().c_str());
93  }
94 
96 
97  //pManager->AddDiscreteProcess(fRayleighScattering);
98  //pManager->AddDiscreteProcess(fMieHGScatteringProcess);
99 
101 
102  fWLSProcess->UseTimeProfile("delta");
103  //fWLSProcess->UseTimeProfile("exponential");
104 
105  pManager->AddDiscreteProcess(fWLSProcess);
106 
110 
111  // Use Birks Correction in the Scintillation process
112 
114  fScintProcess->AddSaturation(emSaturation);
115 
117  particleIterator->reset();
118  while ( (*particleIterator)() ){
119 
120  G4ParticleDefinition* particle = particleIterator->value();
121  G4String particleName = particle->GetParticleName();
122 
123  pManager = particle->GetProcessManager();
124  if (!pManager) {
125  std::ostringstream o;
126  o << "Particle " << particleName << "without a Process Manager";
127  G4Exception("WLSOpticalPhysics::ConstructProcess()","",
128  FatalException,o.str().c_str());
129  }
130 
131  if(fCerenkovProcess->IsApplicable(*particle)){
132  pManager->AddProcess(fCerenkovProcess);
134  }
135  if(fScintProcess->IsApplicable(*particle)){
136  pManager->AddProcess(fScintProcess);
139  }
140 
141  }
142 }
static G4LossTableManager * Instance()
void SetTrackSecondariesFirst(const G4bool state)
Definition: G4Cerenkov.cc:146
G4OpRayleigh * fRayleighScattering
G4OpBoundaryProcess * fBoundaryProcess
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
G4OpMieHG * fMieHGScatteringProcess
G4ProcessManager * GetProcessManager() const
G4Scintillation * fScintProcess
void UseTimeProfile(const G4String name)
Definition: G4OpWLS.cc:417
void SetScintillationYieldFactor(const G4double yieldfactor)
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
void AddSaturation(G4EmSaturation *)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
G4EmSaturation * EmSaturation()
void SetMaxNumPhotonsPerStep(const G4int NumPhotons)
Definition: G4Cerenkov.cc:156
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void SetScintillationExcitationRatio(const G4double ratio)
static G4OpticalPhoton * OpticalPhoton()
void SetTrackSecondariesFirst(const G4bool state)
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4OpAbsorption * fAbsorptionProcess
G4Cerenkov * fCerenkovProcess
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition: G4BigBanger.cc:65
#define G4endl
Definition: G4ios.hh:61
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
Definition: G4Cerenkov.cc:135
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAbsorptionProcess()

G4OpAbsorption* WLSOpticalPhysics::GetAbsorptionProcess ( )
inline

Definition at line 64 of file WLSOpticalPhysics.hh.

64 {return fAbsorptionProcess;}
G4OpAbsorption * fAbsorptionProcess
Here is the caller graph for this function:

◆ GetBoundaryProcess()

G4OpBoundaryProcess* WLSOpticalPhysics::GetBoundaryProcess ( )
inline

Definition at line 67 of file WLSOpticalPhysics.hh.

67 { return fBoundaryProcess;}
G4OpBoundaryProcess * fBoundaryProcess
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCerenkovProcess()

G4Cerenkov* WLSOpticalPhysics::GetCerenkovProcess ( )
inline

Definition at line 62 of file WLSOpticalPhysics.hh.

62 {return fCerenkovProcess;}
G4Cerenkov * fCerenkovProcess
Here is the caller graph for this function:

◆ GetMieHGScatteringProcess()

G4OpMieHG* WLSOpticalPhysics::GetMieHGScatteringProcess ( )
inline

Definition at line 66 of file WLSOpticalPhysics.hh.

G4OpMieHG * fMieHGScatteringProcess
Here is the caller graph for this function:

◆ GetRayleighScatteringProcess()

G4OpRayleigh* WLSOpticalPhysics::GetRayleighScatteringProcess ( )
inline

Definition at line 65 of file WLSOpticalPhysics.hh.

65 {return fRayleighScattering;}
G4OpRayleigh * fRayleighScattering
Here is the caller graph for this function:

◆ GetScintillationProcess()

G4Scintillation* WLSOpticalPhysics::GetScintillationProcess ( )
inline

Definition at line 63 of file WLSOpticalPhysics.hh.

63 {return fScintProcess;}
G4Scintillation * fScintProcess
Here is the caller graph for this function:

◆ GetWLSProcess()

G4OpWLS* WLSOpticalPhysics::GetWLSProcess ( )
inline

Definition at line 61 of file WLSOpticalPhysics.hh.

61 {return fWLSProcess;}

◆ SetNbOfPhotonsCerenkov()

void WLSOpticalPhysics::SetNbOfPhotonsCerenkov ( G4int  maxNumber)

Definition at line 144 of file WLSOpticalPhysics.cc.

145 {
147 }
void SetMaxNumPhotonsPerStep(const G4int NumPhotons)
Definition: G4Cerenkov.cc:156
G4Cerenkov * fCerenkovProcess
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ fAbsorptionOn

G4bool WLSOpticalPhysics::fAbsorptionOn
private

Definition at line 81 of file WLSOpticalPhysics.hh.

◆ fAbsorptionProcess

G4OpAbsorption* WLSOpticalPhysics::fAbsorptionProcess
private

Definition at line 76 of file WLSOpticalPhysics.hh.

◆ fBoundaryProcess

G4OpBoundaryProcess* WLSOpticalPhysics::fBoundaryProcess
private

Definition at line 79 of file WLSOpticalPhysics.hh.

◆ fCerenkovProcess

G4Cerenkov* WLSOpticalPhysics::fCerenkovProcess
private

Definition at line 74 of file WLSOpticalPhysics.hh.

◆ fMieHGScatteringProcess

G4OpMieHG* WLSOpticalPhysics::fMieHGScatteringProcess
private

Definition at line 78 of file WLSOpticalPhysics.hh.

◆ fRayleighScattering

G4OpRayleigh* WLSOpticalPhysics::fRayleighScattering
private

Definition at line 77 of file WLSOpticalPhysics.hh.

◆ fScintProcess

G4Scintillation* WLSOpticalPhysics::fScintProcess
private

Definition at line 75 of file WLSOpticalPhysics.hh.

◆ fWLSProcess

G4OpWLS* WLSOpticalPhysics::fWLSProcess
private

Definition at line 73 of file WLSOpticalPhysics.hh.


The documentation for this class was generated from the following files: