source: trunk/source/processes/electromagnetic/adjoint/include/G4AdjointBremsstrahlungModel.hh@ 1036

Last change on this file since 1036 was 966, checked in by garnier, 17 years ago

fichier ajoutes

File size: 5.1 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// Module: G4AdjointBremsstrahlungModel.hh
28// Author: L. Desorgher
29// Date: 15 June 2007
30// Organisation: SpaceIT GmbH
31// Customer: ESA/ESTEC
32/////////////////////////////////////////////////////////////////////////////////
33//
34// CHANGE HISTORY
35// --------------
36// ChangeHistory:
37// 15 June 2007 creation by L. Desorgher. Adapted from G4eBremsstrahlungModel
38//
39//-------------------------------------------------------------
40// Documentation:
41// Adjoint Model for e- Bremsstrahlung
42//
43
44
45
46#ifndef G4AdjointBremsstrahlungModel_h
47#define G4AdjointBremsstrahlungModel_h 1
48#include "globals.hh"
49#include "G4VEmAdjointModel.hh"
50#include "G4eBremsstrahlungModel.hh"
51class G4Timer;
52class G4AdjointBremsstrahlungModel: public G4VEmAdjointModel
53
54{
55public:
56
57 G4AdjointBremsstrahlungModel();
58 ~G4AdjointBremsstrahlungModel();
59 virtual void SampleSecondaries(const G4Track& aTrack,
60 G4bool IsScatProjToProjCase,
61 G4ParticleChange* fParticleChange);
62
63 virtual G4double DiffCrossSectionPerVolumePrimToSecond(
64 const G4Material* aMaterial,
65 G4double kinEnergyProj, // kinetic energy of the primary particle before the interaction
66 G4double kinEnergyProd // kinetic energy of the secondary particle
67 );
68 G4double DiffCrossSectionPerVolumePrimToSecond1(
69 const G4Material* aMaterial,
70 G4double kinEnergyProj, // kinetic energy of the primary particle before the interaction
71 G4double kinEnergyProd // kinetic energy of the secondary particle
72 );
73 G4double DiffCrossSectionPerVolumePrimToSecond2(
74 const G4Material* aMaterial,
75 G4double kinEnergyProj, // kinetic energy of the primary particle before the interaction
76 G4double kinEnergyProd // kinetic energy of the secondary particle
77 );
78 G4double DiffCrossSectionPerVolumePrimToSecond3(
79 const G4Material* aMaterial,
80 G4double kinEnergyProj, // kinetic energy of the primary particle before the interaction
81 G4double kinEnergyProd // kinetic energy of the secondary particle
82 );
83 void DefineDirectBremModel(G4eBremsstrahlungModel* aModel);
84 inline void SetdCSModel(G4String aString) {ModeldCS=aString;}
85
86
87private:
88
89 void InitialiseParameters();
90 G4double SupressionFunction(const G4Material* material, G4double tkin,
91 G4double gammaEnergy);
92
93
94private:
95 G4eBremsstrahlungModel* theDirectBremModel;
96
97 G4double highKinEnergy;
98 G4double lowKinEnergy;
99 G4double probsup;
100 G4double MigdalConstant;
101 G4double LPMconstant;
102 G4double highEnergyTh;
103 G4bool theLPMflag;
104 G4bool isElectron;
105
106 //Vector
107
108 std::vector<float> FZ;
109 std::vector<float> ah1;
110 std::vector<float> ah2;
111 std::vector<float> ah3;
112
113 std::vector<float> bh1;
114 std::vector<float> bh2;
115 std::vector<float> bh3;
116
117 std::vector<float> al0;
118 std::vector<float> al1;
119 std::vector<float> al2;
120
121 std::vector<float> bl0;
122 std::vector<float> bl1;
123 std::vector<float> bl2;
124
125 std::vector<float> SigmaPerAtom;
126 G4Timer* theTimer;
127
128 G4String ModeldCS;
129
130
131};
132
133#endif
Note: See TracBrowser for help on using the repository browser.