source: trunk/examples/extended/medical/fanoCavity/include/RunAction.hh @ 807

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

update

File size: 4.5 KB
Line 
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// $Id: RunAction.hh,v 1.3 2007/10/29 12:36:26 maire Exp $
27// GEANT4 tag $Name:  $
28//
29//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
30//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
31
32#ifndef RunAction_h
33#define RunAction_h 1
34
35#include "G4UserRunAction.hh"
36#include "ProcessesCount.hh"
37#include "globals.hh"
38
39class G4Run;
40class G4Material;
41class DetectorConstruction;
42class PrimaryGeneratorAction;
43class HistoManager;
44
45//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
46
47class RunAction : public G4UserRunAction
48{
49  public:
50    RunAction(DetectorConstruction*, PrimaryGeneratorAction*,
51              HistoManager*);
52   ~RunAction();
53
54  public:
55    void BeginOfRunAction(const G4Run*);
56    void   EndOfRunAction(const G4Run*);
57
58    void CountProcesses(G4String);
59   
60    void SurveyConvergence(G4int);
61   
62    void sumEsecond(G4double e)    { Esecondary += e; Esecondary2 += e*e;
63                                     nbSec++;};
64   
65    void FlowInCavity(G4int k, G4double e) { EnerFlowCavity[k] += e; 
66                                             PartFlowCavity[k]++;};
67                                               
68    void AddEdepCavity(G4double de) { EdepCavity += de; EdepCavity2 += de*de;
69                                      nbEventCavity++;};
70    void AddTrakCavity(G4double dt) { trkSegmCavity += dt;};
71       
72    void StepInWall   (G4double s)  { stepWall += s; stepWall2 += s*s; 
73                                      nbStepWall++;};
74    void StepInCavity (G4double s)  { stepCavity += s; stepCavity2 += s*s; 
75                                      nbStepCavity++;};                               
76   
77  private:
78    DetectorConstruction*   detector;
79    PrimaryGeneratorAction* kinematic;
80    ProcessesCount*         ProcCounter;
81    HistoManager*           histoManager;
82   
83    G4double                Esecondary, Esecondary2;
84    G4long                  nbSec;
85   
86    G4long                  PartFlowCavity[2];
87    G4double                EnerFlowCavity[2];       
88    G4double                EdepCavity, EdepCavity2;
89    G4double                trkSegmCavity;
90    G4long                  nbEventCavity;   
91   
92    G4double                oldEmean, oldDose;
93       
94    G4double                stepWall,   stepWall2;
95    G4double                stepCavity, stepCavity2;   
96    G4long                  nbStepWall, nbStepCavity;
97   
98  private:
99    G4double                wallThickness;
100    G4double                wallRadius;
101    G4Material*             mateWall;
102    G4double                densityWall;
103
104    G4double                cavityThickness;
105    G4double                cavityRadius;
106    G4double                surfaceCavity;
107    G4double                volumeCavity;                   
108    G4Material*             mateCavity;
109    G4double                densityCavity;
110    G4double                massCavity; 
111};
112
113//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
114
115#endif
116
Note: See TracBrowser for help on using the repository browser.