G4GammaXTRadiator Class Reference

#include <G4GammaXTRadiator.hh>

Inheritance diagram for G4GammaXTRadiator:

G4VXTRenergyLoss G4VDiscreteProcess G4VProcess

Public Member Functions

 G4GammaXTRadiator (G4LogicalVolume *anEnvelope, G4double, G4double, G4Material *, G4Material *, G4double, G4double, G4int, const G4String &processName="XTRgammaRadiator")
 ~G4GammaXTRadiator ()
G4double GetStackFactor (G4double energy, G4double gamma, G4double varAngle)

Detailed Description

Definition at line 57 of file G4GammaXTRadiator.hh.


Constructor & Destructor Documentation

G4GammaXTRadiator::G4GammaXTRadiator ( G4LogicalVolume anEnvelope,
G4double  ,
G4double  ,
G4Material ,
G4Material ,
G4double  ,
G4double  ,
G4int  ,
const G4String processName = "XTRgammaRadiator" 
)

Definition at line 41 of file G4GammaXTRadiator.cc.

References G4VXTRenergyLoss::fAlphaGas, G4VXTRenergyLoss::fAlphaPlate, G4cout, and G4endl.

00046                                                                   :
00047   G4VXTRenergyLoss(anEnvelope,foilMat,gasMat,a,b,n,processName)
00048 {
00049   G4cout<<"Gammma distributed X-ray TR radiator model is called"<<G4endl ;
00050 
00051   // Build energy and angular integral spectra of X-ray TR photons from
00052   // a radiator
00053 
00054   fAlphaPlate = alphaPlate ;
00055   fAlphaGas   = alphaGas   ;
00056   G4cout<<"fAlphaPlate = "<<fAlphaPlate<<" ; fAlphaGas = "<<fAlphaGas<<G4endl ;
00057 
00058   // BuildTable() ;
00059 }

G4GammaXTRadiator::~G4GammaXTRadiator (  ) 

Definition at line 63 of file G4GammaXTRadiator.cc.

00064 {
00065   ;
00066 }


Member Function Documentation

G4double G4GammaXTRadiator::GetStackFactor ( G4double  energy,
G4double  gamma,
G4double  varAngle 
) [virtual]

Reimplemented from G4VXTRenergyLoss.

Definition at line 79 of file G4GammaXTRadiator.cc.

References G4VXTRenergyLoss::fAlphaGas, G4VXTRenergyLoss::fAlphaPlate, G4VXTRenergyLoss::fGasThick, G4VXTRenergyLoss::fPlateNumber, G4VXTRenergyLoss::fPlateThick, G4VXTRenergyLoss::GetGasFormationZone(), G4VXTRenergyLoss::GetGasLinearPhotoAbs(), G4VXTRenergyLoss::GetPlateFormationZone(), G4VXTRenergyLoss::GetPlateLinearPhotoAbs(), and G4VXTRenergyLoss::OneInterfaceXTRdEdx().

00081 {
00082   G4double result, Za, Zb, Ma, Mb ;
00083   
00084   Za = GetPlateFormationZone(energy,gamma,varAngle) ;
00085   Zb = GetGasFormationZone(energy,gamma,varAngle) ;
00086 
00087   Ma = GetPlateLinearPhotoAbs(energy) ;
00088   Mb = GetGasLinearPhotoAbs(energy) ;
00089 
00090 
00091   G4complex Ca(1.0+0.5*fPlateThick*Ma/fAlphaPlate,fPlateThick/Za/fAlphaPlate) ; 
00092   G4complex Cb(1.0+0.5*fGasThick*Mb/fAlphaGas,fGasThick/Zb/fAlphaGas) ; 
00093 
00094   G4complex Ha = std::pow(Ca,-fAlphaPlate) ;  
00095   G4complex Hb = std::pow(Cb,-fAlphaGas) ;
00096   G4complex H  = Ha*Hb ;
00097 
00098   G4complex F1 =   (1.0 - Ha)*(1.0 - Hb )/(1.0 - H)
00099                  * G4double(fPlateNumber) ;
00100 
00101   G4complex F2 =   (1.0-Ha)*(1.0-Ha)*Hb/(1.0-H)/(1.0-H)
00102                  * (1.0 - std::pow(H,fPlateNumber)) ;
00103 
00104   G4complex R  = (F1 + F2)*OneInterfaceXTRdEdx(energy,gamma,varAngle) ;
00105 
00106   result       = 2.0*std::real(R) ;
00107   
00108   return      result ;
00109 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:02 2013 for Geant4 by  doxygen 1.4.7