89 {
return fSinglePhotonRadiationProbabilityLimit;}
107 {
return fPhotonEnergyInSpectrum;}
116 {fSinglePhotonRadiationProbabilityLimit = wmax;}
121 {fNSmallTrajectorySteps = nSmallTrajectorySteps;}
135 {fRadiationAngleFactor = radiationAngleFactor;}
159 G4int timesPhotonStatistics);
164 G4double virtualCollimatorAngularCenterX = 0.,
165 G4double virtualCollimatorAngularCenterY = 0.)
166 {fVirtualCollimatorAngularHalfWidthX2 = virtualCollimatorAngularRadius*
167 virtualCollimatorAngularRadius;
168 fVirtualCollimatorAngularHalfWidthY2 = fVirtualCollimatorAngularHalfWidthX2;
170 fVirtualCollimatorAngularCenterX = virtualCollimatorAngularCenterX;
171 fVirtualCollimatorAngularCenterY = virtualCollimatorAngularCenterY;
172 fVirtualCollimatorTypeID = 1;}
175 G4double virtualCollimatorAngularRadiusY,
176 G4double virtualCollimatorAngularCenterX = 0.,
177 G4double virtualCollimatorAngularCenterY = 0.)
178 {fVirtualCollimatorAngularHalfWidthX2 = virtualCollimatorAngularRadiusX*
179 virtualCollimatorAngularRadiusX;
180 fVirtualCollimatorAngularHalfWidthY2 = virtualCollimatorAngularRadiusY*
181 virtualCollimatorAngularRadiusY;
182 fVirtualCollimatorAngularCenterX = virtualCollimatorAngularCenterX;
183 fVirtualCollimatorAngularCenterY = virtualCollimatorAngularCenterY;
184 fVirtualCollimatorTypeID = 1;}
187 G4double virtualCollimatorAngularHalfWidthY,
188 G4double virtualCollimatorAngularCenterX = 0.,
189 G4double virtualCollimatorAngularCenterY = 0.)
190 {fVirtualCollimatorAngularHalfWidthX = virtualCollimatorAngularHalfWidthX;
191 fVirtualCollimatorAngularHalfWidthY = virtualCollimatorAngularHalfWidthY;
192 fVirtualCollimatorAngularCenterX = virtualCollimatorAngularCenterX;
193 fVirtualCollimatorAngularCenterY = virtualCollimatorAngularCenterY;
194 fVirtualCollimatorTypeID = 2;}
207 G4bool flagEndTrajectory=
false);
221 void SetPhotonSamplingParameters(
G4double ekin,
229 void GeneratePhotonSampling();
235 std::vector<G4double> &vectorParticleAnglesX,
236 std::vector<G4double> &vectorParticleAnglesY,
237 std::vector<G4double> &vectorScatteringAnglesX,
238 std::vector<G4double> &vectorScatteringAnglesY,
239 std::vector<G4double> &vectorSteps,
247 G4int FindVectorIndex(std::vector<G4double> &myvector,
G4double value);
249 G4double fTotalRadiationProbability = 0.;
250 G4double fSinglePhotonRadiationProbabilityLimit=0.25;
254 G4int fNSmallTrajectorySteps=10000;
258 G4int fNMCPhotons =150;
260 G4int fNBinsSpectrum = 110;
261 G4double fMinPhotonEnergy = 0.1*CLHEP::MeV;
262 G4double fMaxPhotonEnergy = 1*CLHEP::GeV;
272 G4double fVirtualCollimatorAngularHalfWidthX = 1.;
273 G4double fVirtualCollimatorAngularHalfWidthY = 1.;
274 G4double fVirtualCollimatorAngularHalfWidthX2=1.;
275 G4double fVirtualCollimatorAngularHalfWidthY2=1.;
276 G4double fVirtualCollimatorAngularCenterX = 0.;
277 G4double fVirtualCollimatorAngularCenterY = 0.;
278 std::vector<G4bool> fInsideVirtualCollimator;
279 G4int fVirtualCollimatorTypeID = 0;
282 std::vector<G4double> fLogAddRangeEmindEmin;
283 std::vector<G4double> fLogAddRangeEmaxdEmin;
284 std::vector<G4int> fTimesPhotonStatistics;
288 G4int fItrajectories = 0;
296 G4double fParamPhotonAngleX=1.e-3*CLHEP::rad;
300 G4double fParamPhotonAngleY=1.e-3*CLHEP::rad;
302 G4double fRadiationAngleFactor = 4.;
315 std::vector<G4double> fPhotonEnergyInIntegral;
316 std::vector<G4double> fPhotonAngleInIntegralX;
317 std::vector<G4double> fPhotonAngleInIntegralY;
318 std::vector<G4double> fPhotonAngleNormCoef;
320 std::vector<G4double> fIBinsSpectrum;
322 std::vector<G4double> fPhotonProductionCDF;
325 std::vector<G4double> fParticleAnglesX;
326 std::vector<G4double> fParticleAnglesY;
327 std::vector<G4double> fScatteringAnglesX;
328 std::vector<G4double> fScatteringAnglesY;
329 std::vector<G4double> fSteps;
330 std::vector<G4double> fGlobalTimes;
331 std::vector<G4ThreeVector> fParticleCoordinatesXYZ;
334 std::vector<G4double> fFa;
335 std::vector<G4double> fSs;
336 std::vector<G4double> fSc;
337 std::vector<G4double> fSsx;
338 std::vector<G4double> fSsy;
339 std::vector<G4double> fScx;
340 std::vector<G4double> fScy;
343 std::vector<G4double> fPhotonEnergyInSpectrum;
345 std::vector<G4int> fNPhotonsPerBin;
348 std::vector<G4double> fSpectrum;
351 std::vector<std::vector<G4double>> fAccumSpectrum;
354 std::vector<G4double> fAccumTotalSpectrum;
359 std::vector<G4double> fTotalSpectrum;
366 std::vector<G4double> fImax0;
369 std::vector<G4double> fTotalRadiationProbabilityAlongTrajectory;
G4bool DoRadiation(G4double etotal, G4double mass, G4double angleX, G4double angleY, G4double angleScatteringX, G4double angleScatteringY, G4double step, G4double globalTime, G4ThreeVector coordinateXYZ, G4bool flagEndTrajectory=false)