source: trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateIonisationBorn.hh @ 846

Last change on this file since 846 was 819, checked in by garnier, 16 years ago

import all except CVS

  • Property svn:executable set to *
File size: 4.9 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// $Id: G4FinalStateIonisationBorn.hh,v 1.3 2007/11/13 15:20:19 pia Exp $
28// GEANT4 tag $Name:  $
29//
30// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
31//
32// History:
33// -----------
34// Date         Name              Modification
35// 28 Apr 2007  M.G. Pia          Created in compliance with design described in TNS paper
36//
37// -------------------------------------------------------------------
38
39// Class description:
40// Geant4-DNA Cross total cross section for electron elastic scattering in water
41// Reference: TNS Geant4-DNA paper
42// Reference: TNS Geant4-DNA paper
43// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
44// design foundation and implementation of the first set of models,
45// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
46// Reference for implementation model: NIM. 155, pp. 145-156, 1978
47// Further documentation available from http://www.ge.infn.it/geant4/dna
48
49// -------------------------------------------------------------------
50
51
52#ifndef G4FINALSTATEIONISATIONBORN_HH
53#define G4FINALSTATEIONISATIONBORN_HH 1
54 
55#include "globals.hh"
56#include "G4FinalStateProduct.hh"
57#include "G4WaterIonisationStructure.hh"
58#include "G4CrossSectionIonisationBornPartial.hh"
59
60class G4Track;
61class G4Step;
62
63 class G4FinalStateIonisationBorn
64 {
65 public:
66   
67   G4FinalStateIonisationBorn();
68   
69   ~G4FinalStateIonisationBorn();
70   
71   const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
72   
73 private:
74   
75   // Copy constructor and assignment operator to be added here
76   
77   G4String name; 
78   G4double lowEnergyLimitDefault;
79   G4double highEnergyLimitDefault;
80   std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
81   std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
82
83   G4FinalStateProduct product;
84
85   G4WaterIonisationStructure waterStructure;
86
87   G4CrossSectionIonisationBornPartial cross;
88   
89   G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition * aParticleDefinition, G4double incomingParticleEnergy, G4int shell) ;
90
91   void RandomizeEjectedElectronDirection(G4ParticleDefinition * aParticleDefinition, G4double incomingParticleEnergy, G4double
92                                           outgoingParticleEnergy, G4double & cosTheta, G4double & phi );
93   
94   double  DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double energyTransfer, G4int shell);
95
96   G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
97   
98   G4double QuadInterpolator(G4double e11, 
99                             G4double e12, 
100                             G4double e21, 
101                             G4double e22, 
102                             G4double x11,
103                             G4double x12, 
104                             G4double x21, 
105                             G4double x22, 
106                             G4double t1, 
107                             G4double t2, 
108                             G4double t, 
109                             G4double e);
110
111   typedef std::map<double, std::map<double, double> > TriDimensionMap;
112   TriDimensionMap eDiffCrossSectionData[6];
113   TriDimensionMap pDiffCrossSectionData[6];
114   // TriDimensionMap eDiffCrossSectionData;
115   // TriDimensionMap pDiffCrossSectionData;
116   std::vector<double> eTdummyVec;
117   std::vector<double> pTdummyVec;
118
119   typedef std::map<double, std::vector<double> > VecMap;
120   VecMap eVecm;
121   VecMap pVecm;
122 
123   //   std::ifstream eDiffCrossSection;
124   //   std::ifstream pDiffCrossSection;
125   
126};
127
128
129#endif
Note: See TracBrowser for help on using the repository browser.