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

Last change on this file since 830 was 819, checked in by garnier, 17 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.