ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
STCyclotronRun.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file STCyclotronRun.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 // Author: F. Poignant, floriane.poignant@gmail.com
27 //
28 // file STCyclotronRun.hh
29 #ifndef STCyclotronRun_h
30 #define STCyclotronRun_h 1
31 
32 #include "G4Run.hh"
33 #include "globals.hh"
34 #include <map>
35 #include <fstream>
36 
41 
42 class STCyclotronRun : public G4Run
43 {
44  public:
45 
47  virtual ~STCyclotronRun();
48 
49  virtual void Merge(const G4Run*);
50  virtual void EndOfRun(G4double);
51 
52  public:
53 
54  //Accumulation functions
57  void CountParticlesTarget();
58 
59  //Setting functions
60  //parameters for the geometry
61  //---> Target
65  //--->Foil
66  void SetFoilVolume(G4double);
68 
69  //parameters for the beam
71  void SetBeamName(G4String);
72  void SetBeamEnergy(G4double);
74 
75  //parameters of the run
78 
80  std::map<G4int, G4String> GetIsotopeID();
82 
83  //Acumulation functions for maps
84  //---->Accumulation of isotopes
88 
89  //---->Accumulation of other particles
91 
92 
93  private:
94 
95  //Accumulable variables
99 
100  //Store Isotopes created inside maps during the run
101  std::map<G4String,G4int> fPrimaryIsotopeCountTarget;
102  std::map<G4String,G4double> fPrimaryIsotopeTimeTarget;
103  std::map<G4String,G4int> fParticleCountTarget;
104  std::map<G4String,G4double> fDecayIsotopeTimeTarget;
105  std::map<G4String,G4String> fDecayIsotopeCountTarget;
106  std::map<G4String,G4String> fParticleParent;
107  std::map<G4String,G4int> fStableIsotopeCountTarget;
108  std::map<G4String,G4String> fStableIsotopeMumTarget;
109 
110  //Stored and used during the run
111  std::map<G4int,G4String> fIsotopeIDTarget;
112 
113 
114  //Parameters that may be modified via messenger classes
115 
116  //--> geometry
122  //---> run
125  //--> beam
129 
130  //Write output in ASCII
131  std::ofstream fOutPut;
132  std::ofstream fOutPut1;
133  std::ofstream fOutPut2;
134  std::ofstream fOutPut3;
135  std::ofstream fOutPut4;
136 
137 
138 };
139 
140 #endif
141 
142