source: trunk/examples/advanced/radioprotection/include/RemSimAnalysisManager.hh@ 1318

Last change on this file since 1318 was 1230, checked in by garnier, 16 years ago

update to geant4.9.3

File size: 7.4 KB
RevLine 
[807]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// * RemSimAnalysisManager.hh *
29// * *
30// **********************************
31//
[1230]32// $Id: RemSimAnalysisManager.hh,v 1.12 2009/04/08 13:25:37 cirrone Exp $
[807]33//
34// Author: Susanna Guatelli (guatelli@ge.infn.it)
35//
36
37#ifdef G4ANALYSIS_USE
38#ifndef REMSIMANALYSISMANAGER_HH
39#define REMSIMANALYSISMANAGER_HH
40
41#include "globals.hh"
42#include <vector>
43#include "G4ThreeVector.hh"
44# include <AIDA/AIDA.h>
45
46namespace AIDA
47{
48 class ITree;
49 class IHistogramFactory;
50 class IAnalysisFactory;
51 class IDataPoint;
52 class ITupleFactory;
53 class ITuple;
54 class ITreeFactory;
[1230]55}
[807]56
57class RemSimAnalysisMessenger;
58class RemSimAnalysisManager {
59
60public:
61
62 ~RemSimAnalysisManager();
63 static RemSimAnalysisManager* getInstance();
64 void book(); // booking the hbook file
65
66 void energyDepositStore(G4int, G4double);
67 // Collect the energy deposit in the phantom
68 // deriving from primary and secondary particles
69
70 void primaryParticleEnergyDistribution(G4double);
71 // Initial energy of primary particles
72
73 void SecondaryEnergyDeposit(G4int, G4double);
74 // Energy deposit given by secondary particles in the phantom
75
76 void PrimaryInitialEnergyIn(G4double);
77 // Initial energy of primary particles impinging on the phantom
78
79 void PrimaryInitialEnergyOut(G4double);
80 // Initial energy of primary particles outgoing the phantom
81
82 void PrimaryEnergyIn(G4double);
83 // Energy of primary particles impinging on the phantom
84
85 void PrimaryEnergyOut(G4double);
86 // Energy of primary particles outgoing the phantom
87
88 void particleShape(G4double, G4double);
89 // Position of the energy deposits in the phantom, projected in the plane perpendicular
90 // to the direction of the primary particles (z axis)
91
92 void energyDepShape(G4double, G4double, G4double);
93 // Energy deposits in the phantom, projected in the plane perpendicular
94 // to the direction of the primary particles (z axis)
95
96 void SetFormat(G4String);
97 // At the moment it is not possible to switch the formta of the file
98 // Number of secondary particles produced in the phantom
99 void SecondaryInPhantom(G4int);
100
101 // Energy spectrum of secondary particles originated in the phantom
102 void SecondaryProtonInPhantom(G4double);
103 void SecondaryNeutronInPhantom(G4double);
104 void SecondaryPionInPhantom(G4double);
105 void SecondaryAlphaInPhantom(G4double);
106 void SecondaryPositronInPhantom(G4double);
107 void SecondaryElectronInPhantom(G4double);
108 void SecondaryGammaInPhantom(G4double);
109 void SecondaryMuonInPhantom(G4double);
110 void SecondaryOtherInPhantom(G4double);
111 void SecondaryNeutrinoInPhantom(G4double);
112 void SecondaryProtonInPhantomSlice(G4double);
113 void SecondaryNeutronInPhantomSlice(G4double);
114 void SecondaryPionInPhantomSlice(G4double);
115 void SecondaryAlphaInPhantomSlice(G4double);
116 void SecondaryPositronInPhantomSlice(G4double);
117 void SecondaryElectronInPhantomSlice(G4double);
118 void SecondaryGammaInPhantomSlice(G4double);
119 void SecondaryMuonInPhantomSlice(G4double);
120 void SecondaryOtherInPhantomSlice(G4double);
121
122 // Number of secondary particles reaching the phantom
123 void SecondaryReachingThePhantom(G4int);
124
125 // Energy spectrum of secondary particles reaching the phantom
126 void SecondaryProtonReachingThePhantom(G4double);
127 void SecondaryNeutronReachingThePhantom(G4double);
128 void SecondaryPionReachingThePhantom(G4double);
129 void SecondaryAlphaReachingThePhantom(G4double);
130 void SecondaryPositronReachingThePhantom(G4double);
131 void SecondaryElectronReachingThePhantom(G4double);
132 void SecondaryGammaReachingThePhantom(G4double);
133 void SecondaryMuonReachingThePhantom(G4double);
134 void SecondaryOtherReachingThePhantom(G4double);
135
136 // Number of secondary particles produced in the vehicle
137 void SecondaryInVehicle(G4int);
138
139 void finish();
140
141private:
142 static RemSimAnalysisManager* instance;
143 RemSimAnalysisManager();
144
145 AIDA::IAnalysisFactory* aFact;
146 AIDA::ITreeFactory* treeFact;
147 AIDA::ITree* theTree;
148
149 AIDA::IDataPointSetFactory * dataPointFactory;
150 AIDA::IHistogramFactory* histogramFactory;
151
152 AIDA::IDataPointSet* dataPoint;
153 AIDA::IHistogram1D* energyDeposit;
154 AIDA::IHistogram1D* primary;
155 AIDA::IHistogram1D* secondaryDeposit;
156 AIDA::IHistogram1D* primaryInitialE;
157 AIDA::IHistogram1D* primaryInitialEout;
158 AIDA::IHistogram1D* initialE;
159 AIDA::IHistogram1D* initialEout;
160 AIDA::IHistogram2D* shape;
161 AIDA::IHistogram2D* energyShape;
162
163 AIDA::IHistogram1D* histo_secondary_phantom;
164 AIDA::IHistogram1D* histo_secondary;
165 AIDA::IHistogram1D* histo_proton;
166 AIDA::IHistogram1D* histo_neutron;
167 AIDA::IHistogram1D* histo_pion;
168 AIDA::IHistogram1D* histo_alpha;
169 AIDA::IHistogram1D* histo_positron;
170 AIDA::IHistogram1D* histo_electron;
171 AIDA::IHistogram1D* histo_gamma;
172 AIDA::IHistogram1D* histo_muon;
173 AIDA::IHistogram1D* histo_other;
174 AIDA::IHistogram1D* histo_neutrino;
175 AIDA::IHistogram1D* histo_proton_reaching;
176 AIDA::IHistogram1D* histo_neutron_reaching;
177 AIDA::IHistogram1D* histo_pion_reaching;
178 AIDA::IHistogram1D* histo_alpha_reaching;
179 AIDA::IHistogram1D* histo_positron_reaching;
180 AIDA::IHistogram1D* histo_electron_reaching;
181 AIDA::IHistogram1D* histo_gamma_reaching;
182 AIDA::IHistogram1D* histo_muon_reaching;
183 AIDA::IHistogram1D* histo_other_reaching;
184
185 AIDA::IHistogram1D* histo_proton_slice;
186 AIDA::IHistogram1D* histo_neutron_slice;
187 AIDA::IHistogram1D* histo_pion_slice;
188 AIDA::IHistogram1D* histo_alpha_slice;
189 AIDA::IHistogram1D* histo_positron_slice;
190 AIDA::IHistogram1D* histo_electron_slice;
191 AIDA::IHistogram1D* histo_gamma_slice;
192 AIDA::IHistogram1D* histo_muon_slice;
193 AIDA::IHistogram1D* histo_other_slice;
194 AIDA::IHistogram1D* histo_vehicle;
195
196 G4String fileFormat;
197};
198#endif
199#endif
200
201
202
203
Note: See TracBrowser for help on using the repository browser.