39 G4double CrossSection(G4double photonEnergy, G4int partIn);
40 void PerformCompton(
const G4ThreeVector& boost, G4int partIn);
41 void SetParticle(G4int partIDIn);
43 inline void setIncomingGamma(G4LorentzVector incomingGammaIn) {incomingGamma=incomingGammaIn;}
44 inline void setIncomingElectron(G4LorentzVector incomingElectronIn) {incomingElectron=incomingElectronIn;}
45 inline G4LorentzVector GetScatteredGamma() {
return scatteredGamma;};
46 inline G4LorentzVector GetScatteredElectron() {
return scatteredElectron;};
47 G4double KleinNishinaDifferential(G4double theta);
49 G4RotationMatrix* CalculateRotation();
50 inline void SetIncomingGammaPolarization(G4StokesVector incomingGammaPolarizationIn) {incomingGammaPolarization=incomingGammaPolarizationIn;}
51 inline void SetIncomingElectronPolarization(G4StokesVector incomingElectronPolarizationIn) {incomingElectronPolarization=incomingElectronPolarizationIn;}
52 G4double MCPhi(G4double theta, G4double scatteredEnergy);
53 G4double PolarizationCrossSectionPhi(G4double theta, G4double phi, G4double scatteredEnergy);
54 G4double ScatteredEnergy(G4double theta);
55 G4double PolarizationCrossSectionMaxPhi(G4double theta,G4double EP);
57 G4LorentzVector incomingGamma;
58 G4LorentzVector scatteredGamma;
59 G4LorentzVector incomingElectron;
60 G4LorentzVector scatteredElectron;
61 G4StokesVector incomingGammaPolarization;
62 G4StokesVector incomingElectronPolarization;
63 G4StokesVector outgoingGammaPolarization;
64 G4StokesVector outgoingElectronPolarization;
65 G4double particleMass;
66 G4double particleRadius;