00001 // This file is part of the GenericLAND software library. 00002 // $Id: GLG4OpAttenuation.hh,v 1.1.1.1 2004/12/21 22:29:48 GLG4sim Exp $ 00003 // 00004 // "Attenuation" (absorption or scattering) of optical photons 00005 // 00006 // GenericLAND Simulation 00007 // 00008 // Original: Glenn Horton-Smith, Dec 2001 00009 // 00010 // GLG4OpAttenuation.hh 00011 // 00012 00013 #ifndef GLG4OpAttenuation_h 00014 #define GLG4OpAttenuation_h 1 00015 00016 ///////////// 00017 // Includes 00018 ///////////// 00019 00020 #include "G4OpAbsorption.hh" 00021 00022 ///////////////////// 00023 // Class Definition 00024 ///////////////////// 00025 00026 class GLG4OpAttenuation : public G4OpAbsorption 00027 { 00028 00029 private: 00030 00031 ////////////// 00032 // Operators 00033 ////////////// 00034 00035 // GLG4OpAttenuation& operator=(const GLG4OpAttenuation &right); 00036 00037 public: // Without description 00038 00039 //////////////////////////////// 00040 // Constructors and Destructor 00041 //////////////////////////////// 00042 00043 GLG4OpAttenuation(const G4String& processName = "Attenuation"); 00044 00045 // GLG4OpAttenuation(const GLG4OpAttenuation &right); 00046 00047 ~GLG4OpAttenuation(); 00048 00049 //////////// 00050 // Methods 00051 //////////// 00052 00053 // G4bool IsApplicable(const G4ParticleDefinition& aParticleType); 00054 // Returns true -> 'is applicable' only for an optical photon. 00055 00056 // G4double GetMeanFreePath(const G4Track& aTrack, 00057 // G4double , 00058 // G4ForceCondition* ); 00059 // Returns the absorption length for bulk absorption of optical 00060 // photons in media with a specified attenuation length. 00061 00062 public: // With description 00063 00064 G4VParticleChange* PostStepDoIt(const G4Track& aTrack, 00065 const G4Step& aStep); 00066 // This is the method implementing attenuation of optical 00067 // photons. Fraction of photons scattered or absorbed is 00068 // determined by the MaterialProperyVector "OPSCATFRAC". 00069 00070 }; 00071 00072 #endif /* GLG4OpAttenuation_h */