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

Additional Inherited Members

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

Detailed Description

Definition at line 36 of file XCrystalPlanarMoliereElectricField.hh.

Constructor & Destructor Documentation

XCrystalPlanarMoliereElectricField::XCrystalPlanarMoliereElectricField ( )

Definition at line 33 of file XCrystalPlanarMoliereElectricField.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 }
XCrystalPlanarMoliereElectricField::~XCrystalPlanarMoliereElectricField ( )

Definition at line 45 of file XCrystalPlanarMoliereElectricField.cc.

45  {
46 }

Member Function Documentation

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

Implements XVCrystalPlanarAnalytical.

Definition at line 51 of file XCrystalPlanarMoliereElectricField.cc.

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


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