List of all members | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes
G4StationSimulatorOG::G4StationFastCerenkov Class Reference

#include <G4StationFastCerenkov.h>

Inheritance diagram for G4StationSimulatorOG::G4StationFastCerenkov:
Inheritance graph
[legend]

Public Member Functions

G4VParticleChange * AlongStepDoIt (const G4Track &track, const G4Step &step) override
 
void DumpPhysicsTable () const
 
 G4StationFastCerenkov (const G4String &processName="Cerenkov")
 
G4double GetContinuousStepLimit (const G4Track &, G4double, G4double, G4double &) override
 
G4bool IsApplicable (const G4ParticleDefinition &particle) override
 
void SetMaxNumPhotonsPerStep (const G4int numPhotons)
 
void SetTrackSecondariesFirst (const G4bool state)
 
virtual ~G4StationFastCerenkov ()
 

Static Public Member Functions

static void GetDataFromConstruction ()
 

Protected Attributes

G4PhysicsTable * fPhysicsTable = nullptr
 

Private Member Functions

void BackScatter ()
 
void BuildThePhysicsTable ()
 
void DiffuseScatterHorizontal (const G4ThreeVector &normal)
 
void DiffuseScatterVertical (const G4ThreeVector &normal)
 
void DoRayleighScatter ()
 
G4double GetAverageNumberOfPhotons (const G4DynamicParticle *, const G4Material *, G4MaterialPropertyVector *) const
 
G4double GetEllipsoidIntersect (const G4ThreeVector &, const G4double, const G4double) const
 
G4double GetSphereIntersect (const G4ThreeVector &, const G4double) const
 
void LobeScatterHorizontal (const G4ThreeVector &normal)
 
void LobeScatterVertical (const G4ThreeVector &normal)
 
template<int pmtId>
G4bool PropagateInDome (G4int &flag)
 
template<int pmtId>
G4bool PropagateInInterface (G4int &flag)
 
void PropagateInTank (G4int flag)
 
G4bool ScatterOffFloor ()
 
G4bool ScatterOffRoof ()
 
G4bool ScatterOffWall ()
 
void SpikeScatter (const G4ThreeVector &normal)
 
void TrackPhotonInTank ()
 
template<int pmtId>
G4bool TransitionToDome (G4int flag)
 
template<int pmtId>
G4bool TransitionToInterface (G4int &flag)
 

Private Attributes

G4double fAbsorbFrac
 
G4StationSimulatorfG4StationSimulator
 
G4double fInvMFP
 
G4int fMaxPhotons = 0
 
G4double fPhotonMaxQE
 
G4ThreeVector fPhotonMomentum
 
G4ThreeVector fPhotonPolarization
 
G4ThreeVector fPhotonPosition
 
G4double fPhotonTime
 
G4double fRayleighConst
 
G4double fRayleighFrac
 
G4double fSampledMomentum
 
G4double fSampledRI
 
G4bool fTrackSecondariesFirst = false
 

Static Private Attributes

static utl::TabulatedFunction fDomeAbsLength
 
static double fDomeRadius
 
static double fDomeRadius_SPMT
 
static double fDomeRadius_SPMT_Sq
 
static double fDomeRadiusSq
 
static double fDomeRadiusz
 
static double fDomeRadiuszSq
 
static utl::TabulatedFunction fDomeRIndex
 
static double fDomeThick_SPMT
 
static bool fHasSPMT
 
static double fHeightz
 
static utl::TabulatedFunction fInterfaceAbsLength
 
static double fInterfaceRadius
 
static double fInterfaceRadius_SPMT
 
static double fInterfaceRadius_SPMT_Sq
 
static double fInterfaceRadiusSq
 
static double fInterfaceRadiusz
 
static double fInterfaceRadiuszSq
 
static utl::TabulatedFunction fInterfaceRIndex
 
static double fInterfaceThick_SPMT
 
static utl::TabulatedFunction fLinerBackscatter
 
static utl::TabulatedFunction fLinerReflectivity
 
static utl::TabulatedFunction fLinerSpecularLobe
 
static utl::TabulatedFunction fLinerSpecularSpike
 
static double fPMTActiveRadius_SPMT
 
static double fPMTActiveRadius_SPMT_Sq
 
static G4ThreeVector fPMTPos [5]
 
static double fPMTRadius
 
static double fPMTRadius_SPMT
 
static double fPMTRadius_SPMT_Sq
 
static double fPMTRadiusSq
 
static double fPMTRadiusz
 
static double fPMTRadiuszSq
 
static double fPMTThick_SPMT
 
static utl::TabulatedFunction fQE
 
static utl::TabulatedFunction fQE_SPMT
 
static G4double fRoofPos [5]
 
static double fSigmaAlpha
 
static double fTankHalfHeight
 
static double fTankHeight
 
static double fTankRadius
 
static double fTankRadiusSq
 
static double fTankThickness
 
static utl::TabulatedFunction fWaterAbsLength
 

Detailed Description

Definition at line 52 of file G4StationFastCerenkov.h.

Constructor & Destructor Documentation

G4StationSimulatorOG::G4StationFastCerenkov::G4StationFastCerenkov ( const G4String &  processName = "Cerenkov")
G4StationSimulatorOG::G4StationFastCerenkov::~G4StationFastCerenkov ( )
virtual

Definition at line 153 of file G4StationFastCerenkov.cc.

References fPhysicsTable.

Member Function Documentation

G4VParticleChange * G4StationSimulatorOG::G4StationFastCerenkov::AlongStepDoIt ( const G4Track &  track,
const G4Step &  step 
)
override
void G4StationSimulatorOG::G4StationFastCerenkov::BackScatter ( void  )
private

Definition at line 1591 of file G4StationFastCerenkov.cc.

References fPhotonMomentum.

Referenced by ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().

void G4StationSimulatorOG::G4StationFastCerenkov::BuildThePhysicsTable ( )
private

Definition at line 417 of file G4StationFastCerenkov.cc.

References fPhysicsTable.

Referenced by G4StationFastCerenkov().

void G4StationSimulatorOG::G4StationFastCerenkov::DiffuseScatterHorizontal ( const G4ThreeVector &  normal)
private

Definition at line 1623 of file G4StationFastCerenkov.cc.

References fPhotonMomentum, fPhotonPolarization, utl::kPi, and sqrt().

Referenced by ScatterOffFloor(), and ScatterOffRoof().

void G4StationSimulatorOG::G4StationFastCerenkov::DiffuseScatterVertical ( const G4ThreeVector &  normal)
private

Definition at line 1600 of file G4StationFastCerenkov.cc.

References fPhotonMomentum, fPhotonPolarization, utl::kPi, utl::Sqr(), and sqrt().

Referenced by ScatterOffWall().

void G4StationSimulatorOG::G4StationFastCerenkov::DoRayleighScatter ( )
private
void G4StationSimulatorOG::G4StationFastCerenkov::DumpPhysicsTable ( ) const

Definition at line 253 of file G4StationFastCerenkov.cc.

References fPhysicsTable.

G4double G4StationSimulatorOG::G4StationFastCerenkov::GetAverageNumberOfPhotons ( const G4DynamicParticle *  particle,
const G4Material *  material,
G4MaterialPropertyVector *  rIndex 
) const
private
G4double G4StationSimulatorOG::G4StationFastCerenkov::GetContinuousStepLimit ( const G4Track &  track,
G4double  ,
G4double  ,
G4double &   
)
override

Definition at line 476 of file G4StationFastCerenkov.cc.

References fMaxPhotons, GetAverageNumberOfPhotons(), and particle.

void G4StationSimulatorOG::G4StationFastCerenkov::GetDataFromConstruction ( )
static

Definition at line 164 of file G4StationFastCerenkov.cc.

References galactic::eV, utl::eV, fDomeAbsLength, fDomeRadius, fDomeRadius_SPMT, G4StationSimulatorOG::G4StationConstruction::fDomeRadius_SPMT, fDomeRadius_SPMT_Sq, fDomeRadiusSq, fDomeRadiusz, fDomeRadiuszSq, fDomeRIndex, fDomeThick_SPMT, G4StationSimulatorOG::G4StationConstruction::fDomeThickness_SPMT, G4StationSimulatorOG::G4StationSimulator::fgCurrent, G4StationSimulatorOG::G4StationConstruction::fgDomeRmax, G4StationSimulatorOG::G4StationConstruction::fgDomeRzmax, G4StationSimulatorOG::G4StationConstruction::fgHeightz, G4StationSimulatorOG::G4StationConstruction::fgInterfaceABSORPTION, G4StationSimulatorOG::G4StationConstruction::fgInterfaceRINDEX, G4StationSimulatorOG::G4StationConstruction::fgInterfaceRmax, G4StationSimulatorOG::G4StationConstruction::fgInterfaceRzmax, G4StationSimulatorOG::G4StationConstruction::fGlassThickness_SPMT, G4StationSimulatorOG::G4StationConstruction::fgLinerBACKSCATTERCONSTANT, G4StationSimulatorOG::G4StationConstruction::fgLinerREFLECTIVITY, G4StationSimulatorOG::G4StationConstruction::fgLinerSPECULARLOBECONSTANT, G4StationSimulatorOG::G4StationConstruction::fgLinerSPECULARSPIKECONSTANT, G4StationSimulatorOG::G4StationConstruction::fgPmtdomeABSORPTION, G4StationSimulatorOG::G4StationConstruction::fgPmtdomeRINDEX, G4StationSimulatorOG::G4StationConstruction::fgPmtRmax, G4StationSimulatorOG::G4StationConstruction::fgPmtRzmax, G4StationSimulatorOG::G4StationConstruction::fgSIGMA_ALPHA, G4StationSimulatorOG::G4StationConstruction::fgTankHalfHeight, G4StationSimulatorOG::G4StationConstruction::fgTankRadius, G4StationSimulatorOG::G4StationConstruction::fgTankThickness, G4StationSimulatorOG::G4StationConstruction::fgWaterABSORPTION, fHasSPMT, fHeightz, fInterfaceAbsLength, fInterfaceRadius, fInterfaceRadius_SPMT, G4StationSimulatorOG::G4StationConstruction::fInterfaceRadius_SPMT, fInterfaceRadius_SPMT_Sq, fInterfaceRadiusSq, fInterfaceRadiusz, fInterfaceRadiuszSq, fInterfaceRIndex, fInterfaceThick_SPMT, G4StationSimulatorOG::G4StationConstruction::fInterfaceThickness_SPMT, fLinerBackscatter, fLinerReflectivity, fLinerSpecularLobe, fLinerSpecularSpike, fPMTActiveRadius_SPMT, fPMTActiveRadius_SPMT_Sq, fPMTPos, fPMTRadius, fPMTRadius_SPMT, fPMTRadius_SPMT_Sq, fPMTRadiusSq, fPMTRadiusz, fPMTRadiuszSq, G4StationSimulatorOG::G4StationConstruction::fPmtRmax_SPMT, G4StationSimulatorOG::G4StationConstruction::fPmtRmin_SPMT, fPMTThick_SPMT, fQE, fQE_SPMT, fRoofPos, fSigmaAlpha, fTankHalfHeight, fTankHeight, fTankRadius, fTankRadiusSq, fTankThickness, fWaterAbsLength, G4StationSimulatorOG::G4StationSimulator::Current::GetDetectorStation(), sdet::Station::GetLocalCoordinateSystem(), sdet::Station::GetPMT(), sdet::PMT::GetPosition(), sdet::Station::HasSmallPMT(), galactic::meter, utl::meter, utl::Sqr(), and G4StationSimulatorOG::ToG4Vector().

G4double G4StationSimulatorOG::G4StationFastCerenkov::GetEllipsoidIntersect ( const G4ThreeVector &  pos,
const G4double  r1,
const G4double  r2 
) const
private
G4double G4StationSimulatorOG::G4StationFastCerenkov::GetSphereIntersect ( const G4ThreeVector &  pos,
const G4double  r 
) const
private
G4bool G4StationSimulatorOG::G4StationFastCerenkov::IsApplicable ( const G4ParticleDefinition &  particle)
inlineoverride

Definition at line 60 of file G4StationFastCerenkov.h.

void G4StationSimulatorOG::G4StationFastCerenkov::LobeScatterHorizontal ( const G4ThreeVector &  normal)
private

Definition at line 1692 of file G4StationFastCerenkov.cc.

References fPhotonMomentum, fPhotonPolarization, fSigmaAlpha, and utl::kPi.

Referenced by ScatterOffFloor(), and ScatterOffRoof().

void G4StationSimulatorOG::G4StationFastCerenkov::LobeScatterVertical ( const G4ThreeVector &  normal)
private
template<int pmtId>
G4bool G4StationSimulatorOG::G4StationFastCerenkov::PropagateInDome ( G4int &  flag)
private
template<int pmtId>
G4bool G4StationSimulatorOG::G4StationFastCerenkov::PropagateInInterface ( G4int &  flag)
private
void G4StationSimulatorOG::G4StationFastCerenkov::PropagateInTank ( G4int  flag)
private
G4bool G4StationSimulatorOG::G4StationFastCerenkov::ScatterOffFloor ( void  )
private
G4bool G4StationSimulatorOG::G4StationFastCerenkov::ScatterOffRoof ( void  )
private
G4bool G4StationSimulatorOG::G4StationFastCerenkov::ScatterOffWall ( void  )
private
void G4StationSimulatorOG::G4StationFastCerenkov::SetMaxNumPhotonsPerStep ( const G4int  numPhotons)
inline

Definition at line 66 of file G4StationFastCerenkov.h.

References fMaxPhotons.

void G4StationSimulatorOG::G4StationFastCerenkov::SetTrackSecondariesFirst ( const G4bool  state)
inline

Definition at line 63 of file G4StationFastCerenkov.h.

References fTrackSecondariesFirst.

void G4StationSimulatorOG::G4StationFastCerenkov::SpikeScatter ( const G4ThreeVector &  normal)
private

Definition at line 1641 of file G4StationFastCerenkov.cc.

References fPhotonMomentum, and fPhotonPolarization.

Referenced by ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().

void G4StationSimulatorOG::G4StationFastCerenkov::TrackPhotonInTank ( void  )
private
template<int pmtId>
G4bool G4StationSimulatorOG::G4StationFastCerenkov::TransitionToDome ( G4int  flag)
private
template<int pmtId>
G4bool G4StationSimulatorOG::G4StationFastCerenkov::TransitionToInterface ( G4int &  flag)
private

Member Data Documentation

G4double G4StationSimulatorOG::G4StationFastCerenkov::fAbsorbFrac
private

Definition at line 122 of file G4StationFastCerenkov.h.

Referenced by AlongStepDoIt().

utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fDomeAbsLength
staticprivate

Definition at line 170 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and PropagateInDome().

double G4StationSimulatorOG::G4StationFastCerenkov::fDomeRadius
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fDomeRadius_SPMT
staticprivate

Definition at line 148 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction().

double G4StationSimulatorOG::G4StationFastCerenkov::fDomeRadius_SPMT_Sq
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fDomeRadiusSq
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fDomeRadiusz
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fDomeRadiuszSq
staticprivate
utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fDomeRIndex
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fDomeThick_SPMT
staticprivate
G4StationSimulator& G4StationSimulatorOG::G4StationFastCerenkov::fG4StationSimulator
private

Definition at line 184 of file G4StationFastCerenkov.h.

Referenced by PropagateInInterface(), and TrackPhotonInTank().

bool G4StationSimulatorOG::G4StationFastCerenkov::fHasSPMT
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fHeightz
staticprivate
utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceAbsLength
staticprivate

Definition at line 169 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and PropagateInInterface().

double G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceRadius
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceRadius_SPMT
staticprivate

Definition at line 149 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction().

double G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceRadius_SPMT_Sq
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceRadiusSq
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceRadiusz
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceRadiuszSq
staticprivate
utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceRIndex
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fInterfaceThick_SPMT
staticprivate

Definition at line 153 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and PropagateInInterface().

G4double G4StationSimulatorOG::G4StationFastCerenkov::fInvMFP
private

Definition at line 120 of file G4StationFastCerenkov.h.

Referenced by AlongStepDoIt(), and PropagateInTank().

utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fLinerBackscatter
staticprivate
utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fLinerReflectivity
staticprivate
utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fLinerSpecularLobe
staticprivate
utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fLinerSpecularSpike
staticprivate
G4int G4StationSimulatorOG::G4StationFastCerenkov::fMaxPhotons = 0
private

Definition at line 112 of file G4StationFastCerenkov.h.

Referenced by GetContinuousStepLimit(), and SetMaxNumPhotonsPerStep().

G4double G4StationSimulatorOG::G4StationFastCerenkov::fPhotonMaxQE
private

Definition at line 117 of file G4StationFastCerenkov.h.

Referenced by AlongStepDoIt(), and PropagateInInterface().

G4ThreeVector G4StationSimulatorOG::G4StationFastCerenkov::fPhotonMomentum
private
G4ThreeVector G4StationSimulatorOG::G4StationFastCerenkov::fPhotonPolarization
private
G4ThreeVector G4StationSimulatorOG::G4StationFastCerenkov::fPhotonPosition
private
G4double G4StationSimulatorOG::G4StationFastCerenkov::fPhotonTime
private
G4PhysicsTable* G4StationSimulatorOG::G4StationFastCerenkov::fPhysicsTable = nullptr
protected
double G4StationSimulatorOG::G4StationFastCerenkov::fPMTActiveRadius_SPMT
staticprivate

Definition at line 151 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction().

double G4StationSimulatorOG::G4StationFastCerenkov::fPMTActiveRadius_SPMT_Sq
staticprivate

Definition at line 158 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and PropagateInInterface().

G4ThreeVector G4StationSimulatorOG::G4StationFastCerenkov::fPMTPos
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fPMTRadius
staticprivate

Definition at line 132 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and PropagateInInterface().

double G4StationSimulatorOG::G4StationFastCerenkov::fPMTRadius_SPMT
staticprivate

Definition at line 150 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction().

double G4StationSimulatorOG::G4StationFastCerenkov::fPMTRadius_SPMT_Sq
staticprivate

Definition at line 157 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and PropagateInInterface().

double G4StationSimulatorOG::G4StationFastCerenkov::fPMTRadiusSq
staticprivate

Definition at line 141 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and TrackPhotonInTank().

double G4StationSimulatorOG::G4StationFastCerenkov::fPMTRadiusz
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fPMTRadiuszSq
staticprivate

Definition at line 145 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and TrackPhotonInTank().

double G4StationSimulatorOG::G4StationFastCerenkov::fPMTThick_SPMT
staticprivate

Definition at line 154 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction(), and PropagateInInterface().

utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fQE
staticprivate
utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fQE_SPMT
staticprivate
G4double G4StationSimulatorOG::G4StationFastCerenkov::fRayleighConst
private

Definition at line 182 of file G4StationFastCerenkov.h.

Referenced by AlongStepDoIt(), and G4StationFastCerenkov().

G4double G4StationSimulatorOG::G4StationFastCerenkov::fRayleighFrac
private

Definition at line 121 of file G4StationFastCerenkov.h.

Referenced by AlongStepDoIt(), and PropagateInTank().

double G4StationSimulatorOG::G4StationFastCerenkov::fRoofPos
staticprivate
G4double G4StationSimulatorOG::G4StationFastCerenkov::fSampledMomentum
private
G4double G4StationSimulatorOG::G4StationFastCerenkov::fSampledRI
private

Definition at line 181 of file G4StationFastCerenkov.h.

Referenced by AlongStepDoIt(), PropagateInTank(), and TransitionToDome().

double G4StationSimulatorOG::G4StationFastCerenkov::fSigmaAlpha
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fTankHalfHeight
staticprivate

Definition at line 125 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction().

double G4StationSimulatorOG::G4StationFastCerenkov::fTankHeight
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fTankRadius
staticprivate

Definition at line 127 of file G4StationFastCerenkov.h.

Referenced by GetDataFromConstruction().

double G4StationSimulatorOG::G4StationFastCerenkov::fTankRadiusSq
staticprivate
double G4StationSimulatorOG::G4StationFastCerenkov::fTankThickness
staticprivate
G4bool G4StationSimulatorOG::G4StationFastCerenkov::fTrackSecondariesFirst = false
private

Definition at line 111 of file G4StationFastCerenkov.h.

Referenced by SetTrackSecondariesFirst().

utl::TabulatedFunction G4StationSimulatorOG::G4StationFastCerenkov::fWaterAbsLength
staticprivate

Definition at line 165 of file G4StationFastCerenkov.h.

Referenced by AlongStepDoIt(), and GetDataFromConstruction().


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

, generated on Tue Sep 26 2023.