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