Warning, file /include/Geant4/G4XrayReflection.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 
0013 
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030 
0031 
0032 
0033 #ifndef G4XrayReflection_h
0034 #define G4XrayReflection_h 1
0035 
0036 #include "G4Gamma.hh"
0037 #include "G4VEmProcess.hh"
0038 #include "globals.hh"
0039 
0040 
0041 
0042 class G4ParticleDefinition;
0043 class G4VEmModel;
0044 class G4PropagatorInField;
0045 
0046 class G4XrayReflection : public G4VDiscreteProcess
0047 {
0048   public:  
0049     explicit G4XrayReflection(const G4String& processName = "XrayReflection",
0050                               G4ProcessType type = fElectromagnetic);
0051     ~G4XrayReflection() override = default;
0052 
0053     G4double GetMeanFreePath(const G4Track& track, G4double previousStepSize,
0054                              G4ForceCondition* condition) override;
0055 
0056     G4VParticleChange* PostStepDoIt(const G4Track& track, const G4Step& Step) override;
0057 
0058     G4bool IsApplicable(const G4ParticleDefinition&) override;
0059     void BuildPhysicsTable(const G4ParticleDefinition&) override;
0060 
0061     void ProcessDescription(std::ostream&) const override;
0062     void DumpInfo() const override { ProcessDescription(G4cout); }
0063 
0064     void SetSurfaceRoughness(const G4double value);
0065 
0066     G4double Reflectivity(const G4double GamEner, const G4double SinIncidentAngle,
0067                           const G4Material* theMat) const;
0068 
0069     G4int ReadHenkeXrayData(std::string ElName, std::vector<G4double>& Ephot,
0070                             std::vector<G4double>& f1, std::vector<G4double>& f2);
0071     void SaveHenkeDataAsMaterialProperty();  
0072 
0073   private:
0074     G4VPhysicalVolume* fLastVolume = nullptr;
0075     G4ThreeVector fSurfaceNormal;
0076     static G4double fSurfaceRoughness;  
0077 };
0078 
0079 #endif