#include <LaserOpticalPhysicsList.h>
Public Member Functions | |
virtual void | ConstructParticle () |
construct Optical Photons | |
virtual void | ConstructProcess () |
construct Optical Processes | |
LaserOpticalPhysicsList (const G4String &name="optical") | |
constructor | |
virtual | ~LaserOpticalPhysicsList () |
destructor | |
Protected Attributes | |
G4OpAbsorption * | theAbsorptionProcess |
G4OpBoundaryProcess * | theBoundaryProcess |
G4Cerenkov * | theCerenkovProcess |
G4OpRayleigh * | theRayleighScattering |
G4Scintillation * | theScintProcess |
G4OpWLS * | theWLSProcess |
G4bool | wasActivated |
Define the Optical processes for the Simulation of the Laser Alignment System
Definition at line 23 of file LaserOpticalPhysicsList.h.
LaserOpticalPhysicsList::LaserOpticalPhysicsList | ( | const G4String & | name = "optical" | ) |
constructor
Definition at line 18 of file LaserOpticalPhysicsList.cc.
References gather_cfg::cout.
: G4VPhysicsConstructor(name), wasActivated(false), theScintProcess(), theCerenkovProcess(), theAbsorptionProcess(), theRayleighScattering(), theBoundaryProcess(), theWLSProcess() { if (verboseLevel > 0) std::cout << "<LaserOpticalPhysicsList::LaserOpticalPhysicsList(...)> entering constructor ..." << std::endl; }
LaserOpticalPhysicsList::~LaserOpticalPhysicsList | ( | ) | [virtual] |
destructor
Definition at line 32 of file LaserOpticalPhysicsList.cc.
References gather_cfg::cout, theAbsorptionProcess, theBoundaryProcess, theRayleighScattering, theScintProcess, and theWLSProcess.
{ if (verboseLevel > 0) { std::cout << "<LaserOpticalPhysicsList::~LaserOpticalPhysicsList()> entering destructor ... " << std::endl; std::cout << " deleting the processes ... "; } if ( theWLSProcess != 0 ) { delete theWLSProcess; } if ( theBoundaryProcess != 0 ) { delete theBoundaryProcess; } if ( theRayleighScattering != 0 ) { delete theRayleighScattering; } if ( theAbsorptionProcess != 0 ) { delete theAbsorptionProcess; } // if ( theCerenkovProcess != 0 ) { delete theCerenkovProcess; } if ( theScintProcess != 0 ) { delete theScintProcess; } if (verboseLevel > 0) std::cout << " done " << std::endl; }
void LaserOpticalPhysicsList::ConstructParticle | ( | ) | [virtual] |
construct Optical Photons
Definition at line 49 of file LaserOpticalPhysicsList.cc.
References gather_cfg::cout.
{ if (verboseLevel > 0) std::cout << "<LaserOpticalPhysicsList::ConstructParticle()>: constructing the optical photon ... " << std::endl; // optical photon G4OpticalPhoton::OpticalPhotonDefinition(); }
void LaserOpticalPhysicsList::ConstructProcess | ( | ) | [virtual] |
construct Optical Processes
Definition at line 58 of file LaserOpticalPhysicsList.cc.
References gather_cfg::cout, theAbsorptionProcess, theBoundaryProcess, theRayleighScattering, theScintProcess, theWLSProcess, and wasActivated.
{ if (verboseLevel > 0) std::cout << "<LaserOpticalPhysicsList::ConstructProcess()>: constructing the physics ... " << std::endl; theScintProcess = new G4Scintillation(); // theCerenkovProcess=new G4Cerenkov(); theAbsorptionProcess=new G4OpAbsorption(); theRayleighScattering=new G4OpRayleigh(); theBoundaryProcess=new G4OpBoundaryProcess("OpBoundary"); theWLSProcess=new G4OpWLS(); // set the verbosity level theAbsorptionProcess->SetVerboseLevel(verboseLevel); theBoundaryProcess->SetVerboseLevel(verboseLevel); G4ProcessManager * pManager = 0; pManager = G4OpticalPhoton::OpticalPhoton()->GetProcessManager(); pManager->AddDiscreteProcess(theAbsorptionProcess); pManager->AddDiscreteProcess(theRayleighScattering); theBoundaryProcess->SetModel(unified); pManager->AddDiscreteProcess(theBoundaryProcess); pManager->AddDiscreteProcess(theWLSProcess); theScintProcess->SetScintillationYieldFactor(1.); theScintProcess->SetScintillationExcitationRatio(0.0); theScintProcess->SetTrackSecondariesFirst(true); theParticleIterator->reset(); while( (*theParticleIterator)() ) { G4ParticleDefinition* particle = theParticleIterator->value(); pManager = particle->GetProcessManager(); // if(theCerenkovProcess->IsApplicable(*particle)) // { // pManager->AddContinuousProcess(theCerenkovProcess); // } if(theScintProcess->IsApplicable(*particle)) { pManager->AddProcess(theScintProcess); pManager->SetProcessOrderingToLast(theScintProcess,idxAtRest); pManager->SetProcessOrderingToLast(theScintProcess,idxPostStep); } } wasActivated = true; }
G4OpAbsorption* LaserOpticalPhysicsList::theAbsorptionProcess [protected] |
Definition at line 42 of file LaserOpticalPhysicsList.h.
Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().
G4OpBoundaryProcess* LaserOpticalPhysicsList::theBoundaryProcess [protected] |
Definition at line 44 of file LaserOpticalPhysicsList.h.
Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().
G4Cerenkov* LaserOpticalPhysicsList::theCerenkovProcess [protected] |
Definition at line 41 of file LaserOpticalPhysicsList.h.
G4OpRayleigh* LaserOpticalPhysicsList::theRayleighScattering [protected] |
Definition at line 43 of file LaserOpticalPhysicsList.h.
Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().
G4Scintillation* LaserOpticalPhysicsList::theScintProcess [protected] |
Definition at line 40 of file LaserOpticalPhysicsList.h.
Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().
G4OpWLS* LaserOpticalPhysicsList::theWLSProcess [protected] |
Definition at line 45 of file LaserOpticalPhysicsList.h.
Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().
G4bool LaserOpticalPhysicsList::wasActivated [protected] |
Definition at line 38 of file LaserOpticalPhysicsList.h.
Referenced by ConstructProcess().