Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // ------------------------------------------- 27 // 28 // Geant4 Class file 29 // 30 // File name: G4PolarizedAnnihilationXS 31 // 32 // Author: Andreas Schaelicke and Pavel 33 // 34 // Class Description: 35 // * calculates the differential cross secti 36 // without phase space) incoming positron 37 // annihilations with an electron at rest 38 // * phi denotes the angle between the scatt 39 // X axis of incoming partice reference fr 40 41 #ifndef G4PolarizedAnnihilationXS_h 42 #define G4PolarizedAnnihilationXS_h 1 43 44 #include "G4StokesVector.hh" 45 #include "G4VPolarizedXS.hh" 46 47 class G4PolarizedAnnihilationXS : public G4VPo 48 { 49 public: 50 G4PolarizedAnnihilationXS(); 51 virtual ~G4PolarizedAnnihilationXS() overrid 52 53 virtual void Initialize(G4double eps, G4doub 54 const G4StokesVector 55 G4int flag = 0) over 56 57 G4double DiceEpsilon(); 58 59 virtual G4double XSection(const G4StokesVect 60 const G4StokesVect 61 62 virtual G4double TotalXSection(G4double xmin 63 const G4Stoke 64 const G4Stoke 65 66 // return expected mean polarisation 67 virtual G4StokesVector GetPol2() override; 68 virtual G4StokesVector GetPol3() override; 69 70 // minimal energy fraction in TotalXSection 71 virtual G4double GetXmin(G4double y) overrid 72 // maximal energy fraction in TotalXSection 73 virtual G4double GetXmax(G4double y) overrid 74 75 G4double getVar(G4int); 76 // test routine 77 void getCoeff(); 78 79 G4PolarizedAnnihilationXS& operator=(const G 80 delete; 81 G4PolarizedAnnihilationXS(const G4PolarizedA 82 83 private: 84 void TotalXS(); 85 void DefineCoefficients(const G4StokesVector 86 const G4StokesVector 87 88 static constexpr G4double re2 = 89 CLHEP::classic_electr_radius * CLHEP::clas 90 91 // - part depending on the polarization of t 92 G4ThreeVector fPhi2; 93 94 // - part depending on the polarization of t 95 G4ThreeVector fPhi3; 96 97 G4double polxx, polyy, polzz, polxz, polzx, 98 99 // - unpolarised + part depending on the pol 100 G4double fPhi0; 101 102 G4double fDice; 103 G4double fPolXS, fUnpXS; 104 G4double ISPxx, ISPyy, ISPzz, ISPnd; 105 }; 106 #endif 107