Geant4  10.02.p03
XCrystalPlanarMolierePotential Class Reference

#include <XCrystalPlanarMolierePotential.hh>

Inheritance diagram for XCrystalPlanarMolierePotential:
Collaboration diagram for XCrystalPlanarMolierePotential:

Public Member Functions

G4double ComputeECForSinglePlane (G4double, XPhysicalLattice *)
 
G4double ComputeMaximum (XPhysicalLattice *)
 
G4double ComputeMinimum (XPhysicalLattice *)
 
 XCrystalPlanarMolierePotential ()
 
 ~XCrystalPlanarMolierePotential ()
 
- Public Member Functions inherited from XVCrystalPlanarAnalytical
void SetNumberOfPlanes (G4int)
 
G4int GetNumberOfPlanes ()
 
G4ThreeVector ComputeEC (G4ThreeVector, XPhysicalLattice *)
 
G4ThreeVector ComputeECFromVector (G4ThreeVector)
 
G4ThreeVector ComputePositionInUnitCell (G4ThreeVector, XPhysicalLattice *)
 
virtual void PrintOnFile (const G4String &, XPhysicalLattice *, G4double)
 
virtual void ReadFromFile (const G4String &, XPhysicalLattice *, G4double=1)
 
virtual void ReadFromECHARM (const G4String &, G4double=1)
 
void InitializeVector ()
 
 XVCrystalPlanarAnalytical ()
 
 ~XVCrystalPlanarAnalytical ()
 
- Public Member Functions inherited from XVCrystalCharacteristic
XPhysicalLatticeGetXPhysicalLattice (G4VPhysicalVolume *)
 
XUnitCellGetXUnitCell (G4VPhysicalVolume *)
 
XLogicalLatticeGetLogicalLattice (G4VPhysicalVolume *)
 
void InitializePhysicalLattice (XPhysicalLattice *)
 
G4ThreeVector GetEC (G4ThreeVector, XPhysicalLattice *)
 
virtual G4double ComputeTFScreeningRadius (XPhysicalLattice *)
 
virtual G4double GetMaximum (XPhysicalLattice *)
 
virtual G4double GetMinimum (XPhysicalLattice *)
 
G4bool IsInitialized (XPhysicalLattice *)
 
 XVCrystalCharacteristic ()
 
 ~XVCrystalCharacteristic ()
 

Private Attributes

G4double fAlfa [3]
 
G4double fBeta [3]
 

Additional Inherited Members

- Protected Attributes inherited from XVCrystalCharacteristic
G4double fMaximum
 
G4double fMinimum
 
XPhysicalLatticefPhysicalLattice
 
G4PhysicsVectorfVectorEC
 

Detailed Description

Definition at line 33 of file XCrystalPlanarMolierePotential.hh.

Constructor & Destructor Documentation

◆ XCrystalPlanarMolierePotential()

XCrystalPlanarMolierePotential::XCrystalPlanarMolierePotential ( )

Definition at line 30 of file XCrystalPlanarMolierePotential.cc.

30  {
31  fAlfa[0] = 0.1;
32  fAlfa[1] = 0.55;
33  fAlfa[2] = 0.35;
34 
35  fBeta[0] = 6.0;
36  fBeta[1] = 1.2;
37  fBeta[2] = 0.3;
38 }

◆ ~XCrystalPlanarMolierePotential()

XCrystalPlanarMolierePotential::~XCrystalPlanarMolierePotential ( )

Definition at line 42 of file XCrystalPlanarMolierePotential.cc.

42  {
43 }
Here is the call graph for this function:

Member Function Documentation

◆ ComputeECForSinglePlane()

G4double XCrystalPlanarMolierePotential::ComputeECForSinglePlane ( G4double  vXposition,
XPhysicalLattice vLattice 
)
virtual

Implements XVCrystalPlanarAnalytical.

Definition at line 48 of file XCrystalPlanarMolierePotential.cc.

49  {
50 
51  G4VPhysicalVolume* vVolume = vLattice->GetVolume();
52  G4double aTF = ComputeTFScreeningRadius(vLattice);
53 
54  G4double vValueForSinglePlane = 0.;
55 
56  for(unsigned int i=0;i<3;i++){
57  vValueForSinglePlane += ( fAlfa[i]/fBeta[i] *
58  std::exp( - std::fabs(vXposition) * fBeta[i] / aTF ) );
59  }
60 
61  vValueForSinglePlane *= 2. * CLHEP::pi;
62  vValueForSinglePlane *= GetXUnitCell(vVolume)->ComputeDirectPeriod(
63  GetXPhysicalLattice(vVolume)->GetMiller(0),
64  GetXPhysicalLattice(vVolume)->GetMiller(1),
65  GetXPhysicalLattice(vVolume)->GetMiller(2));
66 
67  vValueForSinglePlane *= aTF;
68 
69  vValueForSinglePlane *= (CLHEP::elm_coupling);
70 
71  vValueForSinglePlane *= (GetXUnitCell(vVolume)->ComputeAtomVolumeDensity());
72 
73  return vValueForSinglePlane;
74 }
XPhysicalLattice * GetXPhysicalLattice(G4VPhysicalVolume *)
virtual G4double ComputeTFScreeningRadius(XPhysicalLattice *)
static const double pi
Definition: SystemOfUnits.h:53
G4double ComputeAtomVolumeDensity()
Definition: XUnitCell.cc:116
static const double elm_coupling
G4double ComputeDirectPeriod(G4int, G4int, G4int)
Definition: XUnitCell.cc:219
XUnitCell * GetXUnitCell(G4VPhysicalVolume *)
double G4double
Definition: G4Types.hh:76
G4VPhysicalVolume * GetVolume()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeMaximum()

G4double XCrystalPlanarMolierePotential::ComputeMaximum ( XPhysicalLattice vLattice)
virtual

Reimplemented from XVCrystalPlanarAnalytical.

Definition at line 79 of file XCrystalPlanarMolierePotential.cc.

79  {
80 
81  G4double vMaximum = GetEC(G4ThreeVector(0.,0.,0.),vLattice).y();
82 
83  return vMaximum;
84 }
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector GetEC(G4ThreeVector, XPhysicalLattice *)
double y() const
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeMinimum()

G4double XCrystalPlanarMolierePotential::ComputeMinimum ( XPhysicalLattice vLattice)
virtual

Reimplemented from XVCrystalPlanarAnalytical.

Definition at line 89 of file XCrystalPlanarMolierePotential.cc.

89  {
90  G4VPhysicalVolume* vVolume = vLattice->GetVolume();
91  G4double vInterplanarDistance =
93  GetXPhysicalLattice(vVolume)->GetMiller(0),
94  GetXPhysicalLattice(vVolume)->GetMiller(1),
95  GetXPhysicalLattice(vVolume)->GetMiller(2));
96 
97  G4double vMinimum = GetEC(G4ThreeVector(0.,vInterplanarDistance/2.,0.),
98  vLattice).y();
99 
100  return vMinimum;
101 }
CLHEP::Hep3Vector G4ThreeVector
XPhysicalLattice * GetXPhysicalLattice(G4VPhysicalVolume *)
G4ThreeVector GetEC(G4ThreeVector, XPhysicalLattice *)
double y() const
G4double ComputeDirectPeriod(G4int, G4int, G4int)
Definition: XUnitCell.cc:219
XUnitCell * GetXUnitCell(G4VPhysicalVolume *)
double G4double
Definition: G4Types.hh:76
G4VPhysicalVolume * GetVolume()
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ fAlfa

G4double XCrystalPlanarMolierePotential::fAlfa[3]
private

Definition at line 36 of file XCrystalPlanarMolierePotential.hh.

◆ fBeta

G4double XCrystalPlanarMolierePotential::fBeta[3]
private

Definition at line 37 of file XCrystalPlanarMolierePotential.hh.


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