Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
IORTAnalysisManager.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 // This is the *BASIC* version of IORT, a Geant4-based application
27 //
28 // Main Authors: G.Russo(a,b), C.Casarino*(c), G.C. Candiano(c),
29 // G.A.P. Cirrone(d), F.Romano(d)
30 // Contributor Authors: S.Guatelli(e)
31 // Past Authors: G.Arnetta(c), S.E.Mazzaglia(d)
32 //
33 // (a) Fondazione Istituto San Raffaele G.Giglio, Cefalù, Italy
34 // (b) IBFM-CNR , Segrate (Milano), Italy
35 // (c) LATO (Laboratorio di Tecnologie Oncologiche), Cefalù, Italy
36 // (d) Laboratori Nazionali del Sud of the INFN, Catania, Italy
37 // (e) University of Wallongong, Australia
38 //
39 // *Corresponding author, email to carlo.casarino@polooncologicocefalu.it
41 
42 #ifndef IORTTHERAPYANALYSISMANAGER_HH
43 #define IORTTHERAPYANALYSISMANAGER_HH 1
44 
45 #include "globals.hh"
46 #include "g4root.hh"
47 
52 
57 {
58 private:
66 
67 public:
69 
74 
78  void book();
83 
87  void FillEnergyDeposit(G4int voxelXId, G4int voxelYId, G4int voxelZId,
88  G4double energyDeposit);
89 
90  void BraggPeak(G4int, G4double);
91 
94 
95  void SecondaryNeutronEnergyDeposit(G4int slice, G4double energy);
97 
98  void SecondaryAlphaEnergyDeposit(G4int slice, G4double energy);
100 
101  void SecondaryGammaEnergyDeposit(G4int slice, G4double energy);
103 
104  void SecondaryElectronEnergyDeposit(G4int slice, G4double energy);
106 
107  void SecondaryTritonEnergyDeposit(G4int slice, G4double energy);
109 
110  void SecondaryDeuteronEnergyDeposit(G4int slice, G4double energy);
112 
113  void SecondaryPionEnergyDeposit(G4int slice, G4double energy);
115 
116  void electronEnergyDistribution(G4double secondaryParticleKineticEnergy);
118 
119  void gammaEnergyDistribution(G4double secondaryParticleKineticEnergy);
121 
122  void deuteronEnergyDistribution(G4double secondaryParticleKineticEnergy);
124 
125  void tritonEnergyDistribution(G4double secondaryParticleKineticEnergy);
127 
128  void alphaEnergyDistribution(G4double secondaryParticleKineticEnergy);
130 
131  void heliumEnergy(G4double secondaryParticleKineticEnergy);
133 
134  void hydrogenEnergy(G4double secondaryParticleKineticEnergy);
136 
137  //Kinetic energy by voxel, mass number A and atomic number Z.
138  void FillKineticFragmentTuple(G4int i, G4int j, G4int k, G4int A, G4double Z, G4double kinEnergy);
139 
140  //Kinetic energy by voxel, mass number A and atomic number Z of only primary particles
141  void FillKineticEnergyPrimaryNTuple(G4int i, G4int j, G4int k, G4double kinEnergy);
142 
144  void FillVoxelFragmentTuple(G4int i, G4int j, G4int k, G4int A, G4double Z, G4double energy, G4double fluence);
145 
148 
149  void FillLetFragmentTuple(G4int i, G4int j, G4int k, G4int A, G4double Z, G4double letT, G4double letD);
151 
153 
155 
156  void startNewEvent();
158 
161 
164 
165  void flush();
167 private:
168 
171 
173 
174  G4long eventCounter; // Simulation metadata
180 
181 };
182 #endif
183 
184 
185 
Float_t posZ
Definition: plotDend.C:21
void SecondaryTritonEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary tritons.
void startNewEvent()
Tell the analysis manager that a new event is starting.
void FillLetFragmentTuple(G4int i, G4int j, G4int k, G4int A, G4double Z, G4double letT, G4double letD)
let ntuple
void SecondaryDeuteronEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary deuterons.
void tritonEnergyDistribution(G4double secondaryParticleKineticEnergy)
Energy distribution of secondary tritons originated in the phantom.
void electronEnergyDistribution(G4double secondaryParticleKineticEnergy)
Energy distribution of secondary electrons originated in the phantom.
void FillEnergyDeposit(G4int voxelXId, G4int voxelYId, G4int voxelZId, G4double energyDeposit)
Float_t posY
Definition: plotDend.C:21
void setBeamMetaData(G4double, G4double)
metadata about the beam can be written this way
void SecondaryPionEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary pions.
void heliumEnergy(G4double secondaryParticleKineticEnergy)
Energy distribution of the helium (He3 and alpha) particles after the phantom.
void hydrogenEnergy(G4double secondaryParticleKineticEnergy)
Energy distribution of the hydrogen (proton, d, t) particles after the phantom.
void deuteronEnergyDistribution(G4double secondaryParticleKineticEnergy)
Energy distribution of secondary deuterons originated in the phantom.
void SecondaryAlphaEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary alpha particles.
Float_t Z
double G4double
Definition: G4Types.hh:76
void setGeometryMetaData(G4double, G4double, G4double)
from the detector construction information about the geometry can be written as metadata ...
void SecondaryGammaEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary gamma.
long G4long
Definition: G4Types.hh:80
double energy
Definition: plottest35.C:25
void FillFragmentTuple(G4int A, G4double Z, G4double energy, G4double posX, G4double posY, G4double posZ)
Energy ntuple.
double A(double temperature)
IORTAnalysisFileMessenger * fMess
void FillKineticEnergyPrimaryNTuple(G4int i, G4int j, G4int k, G4double kinEnergy)
Energy by voxel, mass number A and atomic number Z.
void FillKineticFragmentTuple(G4int i, G4int j, G4int k, G4int A, G4double Z, G4double kinEnergy)
int G4int
Definition: G4Types.hh:78
void SecondaryProtonEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary protons.
static IORTAnalysisManager * GetInstance()
void BraggPeak(G4int, G4double)
Fill 1D histogram with the Bragg peak in the phantom.
void SetAnalysisFileName(G4String)
void gammaEnergyDistribution(G4double secondaryParticleKineticEnergy)
Energy distribution of secondary gamma originated in the phantom.
void genericIonInformation(G4int, G4double, G4int, G4double)
void SecondaryElectronEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary electrons.
Float_t posX
Definition: plotDend.C:21
static IORTAnalysisManager * instance
void ThintargetBeamDisp(G4double, G4double)
void FillVoxelFragmentTuple(G4int i, G4int j, G4int k, G4int A, G4double Z, G4double energy, G4double fluence)
void alphaEnergyDistribution(G4double secondaryParticleKineticEnergy)
Energy distribution of secondary alpha originated in the phantom.
void SecondaryNeutronEnergyDeposit(G4int slice, G4double energy)
Fill 1D histogram with the energy deposit of secondary neutrons.
void flush()
Close the .hbk file with the histograms and the ntuples.