test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Attributes
LaserOpticalPhysicsList Class Reference

#include <LaserOpticalPhysicsList.h>

Inheritance diagram for LaserOpticalPhysicsList:

Public Member Functions

virtual void ConstructParticle ()
 construct Optical Photons More...
 
virtual void ConstructProcess ()
 construct Optical Processes More...
 
 LaserOpticalPhysicsList (const G4String &name="optical")
 constructor More...
 
virtual ~LaserOpticalPhysicsList ()
 destructor More...
 

Protected Attributes

G4OpAbsorption * theAbsorptionProcess
 
G4OpBoundaryProcess * theBoundaryProcess
 
G4Cerenkov * theCerenkovProcess
 
G4OpRayleigh * theRayleighScattering
 
G4Scintillation * theScintProcess
 
G4OpWLS * theWLSProcess
 
G4bool wasActivated
 

Detailed Description

Define the Optical processes for the Simulation of the Laser Alignment System

Date:
2007/06/11 14:44:28
Revision:
1.3
Author
Maarten Thomas

Definition at line 23 of file LaserOpticalPhysicsList.h.

Constructor & Destructor Documentation

LaserOpticalPhysicsList::LaserOpticalPhysicsList ( const G4String &  name = "optical")

constructor

Definition at line 18 of file LaserOpticalPhysicsList.cc.

References gather_cfg::cout.

19  : G4VPhysicsConstructor(name),
20  wasActivated(false),
21  theScintProcess(),
27 {
28  if (verboseLevel > 0)
29  std::cout << "<LaserOpticalPhysicsList::LaserOpticalPhysicsList(...)> entering constructor ..." << std::endl;
30 }
G4OpBoundaryProcess * theBoundaryProcess
tuple cout
Definition: gather_cfg.py:145
G4OpAbsorption * theAbsorptionProcess
LaserOpticalPhysicsList::~LaserOpticalPhysicsList ( )
virtual

destructor

Definition at line 32 of file LaserOpticalPhysicsList.cc.

References gather_cfg::cout, theAbsorptionProcess, theBoundaryProcess, theRayleighScattering, theScintProcess, and theWLSProcess.

33 {
34  if (verboseLevel > 0)
35  {
36  std::cout << "<LaserOpticalPhysicsList::~LaserOpticalPhysicsList()> entering destructor ... " << std::endl;
37  std::cout << " deleting the processes ... ";
38  }
39  if ( theWLSProcess != 0 ) { delete theWLSProcess; }
40  if ( theBoundaryProcess != 0 ) { delete theBoundaryProcess; }
41  if ( theRayleighScattering != 0 ) { delete theRayleighScattering; }
42  if ( theAbsorptionProcess != 0 ) { delete theAbsorptionProcess; }
43 // if ( theCerenkovProcess != 0 ) { delete theCerenkovProcess; }
44  if ( theScintProcess != 0 ) { delete theScintProcess; }
45  if (verboseLevel > 0)
46  std::cout << " done " << std::endl;
47 }
G4OpBoundaryProcess * theBoundaryProcess
tuple cout
Definition: gather_cfg.py:145
G4OpAbsorption * theAbsorptionProcess

Member Function Documentation

void LaserOpticalPhysicsList::ConstructParticle ( )
virtual

construct Optical Photons

Definition at line 49 of file LaserOpticalPhysicsList.cc.

References gather_cfg::cout.

50 {
51  if (verboseLevel > 0)
52  std::cout << "<LaserOpticalPhysicsList::ConstructParticle()>: constructing the optical photon ... " << std::endl;
53 
54  // optical photon
55  G4OpticalPhoton::OpticalPhotonDefinition();
56 }
tuple cout
Definition: gather_cfg.py:145
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.

59 {
60  if (verboseLevel > 0)
61  std::cout << "<LaserOpticalPhysicsList::ConstructProcess()>: constructing the physics ... " << std::endl;
62 
63  theScintProcess = new G4Scintillation();
64 // theCerenkovProcess=new G4Cerenkov();
65  theAbsorptionProcess=new G4OpAbsorption();
66  theRayleighScattering=new G4OpRayleigh();
67  theBoundaryProcess=new G4OpBoundaryProcess("OpBoundary");
68  theWLSProcess=new G4OpWLS();
69 
70  // set the verbosity level
71  theAbsorptionProcess->SetVerboseLevel(verboseLevel);
72  theBoundaryProcess->SetVerboseLevel(verboseLevel);
73 
74  G4ProcessManager * pManager = 0;
75 
76  pManager = G4OpticalPhoton::OpticalPhoton()->GetProcessManager();
77  pManager->AddDiscreteProcess(theAbsorptionProcess);
78  pManager->AddDiscreteProcess(theRayleighScattering);
79  //theBoundaryProcess->SetModel(unified);
80  pManager->AddDiscreteProcess(theBoundaryProcess);
81  pManager->AddDiscreteProcess(theWLSProcess);
82 
83  theScintProcess->SetScintillationYieldFactor(1.);
84  theScintProcess->SetScintillationExcitationRatio(0.0);
85  theScintProcess->SetTrackSecondariesFirst(true);
86 
87  aParticleIterator->reset();
88  while( (*aParticleIterator)() )
89  {
90  G4ParticleDefinition* particle = aParticleIterator->value();
91  pManager = particle->GetProcessManager();
92 // if(theCerenkovProcess->IsApplicable(*particle))
93 // {
94 // pManager->AddContinuousProcess(theCerenkovProcess);
95 // }
96  if(theScintProcess->IsApplicable(*particle))
97  {
98  pManager->AddProcess(theScintProcess);
99  pManager->SetProcessOrderingToLast(theScintProcess,idxAtRest);
100  pManager->SetProcessOrderingToLast(theScintProcess,idxPostStep);
101  }
102  }
103 
104  wasActivated = true;
105 }
G4OpBoundaryProcess * theBoundaryProcess
tuple cout
Definition: gather_cfg.py:145
G4OpAbsorption * theAbsorptionProcess

Member Data Documentation

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().