/////////////////////////////////////////////////////////////////////////////// // // This extends the ConcentratorOpticalModel with a simple ageing // model. The petal is aged above and below a border in local z. // // Author: Phil G Jones // // REVISION HISTORY: // 05/11/2010 : P G Jones - New file // 2014-08-05 : P G Jones - Updated doxygen. // /////////////////////////////////////////////////////////////////////////////// #ifndef __RAT_ConcentratorAgedOpticalModel_hh__ #define __RAT_ConcentratorAgedOpticalModel_hh__ #include class G4Region; class G4LogicalVolume; namespace RAT { class ConcentratorAgedOpticalModel : public ConcentratorOpticalModel { public: // The constructor invoked with the model name and applicable region // // name: name of this model // region: region this model is applied in // params: parameters that control this models settings, index to RATDB // volume: the volume this model applies to ConcentratorAgedOpticalModel( const G4String name, G4Region* const region, const std::string params, G4LogicalVolume* const volume ); protected: // Return the reflection probability for the angle and wavelength. // // position: position in local coordinates // localTheta: photon angle to the boundary, in radians // energy: energy of the photon in MeV // polarisation: polarisation in local coordinates, as defined // in OpticalModelBase.hh // specularR: specular reflection probability // diffuseR: diffuse reflection probability virtual void GetReflectionProb( const G4ThreeVector& position, const G4double localTheta, const G4double energy, const EPolarisation polarisation, G4double& specularR, G4double& diffuseR ); G4double fDegredationBorder; // Local z coordinate of the ageing change G4MaterialPropertyVector* fUpperDegredation; // Upper degredation value G4MaterialPropertyVector* fLowerDegredation; // Lower degredation value }; } //::RAT #endif