Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4PenelopeBremsstrahlungAngular.hh
Go to the documentation of this file.
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// -------------------------------------------------------------------
28//
29// Author: L.Pandola
30//
31// History:
32// -----------
33// 23 Nov 2010 L. Pandola 1st implementation
34// 24 May 2011 L. Pandola Renamed (make default Penelope)
35// 13 Mar 2012 L. Pandola Made a derived class of G4VEmAngularDistribution
36// and update the interface accordingly
37// 18 Jul 2012 L. Pandola Migrate to the new interface of G4VEmAngularDistribution
38// 03 Oct 2013 L. Pandola Migration to MT
39//
40// Class description:
41// Calculation of angular distribution for Penelope Bremsstrahlung
42// version 2008
43// --------------------------------------------------------------
44
45
46#ifndef G4PENELOPEBREMSSTRAHLUNGANGULAR_HH
47#define G4PENELOPEBREMSSTRAHLUNGANGULAR_HH 1
48#include "globals.hh"
49#include <map>
51
52class G4PhysicsTable;
53class G4Material;
54
56{
57public:
60
61 //! Samples the direction of the outgoing photon (in global coordinates).
63 G4double out_energy,
64 G4int Z,
65 const G4Material* mat = nullptr) override;
66
67 //! Set/Get Verbosity level
68 void SetVerbosityLevel(G4int vl){fVerbosityLevel = vl;};
69 G4int GetVerbosityLevel(){return fVerbosityLevel;};
70
71 //! Reserved for Master Model
72 //! The Initialize() method forces the cleaning of tables
73 void Initialize();
74 //! Reserved for Master Model
75 void PrepareTables(const G4Material* material,
76 G4bool isMaster);
77
78private:
79 void ClearTables();
80 G4double CalculateEffectiveZ(const G4Material* material);
81 void ReadDataFile();
82
83 std::map<const G4Material*,G4double> *fEffectiveZSq;
84
85 //Tables containing the Lorentz sampling coefficients
86 //The key is the effective Z of the material
87 std::map<G4double,G4PhysicsTable*> *fLorentzTables1;
88 std::map<G4double,G4PhysicsTable*> *fLorentzTables2;
89
90 static const G4int fNumberofZPoints=6;
91 static const G4int fNumberofEPoints=6;
92 static const G4int fNumberofKPoints=4;
93
94 G4double fQQ1[fNumberofZPoints][fNumberofEPoints][fNumberofKPoints];
95 G4double fQQ2[fNumberofZPoints][fNumberofEPoints][fNumberofKPoints];
96
97 G4int fVerbosityLevel;
98 G4bool fDataRead;
99};
100
101
102
103#endif
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
const G4int Z[17]
void SetVerbosityLevel(G4int vl)
Set/Get Verbosity level.
G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double out_energy, G4int Z, const G4Material *mat=nullptr) override
Samples the direction of the outgoing photon (in global coordinates).
void PrepareTables(const G4Material *material, G4bool isMaster)
Reserved for Master Model.