23 #ifndef _G4TankSimulatorASCII_G4TankFastCerenkov_h_
24 #define _G4TankSimulatorASCII_G4TankFastCerenkov_h_
28 #include <utl/Point.h>
30 #include <sevt/Station.h>
33 #include <templates.hh>
34 #include <Randomize.hh>
35 #include <G4ThreeVector.hh>
36 #include <G4ParticleMomentum.hh>
38 #include <G4VContinuousProcess.hh>
39 #include <G4OpticalPhoton.hh>
40 #include <G4DynamicParticle.hh>
41 #include <G4Material.hh>
42 #include <G4PhysicsTable.hh>
43 #include <G4MaterialPropertiesTable.hh>
44 #include <G4PhysicsOrderedFreeVector.hh>
46 #include <G4Poisson.hh>
51 #define DOWN_IN_TANK 1
55 #define IN_INTERFACE_1 21
56 #define IN_INTERFACE_2 22
57 #define IN_INTERFACE_3 23
64 #define TARGET_FLOOR 4
68 namespace G4TankSimulatorASCII {
83 G4VParticleChange*
AlongStepDoIt(
const G4Track &,
const G4Step &);
92 const G4MaterialPropertyVector *)
const;
107 const G4double,
const G4double)
const;
static double fInterfaceRadiusSq
static utl::TabulatedFunction fQE
G4bool TransitionToInterface(G4int &)
Detector description interface for PMT-related data.
static double fPMTRadiusz
static double fTankThickness
G4ThreeVector fPhotonPolarization
G4bool fPhotonIsFromMuonDecay
static utl::TabulatedFunction fLinerSpecularLobe
Class to hold collection (x,y) points and provide interpolation between them.
G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
void LobeScatterVertical(const G4ThreeVector &)
G4double fSampledMomentum
void SetTrackSecondariesFirst(const G4bool)
G4bool IsApplicable(const G4ParticleDefinition &)
G4double GetSphereIntersect(const G4ThreeVector &, const G4double) const
static double fPMTRadiuszSq
G4TankFastCerenkov(const G4String &processName="Cerenkov")
G4PhysicsTable * fThePhysicsTable
static utl::TabulatedFunction fLinerSpecularSpike
static double fDomeRadiusz
G4ThreeVector fPhotonMomentum
G4bool PropogateInDome(G4int &)
void DiffuseScatterVertical(const G4ThreeVector &)
void BuildThePhysicsTable()
static double fTankRadius
static utl::TabulatedFunction fInterfaceRIndex
G4bool TransitionToDome(G4int)
G4PhysicsTable * GetPhysicsTable() const
G4double GetAverageNumberOfPhotons(const G4DynamicParticle *, const G4Material *, const G4MaterialPropertyVector *) const
static G4ThreeVector fPMTPos[4]
static double fInterfaceRadiusz
G4ThreeVector fPhotonPosition
static utl::TabulatedFunction fWaterAbsLength
static double fTankHalfHeight
void SpikeScatter(const G4ThreeVector &)
G4bool PropogateInInterface(G4int &)
static double fDomeRadiuszSq
static double fTankRadiusSq
static utl::TabulatedFunction fDomeAbsLength
static double fPMTRadiusSq
static double fDomeRadiusSq
G4double GetContinuousStepLimit(const G4Track &, G4double, G4double, G4double &)
static utl::TabulatedFunction fInterfaceAbsLength
static double fInterfaceRadiuszSq
void DumpPhysicsTable() const
G4double GetEllipsoidIntersect(const G4ThreeVector &, const G4double, const G4double) const
static G4double fRoofPos[4]
G4bool fTrackSecondariesFirst
static double fDomeRadius
void LobeScatterHorizontal(const G4ThreeVector &)
void DiffuseScatterHorizontal(const G4ThreeVector &)
static utl::TabulatedFunction fDomeRIndex
static utl::TabulatedFunction fLinerReflectivity
static void GetDataFromConstruction()
static double fTankHeight
void PropogateInTank(G4int)
static double fInterfaceRadius
static double fSigmaAlpha
void SetMaxNumPhotonsPerStep(const G4int)
static utl::TabulatedFunction fLinerBackscatter