Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4LatticePhysical Class Reference

#include <G4LatticePhysical.hh>

Public Member Functions

 G4LatticePhysical (const G4LatticeLogical *Lat=nullptr, const G4RotationMatrix *Rot=nullptr)
 
virtual ~G4LatticePhysical ()
 
void SetVerboseLevel (G4int vb)
 
G4double MapKtoV (G4int, G4ThreeVector) const
 
G4ThreeVector MapKtoVDir (G4int, G4ThreeVector) const
 
void SetLatticeLogical (const G4LatticeLogical *Lat)
 
void SetPhysicalOrientation (const G4RotationMatrix *Rot)
 
void SetLatticeOrientation (G4double, G4double)
 
void SetMillerOrientation (G4int, G4int, G4int)
 
const G4LatticeLogicalGetLattice () const
 
G4double GetScatteringConstant () const
 
G4double GetAnhDecConstant () const
 
G4double GetLDOS () const
 
G4double GetSTDOS () const
 
G4double GetFTDOS () const
 
G4double GetBeta () const
 
G4double GetGamma () const
 
G4double GetLambda () const
 
G4double GetMu () const
 
G4ThreeVector RotateToGlobal (const G4ThreeVector &dir) const
 
G4ThreeVector RotateToLocal (const G4ThreeVector &dir) const
 

Detailed Description

Definition at line 41 of file G4LatticePhysical.hh.

Constructor & Destructor Documentation

◆ G4LatticePhysical()

G4LatticePhysical::G4LatticePhysical ( const G4LatticeLogical Lat = nullptr,
const G4RotationMatrix Rot = nullptr 
)

Definition at line 49 of file G4LatticePhysical.cc.

51 : verboseLevel(0), fTheta(0), fPhi(0), fLattice(Lat) {
53}
void SetPhysicalOrientation(const G4RotationMatrix *Rot)

◆ ~G4LatticePhysical()

G4LatticePhysical::~G4LatticePhysical ( )
virtual

Definition at line 55 of file G4LatticePhysical.cc.

55{;}

Member Function Documentation

◆ GetAnhDecConstant()

G4double G4LatticePhysical::GetAnhDecConstant ( ) const
inline

Definition at line 63 of file G4LatticePhysical.hh.

63{ return fLattice->GetAnhDecConstant(); }
G4double GetAnhDecConstant() const

Referenced by G4PhononDownconversion::GetMeanFreePath().

◆ GetBeta()

G4double G4LatticePhysical::GetBeta ( ) const
inline

Definition at line 67 of file G4LatticePhysical.hh.

67{ return fLattice->GetBeta(); }
G4double GetBeta() const

Referenced by G4PhononDownconversion::PostStepDoIt().

◆ GetFTDOS()

G4double G4LatticePhysical::GetFTDOS ( ) const
inline

Definition at line 66 of file G4LatticePhysical.hh.

66{ return fLattice->GetFTDOS(); }
G4double GetFTDOS() const

Referenced by G4PhononScattering::PostStepDoIt().

◆ GetGamma()

G4double G4LatticePhysical::GetGamma ( ) const
inline

Definition at line 68 of file G4LatticePhysical.hh.

68{ return fLattice->GetGamma(); }
G4double GetGamma() const

Referenced by G4PhononDownconversion::PostStepDoIt().

◆ GetLambda()

G4double G4LatticePhysical::GetLambda ( ) const
inline

Definition at line 69 of file G4LatticePhysical.hh.

69{ return fLattice->GetLambda(); }
G4double GetLambda() const

Referenced by G4PhononDownconversion::PostStepDoIt().

◆ GetLattice()

const G4LatticeLogical * G4LatticePhysical::GetLattice ( ) const
inline

Definition at line 60 of file G4LatticePhysical.hh.

60{ return fLattice; }

◆ GetLDOS()

G4double G4LatticePhysical::GetLDOS ( ) const
inline

Definition at line 64 of file G4LatticePhysical.hh.

64{ return fLattice->GetLDOS(); }
G4double GetLDOS() const

Referenced by G4PhononScattering::PostStepDoIt().

◆ GetMu()

G4double G4LatticePhysical::GetMu ( ) const
inline

Definition at line 70 of file G4LatticePhysical.hh.

70{ return fLattice->GetMu(); }
G4double GetMu() const

Referenced by G4PhononDownconversion::PostStepDoIt().

◆ GetScatteringConstant()

G4double G4LatticePhysical::GetScatteringConstant ( ) const
inline

Definition at line 62 of file G4LatticePhysical.hh.

62{ return fLattice->GetScatteringConstant(); }
G4double GetScatteringConstant() const

Referenced by G4PhononScattering::GetMeanFreePath().

◆ GetSTDOS()

G4double G4LatticePhysical::GetSTDOS ( ) const
inline

Definition at line 65 of file G4LatticePhysical.hh.

65{ return fLattice->GetSTDOS(); }
G4double GetSTDOS() const

Referenced by G4PhononScattering::PostStepDoIt().

◆ MapKtoV()

G4double G4LatticePhysical::MapKtoV ( G4int  polarizationState,
G4ThreeVector  k 
) const

Definition at line 112 of file G4LatticePhysical.cc.

113 {
114 if(verboseLevel > 1)
115 {
116 G4cout << "G4LatticePhysical::MapKtoV " << k << G4endl;
117 }
118
119 k.rotate(yhat,fTheta).rotate(zhat, fPhi);
120 return fLattice->MapKtoV(polarizationState, k);
121}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
Hep3Vector & rotate(double, const Hep3Vector &)
Definition: ThreeVectorR.cc:24
virtual G4double MapKtoV(G4int, const G4ThreeVector &) const

Referenced by G4VPhononProcess::CreateSecondary(), G4LatticeManager::MapKtoV(), and G4PhononReflection::PostStepDoIt().

◆ MapKtoVDir()

G4ThreeVector G4LatticePhysical::MapKtoVDir ( G4int  polarizationState,
G4ThreeVector  k 
) const

Definition at line 126 of file G4LatticePhysical.cc.

127 {
128 if(verboseLevel > 1)
129 {
130 G4cout << "G4LatticePhysical::MapKtoVDir " << k << G4endl;
131 }
132
133 k.rotate(yhat,fTheta).rotate(zhat,fPhi);
134
135 G4ThreeVector VG = fLattice->MapKtoVDir(polarizationState, k);
136
137 return VG.rotate(zhat,-fPhi).rotate(yhat,-fTheta);
138}
virtual G4ThreeVector MapKtoVDir(G4int, const G4ThreeVector &) const

Referenced by G4VPhononProcess::CreateSecondary(), and G4LatticeManager::MapKtoVDir().

◆ RotateToGlobal()

G4ThreeVector G4LatticePhysical::RotateToGlobal ( const G4ThreeVector dir) const

Definition at line 145 of file G4LatticePhysical.cc.

145 {
146 if (verboseLevel>1) {
147 G4cout << "G4LatticePhysical::RotateToGlobal " << dir
148 << "\nusing fLocalToGlobal " << fLocalToGlobal
149 << G4endl;
150 }
151
152 G4ThreeVector result = fLocalToGlobal*dir;
153 if(verboseLevel > 1)
154 {
155 G4cout << " result " << result << G4endl;
156 }
157
158 return result;
159}

Referenced by G4VPhononProcess::CreateSecondary().

◆ RotateToLocal()

G4ThreeVector G4LatticePhysical::RotateToLocal ( const G4ThreeVector dir) const

Definition at line 162 of file G4LatticePhysical.cc.

162 {
163 if (verboseLevel>1) {
164 G4cout << "G4LatticePhysical::RotateToLocal " << dir
165 << "\nusing fGlobalToLocal " << fGlobalToLocal
166 << G4endl;
167 }
168
169 G4ThreeVector result = fGlobalToLocal*dir;
170 if(verboseLevel > 1)
171 {
172 G4cout << " result " << result << G4endl;
173 }
174
175 return result;
176}

◆ SetLatticeLogical()

void G4LatticePhysical::SetLatticeLogical ( const G4LatticeLogical Lat)
inline

Definition at line 54 of file G4LatticePhysical.hh.

54{ fLattice = Lat; }

◆ SetLatticeOrientation()

void G4LatticePhysical::SetLatticeOrientation ( G4double  t_rot,
G4double  p_rot 
)

Definition at line 82 of file G4LatticePhysical.cc.

82 {
83 fTheta = t_rot;
84 fPhi = p_rot;
85
86 if(verboseLevel != 0)
87 {
88 G4cout << "G4LatticePhysical::SetLatticeOrientation " << fTheta << " "
89 << fPhi << G4endl;
90 }
91}

◆ SetMillerOrientation()

void G4LatticePhysical::SetMillerOrientation ( G4int  l,
G4int  k,
G4int  n 
)

Definition at line 95 of file G4LatticePhysical.cc.

95 {
96 fTheta = halfpi - std::atan2(n+0.000001,l+0.000001);
97 fPhi = halfpi - std::atan2(l+0.000001,k+0.000001);
98
99 if(verboseLevel != 0)
100 {
101 G4cout << "G4LatticePhysical::SetMillerOrientation(" << l << k << n
102 << ") : " << fTheta << " " << fPhi << G4endl;
103 }
104}

◆ SetPhysicalOrientation()

void G4LatticePhysical::SetPhysicalOrientation ( const G4RotationMatrix Rot)

Definition at line 60 of file G4LatticePhysical.cc.

60 {
61 if(Rot == nullptr)
62 { // No orientation specified
63 fLocalToGlobal = fGlobalToLocal = G4RotationMatrix::IDENTITY;
64 }
65 else
66 {
67 fLocalToGlobal = fGlobalToLocal = *Rot; // Frame rotation
68 fGlobalToLocal.invert();
69 }
70
71 if(verboseLevel != 0)
72 {
73 G4cout << "G4LatticePhysical::SetPhysicalOrientation " << *Rot
74 << "\nfLocalToGlobal: " << fLocalToGlobal
75 << "\nfGlobalToLocal: " << fGlobalToLocal
76 << G4endl;
77 }
78}
static DLL_API const HepRotation IDENTITY
Definition: Rotation.h:366
HepRotation & invert()

Referenced by G4LatticePhysical().

◆ SetVerboseLevel()

void G4LatticePhysical::SetVerboseLevel ( G4int  vb)
inline

Definition at line 48 of file G4LatticePhysical.hh.

48{ verboseLevel = vb; }

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