Warning, file /include/Geant4/G4ChannelingMaterialData.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 #ifndef G4ChannelingMaterialData_h
0029 #define G4ChannelingMaterialData_h 1
0030
0031 #include "G4ios.hh"
0032 #include "globals.hh"
0033
0034 #include "G4VMaterialExtension.hh"
0035 #include "G4ChannelingECHARM.hh"
0036 #include "G4StepPoint.hh"
0037 #include "G4Track.hh"
0038 #include <unordered_map>
0039 #include "G4PhysicsLinearVector.hh"
0040
0041 class G4ChannelingMaterialData : public G4VMaterialExtension{
0042 public:
0043
0044 G4ChannelingMaterialData(const G4String&);
0045 virtual ~G4ChannelingMaterialData();
0046
0047 public:
0048 void Print() const {G4cout << "Channeling Material Data" << G4endl;};
0049 void SetFilename(const G4String&);
0050 void SetFilenameElement(const G4String&,std::string);
0051
0052 public:
0053 G4ChannelingECHARM* GetPot() {return fPotential;};
0054 G4ChannelingECHARM* GetEFX() {return fElectricFieldX;};
0055 G4ChannelingECHARM* GetEFY() {return fElectricFieldY;};
0056 G4ChannelingECHARM* GetNuD() {return fNucleiDensity;};
0057 G4ChannelingECHARM* GetElD() {return fElectronDensity;};
0058
0059 private:
0060 G4ChannelingECHARM* fPotential;
0061 G4ChannelingECHARM* fElectricFieldX;
0062 G4ChannelingECHARM* fElectricFieldY;
0063 G4ChannelingECHARM* fNucleiDensity;
0064 G4ChannelingECHARM* fElectronDensity;
0065
0066 public:
0067 G4ChannelingECHARM* GetPotEl(std::string name) {return fPotentialElement[name];};
0068 G4ChannelingECHARM* GetEFXEl(std::string name) {return fElectricFieldXElement[name];};
0069 G4ChannelingECHARM* GetEFYEl(std::string name) {return fElectricFieldYElement[name];};
0070 G4ChannelingECHARM* GetNuDEl(std::string name) {return fNucleiDensityElement[name];};
0071 G4ChannelingECHARM* GetElDEl(std::string name) {return fElectronDensityElement[name];};
0072
0073 private:
0074 std::unordered_map<std::string,G4ChannelingECHARM*> fPotentialElement;
0075 std::unordered_map<std::string,G4ChannelingECHARM*> fElectricFieldXElement;
0076 std::unordered_map<std::string,G4ChannelingECHARM*> fElectricFieldYElement;
0077 std::unordered_map<std::string,G4ChannelingECHARM*> fNucleiDensityElement;
0078 std::unordered_map<std::string,G4ChannelingECHARM*> fElectronDensityElement;
0079
0080 public:
0081 virtual G4bool IsBent() {
0082 return bIsBent;
0083 };
0084
0085 virtual G4ThreeVector GetBR(G4ThreeVector& v3) {
0086 return G4ThreeVector(fVectorR->Value(v3.z()),0.,0.);
0087 };
0088 virtual void SetBR(const G4String&);
0089 virtual void SetBR(G4double);
0090
0091 protected:
0092 G4PhysicsVector* fVectorR;
0093 G4bool bIsBent;
0094 };
0095
0096 #endif
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106