G4ecpssrBaseKxsModel.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 
00027 #ifndef G4ecpssrBaseKxsModel_hh
00028 #define G4ecpssrBaseKxsModel_hh 1
00029 
00030 #include "G4VecpssrKModel.hh"
00031 #include "globals.hh"
00032 #include <map>
00033 #include <vector>
00034 
00035 #include "G4CrossSectionDataSet.hh"
00036 
00037 
00038 class G4ecpssrBaseKxsModel : public G4VecpssrKModel
00039 {
00040 public:
00041 
00042   G4ecpssrBaseKxsModel();
00043 
00044   ~G4ecpssrBaseKxsModel();
00045                              
00046   
00047   G4double CalculateCrossSection(G4int, G4double, G4double);//according to W.Brandt and G.Lapicki, Phys.Rev.A23(1981)
00048   
00049   G4double  ExpIntFunction(G4int n,G4double x);//Exponential Integral Function
00050   
00051 private:
00052   
00053   G4ecpssrBaseKxsModel(const G4ecpssrBaseKxsModel&);
00054   G4ecpssrBaseKxsModel & operator = (const G4ecpssrBaseKxsModel &right);
00055 
00056   G4double FunctionFK(G4double k, G4double theta);
00057 
00058   G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
00059    
00060   G4double LinLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
00061    
00062   G4double QuadInterpolator(G4double e11, 
00063                             G4double e12, 
00064                             G4double e21, 
00065                             G4double e22, 
00066                             G4double x11,
00067                             G4double x12, 
00068                             G4double x21, 
00069                             G4double x22, 
00070                             G4double t1, 
00071                             G4double t2, 
00072                             G4double t, 
00073                             G4double e);
00074 
00075   typedef std::map<double, std::map<double, double> > TriDimensionMap;
00076 
00077   TriDimensionMap FKData;
00078   std::vector<double> dummyVec;
00079 
00080   typedef std::map<double, std::vector<double> > VecMap;
00081   VecMap aVecMap;
00082 
00083   G4int verboseLevel;
00084 
00085   G4CrossSectionDataSet* tableC1;
00086   G4CrossSectionDataSet* tableC2;
00087   G4CrossSectionDataSet* tableC3;
00088 };
00089   
00090 #endif

Generated on Mon May 27 17:48:05 2013 for Geant4 by  doxygen 1.4.7