40 G4double pulseDurationIn,
41 G4double pulseEnergyIn,
43 G4double laserArrivalTimeIn,
45 const G4ThreeVector& polarizationIn,
46 G4bool ignoreRayleighRangeIn =
false);
47 explicit BDSLaser(G4double wavelengthIn);
51 G4double W(G4double z)
const;
52 G4double Sigma(G4double z)
const {
return 0.5*W(z);}
53 G4double Intensity(G4double x,
double y,
double z)
const;
54 G4double Intensity(
const G4ThreeVector& xyz)
const;
55 G4double Radius()
const;
56 G4double TemporalProfileGaussian(G4double particleGlobalTime, G4double particleZCoord)
const;
57 G4double PhotonEnergy(G4double particleGamma,
58 G4double overlapAngle,
59 G4double particleBeta)
const;
60 G4double HyperbolicAngle()
const;
61 G4String GetLaserColour()
const;
65 inline G4double
M2()
const {
return m2;}
68 inline G4double
Sigma0()
const {
return sigma0;}
70 inline G4double
W0()
const {
return 2*sigma0;}
73 inline void SetT0(G4double T0In) {T0=T0In;}
82 G4double pulseDuration;
85 G4double laserArrivalTime;
87 G4ThreeVector polarization;
88 G4bool ignoreRayleighRange;
90 const static std::vector<G4double> wavelengths;
91 const static std::vector<G4String> colours;