CMS 3D CMS Logo

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

#include <LaserOpticalPhysicsList.h>

Inheritance diagram for LaserOpticalPhysicsList:

Public Member Functions

void ConstructParticle () override
 construct Optical Photons More...
 
void ConstructProcess () override
 construct Optical Processes More...
 
 LaserOpticalPhysicsList (const G4String &name="optical")
 constructor More...
 
 ~LaserOpticalPhysicsList () override
 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 24 of file LaserOpticalPhysicsList.h.

Constructor & Destructor Documentation

◆ LaserOpticalPhysicsList()

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

constructor

Definition at line 21 of file LaserOpticalPhysicsList.cc.

References gather_cfg::cout, and HLT_2024v12_cff::verboseLevel.

22  : G4VPhysicsConstructor(name),
23  wasActivated(false),
29  theWLSProcess() {
30  if (verboseLevel > 0)
31  std::cout << "<LaserOpticalPhysicsList::LaserOpticalPhysicsList(...)> "
32  "entering constructor ..."
33  << std::endl;
34 }
G4OpBoundaryProcess * theBoundaryProcess
G4OpAbsorption * theAbsorptionProcess

◆ ~LaserOpticalPhysicsList()

LaserOpticalPhysicsList::~LaserOpticalPhysicsList ( )
override

destructor

Definition at line 36 of file LaserOpticalPhysicsList.cc.

References gather_cfg::cout, ecalTB2006H4_GenSimDigiReco_cfg::G4cout, theAbsorptionProcess, theBoundaryProcess, theRayleighScattering, theScintProcess, theWLSProcess, and HLT_2024v12_cff::verboseLevel.

36  {
37  if (verboseLevel > 0) {
38  std::cout << "<LaserOpticalPhysicsList::~LaserOpticalPhysicsList()> "
39  "entering destructor ... "
40  << std::endl;
41  std::cout << " deleting the processes ... ";
42  }
43  if (theWLSProcess != nullptr) {
44  delete theWLSProcess;
45  }
46  if (theBoundaryProcess != nullptr) {
47  delete theBoundaryProcess;
48  }
49  if (theRayleighScattering != nullptr) {
50  delete theRayleighScattering;
51  }
52  if (theAbsorptionProcess != nullptr) {
53  delete theAbsorptionProcess;
54  }
55  if (theScintProcess != nullptr) {
56  delete theScintProcess;
57  }
58  if (verboseLevel > 0)
59  G4cout << " done " << G4endl;
60 }
G4OpBoundaryProcess * theBoundaryProcess
G4OpAbsorption * theAbsorptionProcess

Member Function Documentation

◆ ConstructParticle()

void LaserOpticalPhysicsList::ConstructParticle ( )
override

construct Optical Photons

Definition at line 62 of file LaserOpticalPhysicsList.cc.

References ecalTB2006H4_GenSimDigiReco_cfg::G4cout, and HLT_2024v12_cff::verboseLevel.

62  {
63  if (verboseLevel > 0)
64  G4cout << "<LaserOpticalPhysicsList::ConstructParticle()>: constructing "
65  "the optical photon ... "
66  << G4endl;
67 
68  // optical photon
69  G4OpticalPhoton::OpticalPhotonDefinition();
70 }

◆ ConstructProcess()

void LaserOpticalPhysicsList::ConstructProcess ( )
override

construct Optical Processes

Definition at line 72 of file LaserOpticalPhysicsList.cc.

References ecalTB2006H4_GenSimDigiReco_cfg::G4cout, HiggsValidation_cfi::particleName, EmParticleList::PartNames(), TableParser::table, theAbsorptionProcess, theBoundaryProcess, theRayleighScattering, theScintProcess, theWLSProcess, HLT_2024v12_cff::verboseLevel, and wasActivated.

72  {
73  if (verboseLevel > 0)
74  G4cout << "<LaserOpticalPhysicsList::ConstructProcess()>: constructing "
75  "the physics ... "
76  << G4endl;
77 
78  theScintProcess = new G4Scintillation();
79  theAbsorptionProcess = new G4OpAbsorption();
80  theRayleighScattering = new G4OpRayleigh();
81  theBoundaryProcess = new G4OpBoundaryProcess("OpBoundary");
82  theWLSProcess = new G4OpWLS();
83 
84  // set the verbosity level
85  theAbsorptionProcess->SetVerboseLevel(verboseLevel);
86  theBoundaryProcess->SetVerboseLevel(verboseLevel);
87 
88  G4ProcessManager *pManager = nullptr;
89 
90  pManager = G4OpticalPhoton::OpticalPhoton()->GetProcessManager();
91  pManager->AddDiscreteProcess(theAbsorptionProcess);
92  pManager->AddDiscreteProcess(theRayleighScattering);
93  pManager->AddDiscreteProcess(theBoundaryProcess);
94  pManager->AddDiscreteProcess(theWLSProcess);
95 
96  theScintProcess->SetTrackSecondariesFirst(true);
97 
98  G4ParticleTable *table = G4ParticleTable::GetParticleTable();
99  EmParticleList emList;
100  for (const auto &particleName : emList.PartNames()) {
101  G4ParticleDefinition *particle = table->FindParticle(particleName);
102  pManager = particle->GetProcessManager();
103  if (theScintProcess->IsApplicable(*particle)) {
104  pManager->AddProcess(theScintProcess);
105  pManager->SetProcessOrderingToLast(theScintProcess, idxAtRest);
106  pManager->SetProcessOrderingToLast(theScintProcess, idxPostStep);
107  }
108  }
109 
110  wasActivated = true;
111 }
G4OpBoundaryProcess * theBoundaryProcess
const std::vector< G4String > & PartNames() const
G4OpAbsorption * theAbsorptionProcess

Member Data Documentation

◆ theAbsorptionProcess

G4OpAbsorption* LaserOpticalPhysicsList::theAbsorptionProcess
protected

Definition at line 42 of file LaserOpticalPhysicsList.h.

Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().

◆ theBoundaryProcess

G4OpBoundaryProcess* LaserOpticalPhysicsList::theBoundaryProcess
protected

Definition at line 44 of file LaserOpticalPhysicsList.h.

Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().

◆ theCerenkovProcess

G4Cerenkov* LaserOpticalPhysicsList::theCerenkovProcess
protected

Definition at line 41 of file LaserOpticalPhysicsList.h.

◆ theRayleighScattering

G4OpRayleigh* LaserOpticalPhysicsList::theRayleighScattering
protected

Definition at line 43 of file LaserOpticalPhysicsList.h.

Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().

◆ theScintProcess

G4Scintillation* LaserOpticalPhysicsList::theScintProcess
protected

Definition at line 40 of file LaserOpticalPhysicsList.h.

Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().

◆ theWLSProcess

G4OpWLS* LaserOpticalPhysicsList::theWLSProcess
protected

Definition at line 45 of file LaserOpticalPhysicsList.h.

Referenced by ConstructProcess(), and ~LaserOpticalPhysicsList().

◆ wasActivated

G4bool LaserOpticalPhysicsList::wasActivated
protected

Definition at line 38 of file LaserOpticalPhysicsList.h.

Referenced by ConstructProcess().