ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Run.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Run.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 example is provided by the Geant4-DNA collaboration
27 // Any report or published results obtained using the Geant4-DNA software
28 // shall cite the following Geant4-DNA collaboration publication:
29 // Med. Phys. 37 (2010) 4692-4708
30 // and papers
31 // M. Batmunkh et al. J Radiat Res Appl Sci 8 (2015) 498-507
32 // O. Belov et al. Physica Medica 32 (2016) 1510-1520
33 // The Geant4-DNA web site is available at http://geant4-dna.org
34 //
35 // -------------------------------------------------------------------
36 // November 2016
37 // -------------------------------------------------------------------
38 //
41 
42 #ifndef Run_h
43 #define Run_h 1
44 
45 #include "G4Run.hh"
46 #include "G4VProcess.hh"
47 #include "globals.hh"
48 #include <map>
49 #include "G4Molecule.hh"
50 
53 //class NeuronLoadDataFile;
54 class G4Molecule;
55 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
56 
57 class Run : public G4Run
58 {
59  public:
61  ~Run();
62 
63  public:
65  void AddPrimaryLET(G4double let);
66  void SetTrackLength(G4double tracklen);
67  void CountProcesses(const G4VProcess* process);
72  void AddEdep (G4double edep);
73  void AddEflow (G4double eflow);
75 
76  virtual void Merge(const G4Run*);
77  void EndOfRun();
78 
79 // Edep in all volume
81  void SetEdepALL(G4double vall){ fEdepAll = vall;}
82  void AddEdepALL (G4double vall)
83  {
84  fEdepAll += vall;
85  fEdepAll_err += vall*vall;
86  }
87 // 0. Edep in homogeneous Medium
89  void SetEdepMedium(G4double vall){ fEdepMedium = vall;}
90  void AddEdepMedium (G4double vall)
91  {
92  fEdepMedium += vall;
93  fEdepMedium_err += vall*vall;
94  }
95 // 1. Edep in Bounding Slice Volume
97  void SetEdepSlice(G4double vall){ fEdepSlice = vall;}
98  void AddEdepSlice (G4double vall)
99  {
100  fEdepSlice += vall;
101  fEdepSlice_err += vall*vall;
102  }
103 // 2. Edep in Soma volume
105  void SetEdepSoma(G4double vall){ fEdepSoma = vall;}
106  void AddEdepSoma (G4double vall)
107  {
108  fEdepSoma += vall;
109  fEdepSoma_err += vall*vall;
110  }
111 
114  //G4double GetSomalength(G4int i){ return fSoma3DEdep[i];}
115  //G4ThreeVector GetVectSoma(G4int i) {return fSomaCompartments[i];}
116 
117 // 3. Edep in Dendrites volume
119  void SetEdepDend(G4double vall){ fEdepDend = vall;}
120  void AddEdepDend (G4double vall)
121  {
122  fEdepDend += vall;
123  fEdepDend_err += vall*vall;
124  }
125 
128 
129 // 4. Edep in Axon volume
131  void SetEdepAxon(G4double vall){ fEdepAxon = vall;}
132  void AddEdepAxon (G4double vall)
133  {
134  fEdepAxon += vall;
135  fEdepAxon_err += vall*vall;
136  }
137 
140 
141 // 5. Edep in whole Neuron volume
143  void SetEdepNeuron(G4double vall){ fEdepNeuron = vall;}
145  {
146  fEdepNeuron += vall;
147  fEdepNeuron_err += vall*vall;
148  }
149 
150  private:
151  struct ParticleData {
153  : fCount(0), fEmean(0.), fEmin(0.), fEmax(0.) {}
155  : fCount(count), fEmean(ekin), fEmin(emin), fEmax(emax) {}
156  G4int fCount;
158  G4double fEmin;
159  G4double fEmax;
160  };
161 
162  //NeuronLoadDataFile * fNeuronLoadParamz;
165  G4double fEkin;
170 
178 
181  std::map<G4String,G4int> fMoleculeNumber;
182  std::map<G4String,G4int> fProcCounter;
183  std::map<G4String,ParticleData> fParticleDataMap1;
184  std::map<G4String,ParticleData> fParticleDataMap2;
185 };
186 
187 #endif