G4VPolarizedCrossSection.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: G4VPolarizedCrossSection.hh 69847 2013-05-16 09:36:18Z gcosmo $
00027 //
00028 // File name:     G4VPolarizedCrossSection
00029 //
00030 // Author:        Andreas Schaelicke
00031 //
00032 // Creation date: 15.05.2005
00033 //
00034 // Modifications:
00035 //
00036 // Class Description:
00037 //   (pure virtual) interface class
00038 //
00039 //   provides readable but efficient routines to determine 
00040 //   polarization for the final state of a given process
00041 //   empoying the differential cross section
00042 //
00043 
00044 #ifndef G4VPolarizedCrossSection_h
00045 #define G4VPolarizedCrossSection_h 1
00046 
00047 #include "G4StokesVector.hh"
00048 
00049 
00050 class G4VPolarizedCrossSection
00051 {
00052 public:
00053   G4VPolarizedCrossSection();
00054   virtual ~G4VPolarizedCrossSection();
00055 
00056 public:
00057   virtual void Initialize(G4double, G4double, G4double,
00058                           const G4StokesVector & p0,const G4StokesVector & p1,
00059                           G4int flag=0); 
00060   virtual G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3) = 0; 
00061   virtual G4double TotalXSection(G4double xmin, G4double xmax, G4double y,
00062                                  const G4StokesVector & pol0,
00063                                  const G4StokesVector & pol1);
00064   
00065   // return expected mean polarisation
00066   virtual G4StokesVector GetPol2();
00067   virtual G4StokesVector GetPol3();
00068 
00069   // return basic kinematics properties
00070   //   minimal gamma value in TotalXSection
00071   inline G4double GetYmin() {return fYmin; } 
00072   //   minimal energy fraction in TotalXSection
00073   virtual G4double GetXmin(G4double y);
00074   //   maximal energy fraction in TotalXSection 
00075   virtual G4double GetXmax(G4double y);
00076 
00077   // return appropriate distribute polarisation states;
00078 //  void DicePolarization();
00079 //   G4StokesVector DicedPol2();
00080 //   G4StokesVector DicedPol3();
00081   inline void SetMaterial(G4double A, G4double Z, G4double coul) 
00082   { theA=A; theZ=Z; fCoul=coul; }
00083 protected:
00084   // define kinematics properties
00085   inline void SetXmin(G4double xmin) { fXmin=xmin;}
00086   inline void SetXmax(G4double xmax) { fXmax=xmax;}
00087   inline void SetYmin(G4double ymin) { fYmin=ymin;}
00088 
00089   // kinematic properties
00090   G4double fXmin, fXmax, fYmin;
00091   // material properties
00092   G4double theA, theZ;
00093   G4double fCoul;
00094 };
00095 
00096 
00097 #endif

Generated on Mon May 27 17:50:19 2013 for Geant4 by  doxygen 1.4.7