Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Em10RunAction.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 //
28 //
29 //
30 // $Id$
31 //
32 //
33 
34 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
35 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
36 
37 #ifndef Em10RunAction_h
38 #define Em10RunAction_h 1
39 
40 #include "G4UserRunAction.hh"
41 #include "globals.hh"
42 #include <iostream>
43 
44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
45 
46 class Em10RunMessenger;
47 class G4Run;
48 
49 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
50 
52 {
53  public:
54  Em10RunAction();
56 
57  public:
58  void BeginOfRunAction(const G4Run*);
59  void EndOfRunAction(const G4Run*);
60 
61  void CountEvent();
63  void AddEP(G4double,G4double);
64  void AddEdeps(G4double Eabs);
65  void AddTrackLength(G4double tlabs);
67  void AddnStepsNeutral(G4double ns);
68 
69  void AddTrRef(G4double tr,G4double ref);
70 
71  void FillEn(G4double En);
72  void FillTh(G4double Th);
73  void FillThBack(G4double Th);
74  void FillR(G4double R);
75  void FillTt(G4double Tt);
76  void FillTb(G4double Tt);
77  void FillTsec(G4double T);
79  void FillNbOfSteps(G4double nstep);
80  void Fillvertexz(G4double z);
81 
82  void SethistName(G4String name) ;
83 
84  void SetnbinStep(G4int nbin);
85  void SetSteplow(G4double Slow);
86  void SetStephigh(G4double Shigh);
87 
88  void SetnbinEn(G4int nbin);
89  void SetEnlow(G4double Elow);
90  void SetEnhigh(G4double Enhigh);
91 
92  void SetnbinTt(G4int nbin);
93  void SetTtlow(G4double Ttlow);
94  void SetTthigh(G4double Tthigh);
95 
96  void SetnbinTb(G4int nbin);
97  void SetTblow(G4double Tblow);
98  void SetTbhigh(G4double Tbhigh);
99 
100  void SetnbinTsec(G4int nbin);
101  void SetTseclow(G4double Tlow);
102  void SetTsechigh(G4double Thigh);
103 
104  void SetnbinTh(G4int nbin);
105  void SetThlow(G4double Thlow);
106  void SetThhigh(G4double Thhigh);
107 
108  void SetnbinThBack(G4int nbin);
109  void SetThlowBack(G4double Thlow);
110  void SetThhighBack(G4double Thhigh);
111 
112  void SetnbinR(G4int nbin);
113  void SetRlow(G4double Rlow);
114  void SetRhigh(G4double Rhigh);
115 
116  void SetnbinGamma(G4int nbin);
117  void SetElowGamma(G4double Elow);
118  void SetEhighGamma(G4double Ehigh);
119 
120  void Setnbinzvertex(G4int nbin);
121  void Setzlow(G4double z);
122  void Setzhigh(G4double z);
123 
124  void SetRndmFreq(G4int val) {saveRndm = val;}
125  G4int GetRndmFreq() {return saveRndm;}
126 
127  private:
128 
129  void bookHisto();
130 
131  private:
132 
133  G4String histName ;
134 
135  G4double EnergySumAbs,EnergySquareSumAbs;
136  G4double tlSumAbs,tlsquareSumAbs;
137  G4double nStepSumCharged,nStepSum2Charged ;
138  G4double nStepSumNeutral,nStepSum2Neutral ;
139  G4double TotNbofEvents;
140  G4double SumCharged,Sum2Charged,SumNeutral,Sum2Neutral;
141  G4double Selectron,Spositron;
142 
143  G4double Transmitted,Reflected ;
144 
145  G4double entryStep,underStep,overStep,distStep[200];
146  G4double Steplow,Stephigh,dStep;
147  G4int nbinStep;
148  G4double entryEn,underEn,overEn,distEn[200];
149  G4double Enlow,Enhigh,dEn;
150  G4int nbinEn;
151  G4double entryTt,underTt,overTt,distTt[200];
152  G4double Ttlow,Tthigh,dTt;
153  G4int nbinTt;
154  G4double Ttmean,Tt2mean;
155  G4double entryTb,underTb,overTb,distTb[200];
156  G4double Tblow,Tbhigh,dTb;
157  G4int nbinTb;
158  G4double Tbmean,Tb2mean;
159  G4double entryTsec,underTsec,overTsec,distTsec[200];
160  G4double Tseclow,Tsechigh,dTsec;
161  G4int nbinTsec;
162  G4double entryTh,underTh,overTh,distTh[200];
163  G4double Thlow,Thhigh,dTh;
164  G4int nbinTh;
165  G4double entryThback,underThback,overThback,distThback[200];
166  G4double Thlowback,Thhighback,dThback;
167  G4int nbinThback;
168  G4double entryR ,underR ,overR ,distR[200];
169  G4double Rlow,Rhigh,dR;
170  G4int nbinR;
171  G4double Rmean,R2mean;
172  G4double entryGamma,underGamma,overGamma,distGamma[200];
173  G4double ElowGamma,EhighGamma,dEGamma;
174  G4int nbinGamma ;
175  G4double entryvertexz,undervertexz,oververtexz,distvertexz[200];
176  G4double zlow,zhigh,dz;
177  G4int nbinvertexz;
178 
179  Em10RunMessenger* runMessenger;
180  G4int saveRndm;
181 };
182 
183 #endif
184