00001 // 00003 // // 00004 // Title: Optical physics for a Linear Collider Detector // 00005 // Date: // 00006 // Author: // 00007 // // 00009 // 00010 00011 #ifndef LCOpticalPhysics_h 00012 #define LCOpticalPhysics_h 1 00013 00014 #include "G4VPhysicsConstructor.hh" 00015 #include "G4Cerenkov.hh" 00016 #include "G4Scintillation.hh" 00017 #include "G4OpAbsorption.hh" 00018 #include "G4OpRayleigh.hh" 00019 #include "G4OpBoundaryProcess.hh" 00020 #include "G4ProcessManager.hh" 00021 00022 class LCOpticalPhysics : public G4VPhysicsConstructor 00023 { 00024 public: 00025 LCOpticalPhysics(const G4String& name = "optical"); 00026 virtual ~LCOpticalPhysics(); 00027 00028 // This method will be invoked in the Construct() method. 00029 // each particle type will be instantiated 00030 virtual void ConstructParticle(); 00031 // This method will be invoked in the Construct() method. 00032 // each physics process will be instantiated and 00033 // registered to the process manager of each particle type 00034 virtual void ConstructProcess(); 00035 //these methods Construct physics processes and register them 00036 void ConstructOp(); 00037 //for the Messenger (not using it in slic) 00038 //void SetVerbose(G4int); 00039 //void SetNbOfPhotonsCerenkov(G4int); 00040 00041 protected: 00042 G4Cerenkov* theCerenkovProcess; 00043 G4Scintillation* theScintillationProcess; 00044 G4OpAbsorption* theAbsorptionProcess; 00045 G4OpRayleigh* theRayleighScatteringProcess; 00046 G4OpBoundaryProcess* theBoundaryProcess; 00047 }; 00048 00049 00050 #endif 00051 00052 00053 00054 00055 00056 00057 00058
1.5.4