Geant4-11
Public Member Functions | Protected Attributes | Private Attributes
G4ChannelingMaterialData Class Reference

#include <G4ChannelingMaterialData.hh>

Inheritance diagram for G4ChannelingMaterialData:
G4VMaterialExtension

Public Member Functions

 G4ChannelingMaterialData (const G4String &)
 
virtual G4ThreeVector GetBR (G4ThreeVector &v3)
 
G4ChannelingECHARMGetEFX ()
 
G4ChannelingECHARMGetEFXEl (std::string name)
 
G4ChannelingECHARMGetEFY ()
 
G4ChannelingECHARMGetEFYEl (std::string name)
 
G4ChannelingECHARMGetElD ()
 
G4ChannelingECHARMGetElDEl (std::string name)
 
const std::size_t & GetHash () const
 
const G4StringGetName () const
 
G4ChannelingECHARMGetNuD ()
 
G4ChannelingECHARMGetNuDEl (std::string name)
 
G4ChannelingECHARMGetPot ()
 
G4ChannelingECHARMGetPotEl (std::string name)
 
virtual G4bool IsBent ()
 
void Print () const
 
virtual void SetBR (const G4String &)
 
virtual void SetBR (G4double)
 
void SetFilename (const G4String &)
 
void SetFilenameElement (const G4String &, std::string)
 
virtual ~G4ChannelingMaterialData ()
 

Protected Attributes

G4bool bIsBent
 
const std::size_t fHash
 
const G4StringfName
 
G4PhysicsVectorfVectorR
 

Private Attributes

G4ChannelingECHARMfElectricFieldX
 
std::unordered_map< std::string, G4ChannelingECHARM * > fElectricFieldXElement
 
G4ChannelingECHARMfElectricFieldY
 
std::unordered_map< std::string, G4ChannelingECHARM * > fElectricFieldYElement
 
G4ChannelingECHARMfElectronDensity
 
std::unordered_map< std::string, G4ChannelingECHARM * > fElectronDensityElement
 
G4ChannelingECHARMfNucleiDensity
 
std::unordered_map< std::string, G4ChannelingECHARM * > fNucleiDensityElement
 
G4ChannelingECHARMfPotential
 
std::unordered_map< std::string, G4ChannelingECHARM * > fPotentialElement
 

Detailed Description

Definition at line 41 of file G4ChannelingMaterialData.hh.

Constructor & Destructor Documentation

◆ G4ChannelingMaterialData()

G4ChannelingMaterialData::G4ChannelingMaterialData ( const G4String name)

Definition at line 36 of file G4ChannelingMaterialData.cc.

36 :
38fPotential(0),
43fVectorR(0),
44bIsBent(false){;}
G4ChannelingECHARM * fNucleiDensity
G4ChannelingECHARM * fElectricFieldX
G4ChannelingECHARM * fElectricFieldY
G4ChannelingECHARM * fElectronDensity
G4VMaterialExtension(const G4String &name)
const char * name(G4int ptype)

◆ ~G4ChannelingMaterialData()

G4ChannelingMaterialData::~G4ChannelingMaterialData ( )
virtual

Definition at line 128 of file G4ChannelingMaterialData.cc.

128{;}

Member Function Documentation

◆ GetBR()

virtual G4ThreeVector G4ChannelingMaterialData::GetBR ( G4ThreeVector v3)
inlinevirtual

Definition at line 85 of file G4ChannelingMaterialData.hh.

85 {
86 return G4ThreeVector(fVectorR->Value(v3.z()),0.,0.);
87 };
CLHEP::Hep3Vector G4ThreeVector
double z() const
G4double Value(const G4double energy, std::size_t &lastidx) const

References fVectorR, G4PhysicsVector::Value(), and CLHEP::Hep3Vector::z().

Referenced by G4Channeling::PostStepDoIt(), and G4Channeling::UpdateParameters().

◆ GetEFX()

G4ChannelingECHARM * G4ChannelingMaterialData::GetEFX ( )
inline

Definition at line 54 of file G4ChannelingMaterialData.hh.

54{return fElectricFieldX;};

References fElectricFieldX.

Referenced by G4Channeling::UpdateParameters().

◆ GetEFXEl()

G4ChannelingECHARM * G4ChannelingMaterialData::GetEFXEl ( std::string  name)
inline

Definition at line 68 of file G4ChannelingMaterialData.hh.

std::unordered_map< std::string, G4ChannelingECHARM * > fElectricFieldXElement

References fElectricFieldXElement, and G4InuclParticleNames::name().

◆ GetEFY()

G4ChannelingECHARM * G4ChannelingMaterialData::GetEFY ( )
inline

Definition at line 55 of file G4ChannelingMaterialData.hh.

55{return fElectricFieldY;};

References fElectricFieldY.

Referenced by G4Channeling::UpdateParameters().

◆ GetEFYEl()

G4ChannelingECHARM * G4ChannelingMaterialData::GetEFYEl ( std::string  name)
inline

Definition at line 69 of file G4ChannelingMaterialData.hh.

std::unordered_map< std::string, G4ChannelingECHARM * > fElectricFieldYElement

References fElectricFieldYElement, and G4InuclParticleNames::name().

◆ GetElD()

G4ChannelingECHARM * G4ChannelingMaterialData::GetElD ( )
inline

Definition at line 57 of file G4ChannelingMaterialData.hh.

57{return fElectronDensity;};

References fElectronDensity.

Referenced by G4Channeling::UpdateParameters().

◆ GetElDEl()

G4ChannelingECHARM * G4ChannelingMaterialData::GetElDEl ( std::string  name)
inline

Definition at line 71 of file G4ChannelingMaterialData.hh.

std::unordered_map< std::string, G4ChannelingECHARM * > fElectronDensityElement

References fElectronDensityElement, and G4InuclParticleNames::name().

◆ GetHash()

const std::size_t & G4VMaterialExtension::GetHash ( ) const
inlineinherited

Definition at line 71 of file G4VMaterialExtension.hh.

71{ return fHash;}

References G4VMaterialExtension::fHash.

◆ GetName()

const G4String & G4VMaterialExtension::GetName ( ) const
inlineinherited

Definition at line 73 of file G4VMaterialExtension.hh.

73{ return fName; }

References G4VMaterialExtension::fName.

◆ GetNuD()

G4ChannelingECHARM * G4ChannelingMaterialData::GetNuD ( )
inline

Definition at line 56 of file G4ChannelingMaterialData.hh.

56{return fNucleiDensity;};

References fNucleiDensity.

Referenced by G4Channeling::UpdateParameters().

◆ GetNuDEl()

G4ChannelingECHARM * G4ChannelingMaterialData::GetNuDEl ( std::string  name)
inline

Definition at line 70 of file G4ChannelingMaterialData.hh.

std::unordered_map< std::string, G4ChannelingECHARM * > fNucleiDensityElement

References fNucleiDensityElement, and G4InuclParticleNames::name().

◆ GetPot()

G4ChannelingECHARM * G4ChannelingMaterialData::GetPot ( )
inline

Definition at line 53 of file G4ChannelingMaterialData.hh.

53{return fPotential;};

References fPotential.

Referenced by G4Channeling::UpdateParameters().

◆ GetPotEl()

G4ChannelingECHARM * G4ChannelingMaterialData::GetPotEl ( std::string  name)
inline

Definition at line 67 of file G4ChannelingMaterialData.hh.

67{return fPotentialElement[name];};
std::unordered_map< std::string, G4ChannelingECHARM * > fPotentialElement

References fPotentialElement, and G4InuclParticleNames::name().

◆ IsBent()

virtual G4bool G4ChannelingMaterialData::IsBent ( )
inlinevirtual

Definition at line 81 of file G4ChannelingMaterialData.hh.

81 {
82 return bIsBent;
83 };

References bIsBent.

Referenced by G4Channeling::PostStepDoIt(), and G4Channeling::UpdateParameters().

◆ Print()

void G4ChannelingMaterialData::Print ( ) const
inlinevirtual

Implements G4VMaterialExtension.

Definition at line 48 of file G4ChannelingMaterialData.hh.

48{G4cout << "Channeling Material Data" << G4endl;};
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout

References G4cout, and G4endl.

◆ SetBR() [1/2]

void G4ChannelingMaterialData::SetBR ( const G4String filename)
virtual

Definition at line 102 of file G4ChannelingMaterialData.cc.

102 {
103 std::ifstream vFileIn;
104 int points;
105 float maximum;
106 vFileIn.open(filename);
107 vFileIn >> points >> maximum;
108
109 fVectorR = new G4PhysicsLinearVector(0,maximum * CLHEP::millimeter,points);
110 double vTempX;
111 double maximumY = -DBL_MAX;
112 double minimumY = +DBL_MAX;
113 for(G4int i0=0;i0<points; i0++){
114 vFileIn >> vTempX;
115 if(vTempX>maximumY) maximumY = vTempX;
116 if(vTempX<minimumY) minimumY = vTempX;
117 fVectorR->PutValue(i0,vTempX * CLHEP::meter);
118 }
119 G4cout << "G4ChannelingMaterialData::SetBR()" << G4endl;
120 G4cout << "Filename: " << filename << G4endl;
121 G4cout << "Point: " << points << " - Length [mm]: " << maximum << G4endl;
122 G4cout << "Maximum Radius [m]: " << maximumY << " - Minimum Radius [m]: " << minimumY << G4endl;
123 bIsBent = true;
124}
int G4int
Definition: G4Types.hh:85
void PutValue(const std::size_t index, const G4double value)
static constexpr double meter
Definition: SystemOfUnits.h:71
static constexpr double millimeter
Definition: SystemOfUnits.h:63
#define DBL_MAX
Definition: templates.hh:62

References bIsBent, DBL_MAX, fVectorR, G4cout, G4endl, CLHEP::meter, CLHEP::millimeter, and G4PhysicsVector::PutValue().

◆ SetBR() [2/2]

void G4ChannelingMaterialData::SetBR ( G4double  val)
virtual

Definition at line 93 of file G4ChannelingMaterialData.cc.

93 {
95 fVectorR->PutValue(0,val);
96 fVectorR->PutValue(1,val);
97 bIsBent = true;
98}

References bIsBent, DBL_MAX, fVectorR, and G4PhysicsVector::PutValue().

◆ SetFilename()

void G4ChannelingMaterialData::SetFilename ( const G4String fileName)

Definition at line 48 of file G4ChannelingMaterialData.cc.

48 {
49 G4String filePot = fileName + "_pot.txt";
50 G4String fileEFX = fileName + "_efx.txt";
51 G4String fileEFY = fileName + "_efy.txt";
52 G4String fileAtD = fileName + "_atd.txt";
53 G4String fileElD = fileName + "_eld.txt";
54
58 fNucleiDensity = new G4ChannelingECHARM(fileAtD,1.);
59 fElectronDensity = new G4ChannelingECHARM(fileElD,1.);
60
61 G4cout << filePot << G4endl;
62 G4cout << fileEFX << G4endl;
63 G4cout << fileEFY << G4endl;
64 G4cout << fileAtD << G4endl;
65 G4cout << fileElD << G4endl;
66}
static constexpr double eV
static constexpr double m

References CLHEP::eV, fElectricFieldX, fElectricFieldY, fElectronDensity, fNucleiDensity, fPotential, G4cout, G4endl, and CLHEP::m.

◆ SetFilenameElement()

void G4ChannelingMaterialData::SetFilenameElement ( const G4String fileName,
std::string  elementName 
)

Definition at line 70 of file G4ChannelingMaterialData.cc.

70 {
71 G4String filePot = fileName + "_pot.txt";
72 G4String fileEFX = fileName + "_efx.txt";
73 G4String fileEFY = fileName + "_efy.txt";
74 G4String fileAtD = fileName + "_atd.txt";
75 G4String fileElD = fileName + "_eld.txt";
76
77 fPotentialElement[elementName] = new G4ChannelingECHARM(filePot,CLHEP::eV);
80 fNucleiDensityElement[elementName] = new G4ChannelingECHARM(fileAtD,1.);
81 fElectronDensityElement[elementName] = new G4ChannelingECHARM(fileElD,1.);
82
83 G4cout << filePot << G4endl;
84 G4cout << fileEFX << G4endl;
85 G4cout << fileEFY << G4endl;
86 G4cout << fileAtD << G4endl;
87 G4cout << fileElD << G4endl;
88}

References CLHEP::eV, fElectricFieldXElement, fElectricFieldYElement, fElectronDensityElement, fNucleiDensityElement, fPotentialElement, G4cout, G4endl, and CLHEP::m.

Field Documentation

◆ bIsBent

G4bool G4ChannelingMaterialData::bIsBent
protected

Definition at line 93 of file G4ChannelingMaterialData.hh.

Referenced by IsBent(), and SetBR().

◆ fElectricFieldX

G4ChannelingECHARM* G4ChannelingMaterialData::fElectricFieldX
private

Definition at line 61 of file G4ChannelingMaterialData.hh.

Referenced by GetEFX(), and SetFilename().

◆ fElectricFieldXElement

std::unordered_map<std::string,G4ChannelingECHARM*> G4ChannelingMaterialData::fElectricFieldXElement
private

Definition at line 75 of file G4ChannelingMaterialData.hh.

Referenced by GetEFXEl(), and SetFilenameElement().

◆ fElectricFieldY

G4ChannelingECHARM* G4ChannelingMaterialData::fElectricFieldY
private

Definition at line 62 of file G4ChannelingMaterialData.hh.

Referenced by GetEFY(), and SetFilename().

◆ fElectricFieldYElement

std::unordered_map<std::string,G4ChannelingECHARM*> G4ChannelingMaterialData::fElectricFieldYElement
private

Definition at line 76 of file G4ChannelingMaterialData.hh.

Referenced by GetEFYEl(), and SetFilenameElement().

◆ fElectronDensity

G4ChannelingECHARM* G4ChannelingMaterialData::fElectronDensity
private

Definition at line 64 of file G4ChannelingMaterialData.hh.

Referenced by GetElD(), and SetFilename().

◆ fElectronDensityElement

std::unordered_map<std::string,G4ChannelingECHARM*> G4ChannelingMaterialData::fElectronDensityElement
private

Definition at line 78 of file G4ChannelingMaterialData.hh.

Referenced by GetElDEl(), and SetFilenameElement().

◆ fHash

const std::size_t G4VMaterialExtension::fHash
protectedinherited

Definition at line 79 of file G4VMaterialExtension.hh.

Referenced by G4VMaterialExtension::GetHash().

◆ fName

const G4String& G4VMaterialExtension::fName
protectedinherited

Definition at line 76 of file G4VMaterialExtension.hh.

Referenced by G4VMaterialExtension::GetName().

◆ fNucleiDensity

G4ChannelingECHARM* G4ChannelingMaterialData::fNucleiDensity
private

Definition at line 63 of file G4ChannelingMaterialData.hh.

Referenced by GetNuD(), and SetFilename().

◆ fNucleiDensityElement

std::unordered_map<std::string,G4ChannelingECHARM*> G4ChannelingMaterialData::fNucleiDensityElement
private

Definition at line 77 of file G4ChannelingMaterialData.hh.

Referenced by GetNuDEl(), and SetFilenameElement().

◆ fPotential

G4ChannelingECHARM* G4ChannelingMaterialData::fPotential
private

Definition at line 60 of file G4ChannelingMaterialData.hh.

Referenced by GetPot(), and SetFilename().

◆ fPotentialElement

std::unordered_map<std::string,G4ChannelingECHARM*> G4ChannelingMaterialData::fPotentialElement
private

Definition at line 74 of file G4ChannelingMaterialData.hh.

Referenced by GetPotEl(), and SetFilenameElement().

◆ fVectorR

G4PhysicsVector* G4ChannelingMaterialData::fVectorR
protected

Definition at line 92 of file G4ChannelingMaterialData.hh.

Referenced by GetBR(), and SetBR().


The documentation for this class was generated from the following files: