5 #include "templates.hh" 6 #include "Randomize.hh" 7 #include "G4Poisson.hh" 8 #include "G4ThreeVector.hh" 9 #include "G4ParticleMomentum.hh" 11 #include "G4VRestDiscreteProcess.hh" 12 #include "G4OpticalPhoton.hh" 13 #include "G4DynamicParticle.hh" 14 #include "G4Material.hh" 15 #include "G4MaterialPropertiesTable.hh" 16 #include "G4PhysicsOrderedFreeVector.hh" 19 #include <G4SystemOfUnits.hh> 20 #include <G4PhysicalConstants.hh> 24 #define AVO 6.022e23 //Avogadro's number (#/mol) 25 #define EMASS 9.109e-31*CLHEP::kg 26 #define MillerDriftSpeed true 28 #define GASGAP 0.25*CLHEP::cm //S2 generation region 29 #define BORDER 0*CLHEP::cm //liquid-gas border z-coordinate 31 #define QE_EFF 1 //a base or maximum quantum efficiency 32 #define phe_per_e 1 //S2 gain for quick studies 35 #define WIN 0*CLHEP::mm //top Cu block (also, quartz window) 36 #define TOP 0 //top grid wires 37 #define ANE 0 //anode mesh 38 #define SRF 0 //liquid-gas interface 39 #define GAT 0 //gate grid 40 #define CTH 0 //cathode grid 41 #define BOT 0 //bottom PMT grid 42 #define PMT 0 //bottom Cu block and PMTs 51 G4S1Light(
const G4String& processName =
"S1",
52 G4ProcessType
type = fElectromagnetic);
56 G4bool
IsApplicable(
const G4ParticleDefinition& aParticleType);
76 G4VParticleChange*
AtRestDoIt (
const G4Track& aTrack,
126 if (aParticleType.GetParticleName() ==
"opticalphoton")
return false;
127 if (aParticleType.IsShortLived())
return false;
128 if (aParticleType.GetParticleName() ==
"thermalelectron")
return false;
130 if(
abs(aParticleType.GetPDGEncoding())==12 ||
131 abs(aParticleType.GetPDGEncoding())==14 ||
132 abs(aParticleType.GetPDGEncoding())==16)
return false;
G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *)
G4bool fTrackSecondariesFirst
void SetTrackSecondariesFirst(const G4bool state)
G4double GetScintillationYieldFactor() const
G4double GetScintillationExcitationRatio() const
G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
G4double GetMeanLifeTime(const G4Track &aTrack, G4ForceCondition *)
void SetScintillationYieldFactor(const G4double yieldfactor)
G4bool GetTrackSecondariesFirst() const
G4VParticleChange * AtRestDoIt(const G4Track &aTrack, const G4Step &aStep)
void SetScintillationExcitationRatio(const G4double excitationratio)
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
G4S1Light(const G4String &processName="S1", G4ProcessType type=fElectromagnetic)
G4bool fMultipleScattering