ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
HadrontherapyLet.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file HadrontherapyLet.hh
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
// Hadrontherapy advanced example for Geant4
27
// See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy
28
29
#ifndef HadrontherapyLet_h
30
#define HadrontherapyLet_h 1
31
#endif
32
33
#include "
G4ParticleDefinition.hh
"
34
#include "
globals.hh
"
35
#include <fstream>
36
#include <vector>
37
#include <string>
38
39
#include "
g4csv.hh
"
40
#include "
HadrontherapyMatrix.hh
"
41
struct
ionLet
42
{
43
G4bool
isPrimary
;
// True if particle is primary
44
G4int
PDGencoding
;
// Particle data group id for the particle
45
G4String
fullName
;
// AZ[excitation energy]: like He3[1277.4], He4[0.0], Li7[231.4], ...
46
G4String
name
;
// simple name without excitation energy: He3, He4, Li7, ...
47
G4int
Z
;
// atomic number
48
G4int
A
;
// mass number
49
G4double
*
letDN
, *
letDD
, *
letTN
, *
letTD
;
// Track averaged LET and Dose averaged LET
50
//friend G4bool operator<(const ionLet& a, const ionLet& b) {return (a.Z == b.Z) ? b.A < a.A : b.Z < a.Z ;}
51
G4bool
operator<
(
const
ionLet
&
a
)
const
{
return
(this->
Z
== a.
Z
) ? this->
A
< a.
A
: this->
Z
< a.
Z
;}
52
// For isotopes sort by the mass number, else sort by the atomic one.
53
};
54
55
class
G4Material
;
56
class
HadrontherapyMatrix
;
57
class
HadrontherapyPrimaryGeneratorAction
;
58
class
HadrontherapyInteractionParameters
;
59
class
HadrontherapyDetectorConstruction
;
60
61
class
HadrontherapyLet
62
{
63
private
:
64
HadrontherapyLet
(
HadrontherapyDetectorConstruction
*);
65
66
public
:
67
~HadrontherapyLet
();
68
static
HadrontherapyLet
*
GetInstance
(
HadrontherapyDetectorConstruction
*);
69
static
HadrontherapyLet
*
GetInstance
();
70
static
G4bool
doCalculation
;
71
void
Initialize
();
72
void
Clear
();
73
74
void
Fill
(
G4int
i,
G4int
j,
G4int
k
,
G4double
DE,
G4double
DX);
75
void
FillEnergySpectrum
(
G4int
trackID,
76
G4ParticleDefinition
* particleDef,
77
G4double
ekinMean,
78
G4Material
*
mat
,
79
G4double
DE,
80
G4double
DEEletrons,
81
G4double
DX,
82
G4int
i,
G4int
j,
G4int
k
);
83
void
LetOutput
();
84
void
StoreLetAscii
();
85
86
87
private
:
88
static
HadrontherapyLet
*
instance
;
89
HadrontherapyPrimaryGeneratorAction
*
pPGA
;
90
// Detector material
91
G4Material
*
detectorMat
;
92
G4double
density
;
93
G4String
filename
;
94
95
std::ofstream
ofs
;
96
std::ofstream
stopFile
;
97
HadrontherapyMatrix
*
matrix
;
98
G4int
nVoxels
,
numberOfVoxelAlongX
,
numberOfVoxelAlongY
,
numberOfVoxelAlongZ
;
99
G4double
primaryEnergy
,
energyLimit
,
binWidth
;
100
G4int
nBins
;
101
G4double
nT
,
dT
,
nD
,
dD
;
102
G4double
nSecondaryT
,
nSecondaryD
,
dSecondaryT
,
dSecondaryD
;
103
G4double
nPrimaryT
,
nPrimaryD
,
dPrimaryT
,
dPrimaryD
;
104
G4double
*
secondaryLetT
, *
secondaryLetD
, *
totalLetT
, *
DtotalLetT
, *
DtotalLetD
, *
totalLetD
;
105
G4String
nome_file
;
106
107
std::vector<ionLet>
ionLetStore
;
108
};
geant4
tree
geant4-10.6-release
examples
advanced
hadrontherapy
include
HadrontherapyLet.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:58
using
1.8.2 with
ECCE GitHub integration