Geant4  10.02.p03
XCrystalPlanarMoliereElectricField Class Reference

#include <XCrystalPlanarMoliereElectricField.hh>

Inheritance diagram for XCrystalPlanarMoliereElectricField:
Collaboration diagram for XCrystalPlanarMoliereElectricField:

Public Member Functions

G4double ComputeECForSinglePlane (G4double, XPhysicalLattice *)
 
 XCrystalPlanarMoliereElectricField ()
 
 ~XCrystalPlanarMoliereElectricField ()
 
- Public Member Functions inherited from XVCrystalPlanarAnalytical
void SetNumberOfPlanes (G4int)
 
G4int GetNumberOfPlanes ()
 
G4ThreeVector ComputeEC (G4ThreeVector, XPhysicalLattice *)
 
G4ThreeVector ComputeECFromVector (G4ThreeVector)
 
G4ThreeVector ComputePositionInUnitCell (G4ThreeVector, XPhysicalLattice *)
 
virtual G4double ComputeMaximum (XPhysicalLattice *)
 
virtual G4double ComputeMinimum (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 XCrystalPlanarMoliereElectricField.hh.

Constructor & Destructor Documentation

◆ XCrystalPlanarMoliereElectricField()

XCrystalPlanarMoliereElectricField::XCrystalPlanarMoliereElectricField ( )

Definition at line 30 of file XCrystalPlanarMoliereElectricField.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 }

◆ ~XCrystalPlanarMoliereElectricField()

XCrystalPlanarMoliereElectricField::~XCrystalPlanarMoliereElectricField ( )

Definition at line 42 of file XCrystalPlanarMoliereElectricField.cc.

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

Member Function Documentation

◆ ComputeECForSinglePlane()

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

Implements XVCrystalPlanarAnalytical.

Definition at line 48 of file XCrystalPlanarMoliereElectricField.cc.

49  {
50 
51  G4VPhysicalVolume* vVolume = vLattice->GetVolume();
52 
53  G4double aTF = ComputeTFScreeningRadius(vLattice);
54 
55  G4double vValueForSinglePlane = 0.;
56  for(unsigned int i=0;i<3;i++){
57  vValueForSinglePlane += ( fAlfa[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 *= (CLHEP::elm_coupling);
68 
69  vValueForSinglePlane *= (GetXUnitCell(vVolume)->ComputeAtomVolumeDensity());
70 
71  G4int vSign = +1;
72 
73  if(vXposition < 0.) vSign = -1;
74 
75  vValueForSinglePlane *= vSign;
76 
77  return vValueForSinglePlane;
78 }
XPhysicalLattice * GetXPhysicalLattice(G4VPhysicalVolume *)
int G4int
Definition: G4Types.hh:78
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:

Member Data Documentation

◆ fAlfa

G4double XCrystalPlanarMoliereElectricField::fAlfa[3]
private

Definition at line 36 of file XCrystalPlanarMoliereElectricField.hh.

◆ fBeta

G4double XCrystalPlanarMoliereElectricField::fBeta[3]
private

Definition at line 37 of file XCrystalPlanarMoliereElectricField.hh.


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