G4PolarizedComptonCrossSection.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // $Id: G4PolarizedComptonCrossSection.hh 69847 2013-05-16 09:36:18Z gcosmo $
00027 //
00028 // GEANT4 Class file
00029 //
00030 //
00031 // File name:     G4PolarizedComptonCrossSection
00032 //
00033 // Author:        Andreas Schaelicke
00034 //
00035 // Creation date: 15.05.2005
00036 //
00037 // Modifications:
00038 // 18-07-06 use newly calculated cross sections (P. Starovoitov)
00039 // 21-08-06 update interface to geant4.8.1 (A. Schaelicke)
00040 // 15-10-07 introduced a more general framework for cross sections (AS)
00041 //
00042 //
00043 // Class Description:
00044 //   determine the  polarization of the final state 
00045 //   in a Compton scattering process employing the differential 
00046 //   cross section by F.W.Lipps & H.A.Tolhoek
00047 //   ( Physica 20 (1954) 395 )
00048 //
00049 #ifndef G4PolarizedComptonCrossSection_h
00050 #define G4PolarizedComptonCrossSection_h 1
00051 
00052 #include "G4StokesVector.hh"
00053 #include "G4VPolarizedCrossSection.hh"
00054 
00055 
00056 
00057 class G4PolarizedComptonCrossSection : public G4VPolarizedCrossSection
00058 {
00059 public:
00060   G4PolarizedComptonCrossSection();
00061   virtual ~G4PolarizedComptonCrossSection();
00062 public:
00063   // prepares the ingredients for the calculation of a polarization 
00064   // dependent differential cross section
00065   // the kinematics is fixed (X - incoming photon energy in units of electron mass, eps - outgoing photon energy in unit of incoming photon energy, 
00066   // and polarization of the incoming particles fixed (p0, p1)
00067   // a flag specifies the extent to which polarization is taken 
00068   // into account
00069   virtual void Initialize(G4double eps, G4double X, G4double phi,
00070                           const G4StokesVector & p0,
00071                           const G4StokesVector & p1,
00072                           G4int flag=0); 
00073 
00074   // returns the differential cross section for a given polarisation state
00075   // of the final state particles to be used in the calculation of the
00076   // polarization transfer
00077   // the calculation has to be initialised by calling Initialize()
00078   // prior to the first call of this function (see above)
00079   G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3); 
00080   // total cross section
00081   G4double TotalXSection(G4double xmin, G4double xmax, G4double y,
00082                          const G4StokesVector & pol0,const G4StokesVector & pol1);
00083 
00084 public:
00085   // return expected mean polarisation
00086   G4StokesVector GetPol2();
00087   G4StokesVector GetPol3();
00088 private:
00089   void DefineCoefficients(const G4StokesVector & pol0,
00090                           const G4StokesVector & pol1);
00091   // states if an incoming or outgoing particle is polarized
00092   G4bool gammaPol2, electronPol3;
00093 
00094   // these variables store the information necessary to evaluate the  
00095   // differential cross section for arbitrary final state 
00096   // polarizations (used in XSection):
00097   // - polarization independent part
00098   G4double phi0;
00099   // - part depending on the polarization of the final photon
00100   G4ThreeVector phi2; 
00101   // - part depending on the polarization of the final electron
00102   G4ThreeVector phi3;
00103   // - product of polarizations of initial particles
00104   G4double polxx, polyy, polzz, polxz, polzx, polyz, polzy, polxy, polyx;
00105 
00106   G4double diffXSFactor, totalXSFactor, re2;
00107   G4double polXS, unpXS;
00108 };
00109 
00110 
00111 #endif

Generated on Mon May 27 17:49:23 2013 for Geant4 by  doxygen 1.4.7