Loading...
Searching...
No Matches
LET.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/// \file radiobiology/include/LET.hh
27/// \brief Definition of the RadioBio::LET class
28
29#ifndef RadiobiologyLET_h
30#define RadiobiologyLET_h 1
31#include "G4AnalysisManager.hh"
32#include "G4ParticleDefinition.hh"
33#include "globals.hh"
34
36
37#include <fstream>
38#include <string>
39#include <valarray>
40#include <vector>
41
42class G4Material;
43
44namespace RadioBio
45{
46
47// Forward declariation of other radiobiology classes
48class Hit;
49class LETAccumulable;
50class LETMessenger;
51class IonLet;
52
53class LET : public VRadiobiologicalQuantity
54{
55 public:
56 LET();
57 ~LET() override;
58
59 // Virtual methods to override
60 void AddFromAccumulable(G4VAccumulable*) override;
61 void Initialize() override;
62 void Compute() override;
63 void Reset() override;
64 void Store() override;
65 void PrintParameters() override;
66
67 private:
68 // Numerator and Denominator of Track-averaged LET
71
72 // Numerator and Denominator of Dose-averaged LET
75
76 // Track-averaged and Dose-averaged LET
79
80 std::vector<IonLet> fIonLetStore;
81
82 // std::ofstream ofs;
83
84 // To be used for accumulation
85 void SetNTotalLETT(const array_type NTotalLETT)
86 {
87 fNTotalLETT = NTotalLETT;
88 }
89 void SetNTotalLETD(const array_type NTotalLETD)
90 {
91 fNTotalLETD = NTotalLETD;
92 }
93 void SetDTotalLETT(const array_type DTotalLETT)
94 {
95 fDTotalLETT = DTotalLETT;
96 }
97 void SetDTotalLETD(const array_type DTotalLETD)
98 {
99 fDTotalLETD = DTotalLETD;
100 }
101
102 void AddNTotalLETT(const array_type NTotalLETT)
103 {
104 fNTotalLETT += NTotalLETT;
105 }
106 void AddNTotalLETD(const array_type NTotalLETD)
107 {
108 fNTotalLETD += NTotalLETD;
109 }
110 void AddDTotalLETT(const array_type DTotalLETT)
111 {
112 fDTotalLETT += DTotalLETT;
113 }
114 void AddDTotalLETD(const array_type DTotalLETD)
115 {
116 fDTotalLETD += DTotalLETD;
117 }
118
119 // To use to add an ion to the store (or merge data)
120 void AddIon(const IonLet ion);
121};
122
123} // namespace RadioBio
124
125#endif // LET_h
Definition of the RadioBio::VRadiobiologicalQuantity class.
class to save and hold data for LET of different ions
array_type fDTotalLETT
Definition LET.hh:70
void Store() override
Definition LET.cc:125
void Compute() override
Definition LET.cc:84
void SetNTotalLETT(const array_type NTotalLETT)
Definition LET.hh:85
std::vector< IonLet > fIonLetStore
Definition LET.hh:80
void Reset() override
Definition LET.cc:233
void SetDTotalLETT(const array_type DTotalLETT)
Definition LET.hh:93
array_type fTotalLETT
Definition LET.hh:77
void SetNTotalLETD(const array_type NTotalLETD)
Definition LET.hh:89
void AddNTotalLETT(const array_type NTotalLETT)
Definition LET.hh:102
~LET() override
Definition LET.cc:59
void PrintParameters() override
Definition LET.cc:285
void AddNTotalLETD(const array_type NTotalLETD)
Definition LET.hh:106
void SetDTotalLETD(const array_type DTotalLETD)
Definition LET.hh:97
void AddDTotalLETD(const array_type DTotalLETD)
Definition LET.hh:114
void AddDTotalLETT(const array_type DTotalLETT)
Definition LET.hh:110
void Initialize() override
Definition LET.cc:66
void AddIon(const IonLet ion)
array_type fNTotalLETT
Definition LET.hh:69
array_type fNTotalLETD
Definition LET.hh:73
array_type fTotalLETD
Definition LET.hh:78
void AddFromAccumulable(G4VAccumulable *) override
Definition LET.cc:253
array_type fDTotalLETD
Definition LET.hh:74

Applications | User Support | Publications | Collaboration