#include <Alignment/LaserAlignmentSimulation/interface/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 |
Definition at line 23 of file LaserOpticalPhysicsList.h.
LaserOpticalPhysicsList::LaserOpticalPhysicsList | ( | const G4String & | name = "optical" |
) |
constructor
Definition at line 18 of file LaserOpticalPhysicsList.cc.
References GenMuonPlsPt100GeV_cfg::cout, and lat::endl().
00019 : G4VPhysicsConstructor(name), 00020 wasActivated(false), 00021 theScintProcess(), 00022 theCerenkovProcess(), 00023 theAbsorptionProcess(), 00024 theRayleighScattering(), 00025 theBoundaryProcess(), 00026 theWLSProcess() 00027 { 00028 if (verboseLevel > 0) 00029 std::cout << "<LaserOpticalPhysicsList::LaserOpticalPhysicsList(...)> entering constructor ..." << std::endl; 00030 }
LaserOpticalPhysicsList::~LaserOpticalPhysicsList | ( | ) | [virtual] |
destructor
Definition at line 32 of file LaserOpticalPhysicsList.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), theAbsorptionProcess, theBoundaryProcess, theRayleighScattering, theScintProcess, and theWLSProcess.
00033 { 00034 if (verboseLevel > 0) 00035 { 00036 std::cout << "<LaserOpticalPhysicsList::~LaserOpticalPhysicsList()> entering destructor ... " << std::endl; 00037 std::cout << " deleting the processes ... "; 00038 } 00039 if ( theWLSProcess != 0 ) { delete theWLSProcess; } 00040 if ( theBoundaryProcess != 0 ) { delete theBoundaryProcess; } 00041 if ( theRayleighScattering != 0 ) { delete theRayleighScattering; } 00042 if ( theAbsorptionProcess != 0 ) { delete theAbsorptionProcess; } 00043 // if ( theCerenkovProcess != 0 ) { delete theCerenkovProcess; } 00044 if ( theScintProcess != 0 ) { delete theScintProcess; } 00045 if (verboseLevel > 0) 00046 std::cout << " done " << std::endl; 00047 }
void LaserOpticalPhysicsList::ConstructParticle | ( | ) | [virtual] |
construct Optical Photons
Definition at line 49 of file LaserOpticalPhysicsList.cc.
References GenMuonPlsPt100GeV_cfg::cout, and lat::endl().
00050 { 00051 if (verboseLevel > 0) 00052 std::cout << "<LaserOpticalPhysicsList::ConstructParticle()>: constructing the optical photon ... " << std::endl; 00053 00054 // optical photon 00055 G4OpticalPhoton::OpticalPhotonDefinition(); 00056 }
void LaserOpticalPhysicsList::ConstructProcess | ( | ) | [virtual] |
construct Optical Processes
Definition at line 58 of file LaserOpticalPhysicsList.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), theAbsorptionProcess, theBoundaryProcess, theRayleighScattering, theScintProcess, theWLSProcess, and wasActivated.
00059 { 00060 if (verboseLevel > 0) 00061 std::cout << "<LaserOpticalPhysicsList::ConstructProcess()>: constructing the physics ... " << std::endl; 00062 00063 theScintProcess = new G4Scintillation(); 00064 // theCerenkovProcess=new G4Cerenkov(); 00065 theAbsorptionProcess=new G4OpAbsorption(); 00066 theRayleighScattering=new G4OpRayleigh(); 00067 theBoundaryProcess=new G4OpBoundaryProcess("OpBoundary"); 00068 theWLSProcess=new G4OpWLS(); 00069 00070 // set the verbosity level 00071 theAbsorptionProcess->SetVerboseLevel(verboseLevel); 00072 theBoundaryProcess->SetVerboseLevel(verboseLevel); 00073 00074 G4ProcessManager * pManager = 0; 00075 00076 pManager = G4OpticalPhoton::OpticalPhoton()->GetProcessManager(); 00077 pManager->AddDiscreteProcess(theAbsorptionProcess); 00078 pManager->AddDiscreteProcess(theRayleighScattering); 00079 theBoundaryProcess->SetModel(unified); 00080 pManager->AddDiscreteProcess(theBoundaryProcess); 00081 pManager->AddDiscreteProcess(theWLSProcess); 00082 00083 theScintProcess->SetScintillationYieldFactor(1.); 00084 theScintProcess->SetScintillationExcitationRatio(0.0); 00085 theScintProcess->SetTrackSecondariesFirst(true); 00086 00087 theParticleIterator->reset(); 00088 while( (*theParticleIterator)() ) 00089 { 00090 G4ParticleDefinition* particle = theParticleIterator->value(); 00091 pManager = particle->GetProcessManager(); 00092 // if(theCerenkovProcess->IsApplicable(*particle)) 00093 // { 00094 // pManager->AddContinuousProcess(theCerenkovProcess); 00095 // } 00096 if(theScintProcess->IsApplicable(*particle)) 00097 { 00098 pManager->AddProcess(theScintProcess); 00099 pManager->SetProcessOrderingToLast(theScintProcess,idxAtRest); 00100 pManager->SetProcessOrderingToLast(theScintProcess,idxPostStep); 00101 } 00102 } 00103 00104 wasActivated = true; 00105 }
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] |