Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/optical/OpNovice2/include/Run.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/extended/optical/OpNovice2/include/Run.hh (Version 11.3.0) and /examples/extended/optical/OpNovice2/include/Run.hh (Version 9.4.p3)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 /// \file optical/OpNovice2/include/RunAction.    
 27 /// \brief Definition of the RunAction class      
 28 //                                                
 29 //....oooOO0OOooo........oooOO0OOooo........oo    
 30 //....oooOO0OOooo........oooOO0OOooo........oo    
 31                                                   
 32 #ifndef Run_h                                     
 33 #define Run_h 1                                   
 34                                                   
 35 #include "G4OpBoundaryProcess.hh"                 
 36 #include "G4Run.hh"                               
 37                                                   
 38 class G4ParticleDefinition;                       
 39                                                   
 40 //....oooOO0OOooo........oooOO0OOooo........oo    
 41 class Run : public G4Run                          
 42 {                                                 
 43   public:                                         
 44     Run();                                        
 45     ~Run() override = default;                    
 46                                                   
 47     void SetPrimary(G4ParticleDefinition* part    
 48                     G4double polarization);       
 49                                                   
 50     //  particle energy                           
 51     void AddCerenkovEnergy(G4double en) { fCer    
 52     void AddScintillationEnergy(G4double en) {    
 53     void AddWLSAbsorptionEnergy(G4double en) {    
 54     void AddWLSEmissionEnergy(G4double en) { f    
 55     void AddWLS2AbsorptionEnergy(G4double en)     
 56     void AddWLS2EmissionEnergy(G4double en) {     
 57                                                   
 58     // number of particles                        
 59     void AddCerenkov() { fCerenkovCount += 1;     
 60     void AddScintillation() { fScintCount += 1    
 61     void AddRayleigh() { fRayleighCount += 1;     
 62     void AddWLSAbsorption() { fWLSAbsorptionCo    
 63     void AddWLSEmission() { fWLSEmissionCount     
 64     void AddWLS2Absorption() { fWLS2Absorption    
 65     void AddWLS2Emission() { fWLS2EmissionCoun    
 66                                                   
 67     void AddOpAbsorption() { fOpAbsorption +=     
 68     void AddOpAbsorptionPrior() { fOpAbsorptio    
 69                                                   
 70     void AddFresnelRefraction() { fBoundaryPro    
 71     void AddFresnelReflection() { fBoundaryPro    
 72     void AddTransmission() { fBoundaryProcs[Tr    
 73     void AddTotalInternalReflection() { fBound    
 74     void AddLambertianReflection() { fBoundary    
 75     void AddLobeReflection() { fBoundaryProcs[    
 76     void AddSpikeReflection() { fBoundaryProcs    
 77     void AddBackScattering() { fBoundaryProcs[    
 78     void AddAbsorption() { fBoundaryProcs[Abso    
 79     void AddDetection() { fBoundaryProcs[Detec    
 80     void AddNotAtBoundary() { fBoundaryProcs[N    
 81     void AddSameMaterial() { fBoundaryProcs[Sa    
 82     void AddStepTooSmall() { fBoundaryProcs[St    
 83     void AddNoRINDEX() { fBoundaryProcs[NoRIND    
 84                                                   
 85     void AddTotalSurface() { fTotalSurface +=     
 86     void AddPolishedLumirrorAirReflection() {     
 87     void AddPolishedLumirrorGlueReflection()      
 88     {                                             
 89       fBoundaryProcs[PolishedLumirrorGlueRefle    
 90     }                                             
 91     void AddPolishedAirReflection() { fBoundar    
 92     void AddPolishedTeflonAirReflection() { fB    
 93     void AddPolishedTiOAirReflection() { fBoun    
 94     void AddPolishedTyvekAirReflection() { fBo    
 95     void AddPolishedVM2000AirReflection() { fB    
 96     void AddPolishedVM2000GlueReflection() { f    
 97                                                   
 98     void AddEtchedLumirrorAirReflection() { fB    
 99     void AddEtchedLumirrorGlueReflection() { f    
100     void AddEtchedAirReflection() { fBoundaryP    
101     void AddEtchedTeflonAirReflection() { fBou    
102     void AddEtchedTiOAirReflection() { fBounda    
103     void AddEtchedTyvekAirReflection() { fBoun    
104     void AddEtchedVM2000AirReflection() { fBou    
105     void AddEtchedVM2000GlueReflection() { fBo    
106                                                   
107     void AddGroundLumirrorAirReflection() { fB    
108     void AddGroundLumirrorGlueReflection() { f    
109     void AddGroundAirReflection() { fBoundaryP    
110     void AddGroundTeflonAirReflection() { fBou    
111     void AddGroundTiOAirReflection() { fBounda    
112     void AddGroundTyvekAirReflection() { fBoun    
113     void AddGroundVM2000AirReflection() { fBou    
114     void AddGroundVM2000GlueReflection() { fBo    
115                                                   
116     void AddDichroic() { fBoundaryProcs[Dichro    
117     void AddCoatedDielectricRefraction() { fBo    
118     void AddCoatedDielectricReflection() { fBo    
119     void AddCoatedDielectricFrustratedTransmis    
120     {                                             
121       fBoundaryProcs[CoatedDielectricFrustrate    
122     }                                             
123                                                   
124     void Merge(const G4Run*) override;            
125                                                   
126     void EndOfRun();                              
127                                                   
128   private:                                        
129     // primary particle                           
130     G4ParticleDefinition* fParticle = nullptr;    
131     G4double fEkin = -1.;                         
132     G4bool fPolarized = false;                    
133     G4double fPolarization = 0.;                  
134                                                   
135     G4double fCerenkovEnergy = 0.;                
136     G4double fScintEnergy = 0.;                   
137     G4double fWLSAbsorptionEnergy = 0.;           
138     G4double fWLSEmissionEnergy = 0.;             
139     G4double fWLS2AbsorptionEnergy = 0.;          
140     G4double fWLS2EmissionEnergy = 0.;            
141                                                   
142     // number of particles                        
143     G4int fCerenkovCount = 0;                     
144     G4int fScintCount = 0;                        
145     G4int fWLSAbsorptionCount = 0;                
146     G4int fWLSEmissionCount = 0;                  
147     G4int fWLS2AbsorptionCount = 0;               
148     G4int fWLS2EmissionCount = 0;                 
149     // number of events                           
150     G4int fRayleighCount = 0;                     
151                                                   
152     // non-boundary processes                     
153     G4int fOpAbsorption = 0;                      
154                                                   
155     // prior to boundary:                         
156     G4int fOpAbsorptionPrior = 0;                 
157                                                   
158     // boundary proc                              
159     std::vector<G4int> fBoundaryProcs;            
160                                                   
161     G4int fTotalSurface = 0;                      
162 };                                                
163                                                   
164 #endif /* Run_h */                                
165