44 #ifndef __RAT_G4CerenkovProcess_h
45 #define __RAT_G4CerenkovProcess_h 1
50 #include "G4DynamicParticle.hh"
51 #include "G4ForceCondition.hh"
52 #include "G4GPILSelection.hh"
53 #include "G4MaterialPropertyVector.hh"
54 #include "G4VProcess.hh"
58 class G4ParticleDefinition;
62 class G4VParticleChange;
68 explicit G4CerenkovProcess(
const G4String& processName =
"G4CerenkovProcess", G4ProcessType type = fElectromagnetic);
75 G4bool IsApplicable(
const G4ParticleDefinition& aParticleType)
override;
79 void BuildPhysicsTable(
const G4ParticleDefinition& aParticleType)
override;
81 void PreparePhysicsTable(
const G4ParticleDefinition& part)
override;
84 G4double GetMeanFreePath(
const G4Track& aTrack, G4double, G4ForceCondition*);
88 G4double PostStepGetPhysicalInteractionLength(
const G4Track& aTrack, G4double, G4ForceCondition*)
override;
92 G4VParticleChange* PostStepDoIt(
const G4Track& aTrack,
const G4Step& aStep)
override;
96 virtual G4double AlongStepGetPhysicalInteractionLength(
const G4Track&, G4double, G4double, G4double&,
97 G4GPILSelection*)
override {
101 virtual G4double AtRestGetPhysicalInteractionLength(
const G4Track&, G4ForceCondition*)
override {
return -1.0; };
104 virtual G4VParticleChange* AtRestDoIt(
const G4Track&,
const G4Step&)
override {
return nullptr; };
106 virtual G4VParticleChange* AlongStepDoIt(
const G4Track&,
const G4Step&)
override {
return nullptr; };
108 void SetTrackSecondariesFirst(
const G4bool state);
113 G4bool GetTrackSecondariesFirst()
const;
116 void SetMaxBetaChangePerStep(
const G4double d);
119 G4double GetMaxBetaChangePerStep()
const;
122 void SetMaxNumPhotonsPerStep(
const G4int NumPhotons);
129 G4int GetMaxNumPhotonsPerStep()
const;
133 void SetStackPhotons(
const G4bool);
136 G4bool GetStackPhotons()
const;
139 G4int GetNumPhotons()
const;
142 G4PhysicsTable* GetPhysicsTable()
const;
145 void DumpPhysicsTable()
const;
148 G4double GetAverageNumberOfPhotons(
const G4double charge,
const G4double beta,
const G4Material* aMaterial,
149 G4MaterialPropertyVector* Rindex)
const;
151 void DumpInfo()
const override { ProcessDescription(G4cout); };
152 void ProcessDescription(std::ostream& out)
const override;
154 void SetVerboseLevel(G4int);
158 G4PhysicsTable* thePhysicsTable;
159 std::shared_ptr<std::vector<std::vector<G4double>>> refractiveIndexValuesVectors =
160 std::make_shared<std::vector<std::vector<G4double>>>();
161 std::shared_ptr<std::vector<std::vector<G4double>>> refractiveIndexEnergyVectors =
162 std::make_shared<std::vector<std::vector<G4double>>>();
164 std::vector<G4double> fMinRindex;
165 std::vector<G4double> fMaxRindex;
168 G4double fMaxBetaChange;
173 G4bool fStackingFlag;
174 G4bool fTrackSecondariesFirst;
179 inline G4bool G4CerenkovProcess::GetTrackSecondariesFirst()
const {
return fTrackSecondariesFirst; }
181 inline G4double G4CerenkovProcess::GetMaxBetaChangePerStep()
const {
return fMaxBetaChange; }
183 inline G4int G4CerenkovProcess::GetMaxNumPhotonsPerStep()
const {
return fMaxPhotons; }
185 inline G4bool G4CerenkovProcess::GetStackPhotons()
const {
return fStackingFlag; }
187 inline G4int G4CerenkovProcess::GetNumPhotons()
const {
return fNumPhotons; }
189 inline G4PhysicsTable* G4CerenkovProcess::GetPhysicsTable()
const {
return thePhysicsTable; }
Definition: G4CerenkovProcess.hh:66
Definition: CCCrossSecMessenger.hh:29