Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 ()
 

Additional Inherited Members

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

Detailed Description

Definition at line 36 of file XCrystalPlanarMolierePotential.hh.

Constructor & Destructor Documentation

XCrystalPlanarMolierePotential::XCrystalPlanarMolierePotential ( )

Definition at line 33 of file XCrystalPlanarMolierePotential.cc.

33  {
34  fAlfa[0] = 0.1;
35  fAlfa[1] = 0.55;
36  fAlfa[2] = 0.35;
37 
38  fBeta[0] = 6.0;
39  fBeta[1] = 1.2;
40  fBeta[2] = 0.3;
41 }
XCrystalPlanarMolierePotential::~XCrystalPlanarMolierePotential ( )

Definition at line 45 of file XCrystalPlanarMolierePotential.cc.

45  {
46 }

Member Function Documentation

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

Implements XVCrystalPlanarAnalytical.

Definition at line 51 of file XCrystalPlanarMolierePotential.cc.

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

Here is the call graph for this function:

G4double XCrystalPlanarMolierePotential::ComputeMaximum ( XPhysicalLattice vLattice)
virtual

Reimplemented from XVCrystalPlanarAnalytical.

Definition at line 82 of file XCrystalPlanarMolierePotential.cc.

82  {
83 
84  G4double vMaximum = GetEC(G4ThreeVector(0.,0.,0.),vLattice).y();
85 
86  return vMaximum;
87 }
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector GetEC(G4ThreeVector, XPhysicalLattice *)
double y() const
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

G4double XCrystalPlanarMolierePotential::ComputeMinimum ( XPhysicalLattice vLattice)
virtual

Reimplemented from XVCrystalPlanarAnalytical.

Definition at line 92 of file XCrystalPlanarMolierePotential.cc.

92  {
93  G4VPhysicalVolume* vVolume = vLattice->GetVolume();
94  G4double vInterplanarDistance =
96  GetXPhysicalLattice(vVolume)->GetMiller(0),
97  GetXPhysicalLattice(vVolume)->GetMiller(1),
98  GetXPhysicalLattice(vVolume)->GetMiller(2));
99 
100  G4double vMinimum = GetEC(G4ThreeVector(0.,vInterplanarDistance/2.,0.),
101  vLattice).y();
102 
103  return vMinimum;
104 }
CLHEP::Hep3Vector G4ThreeVector
XPhysicalLattice * GetXPhysicalLattice(G4VPhysicalVolume *)
G4ThreeVector GetEC(G4ThreeVector, XPhysicalLattice *)
double y() const
G4double ComputeDirectPeriod(G4int, G4int, G4int)
Definition: XUnitCell.cc:222
XUnitCell * GetXUnitCell(G4VPhysicalVolume *)
double G4double
Definition: G4Types.hh:76
G4VPhysicalVolume * GetVolume()

Here is the call graph for this function:


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