Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HadrontherapyInteractionParameters.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 //
26 // This is the *BASIC* version of Hadrontherapy, a Geant4-based application
27 // See more at: http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy
28 //
29 // Visit the Hadrontherapy web site (http://www.lns.infn.it/link/Hadrontherapy) to request
30 // the *COMPLETE* version of this program, together with its documentation;
31 // Hadrontherapy (both basic and full version) are supported by the Italian INFN
32 // Institute in the framework of the MC-INFN Group
33 //
34 
35 #ifndef HadrontherapyInteractionParameters_H
36 #define HadrontherapyInteractionParameters_H 1
37 
38 #include "G4EmCalculator.hh"
39 #include "G4NistMaterialBuilder.hh"
40 #include "G4NistElementBuilder.hh"
41 
42 #ifdef G4ANALYSIS_USE_ROOT
43 #include "TROOT.h"
44 #include "TCanvas.h"
45 #include "TFile.h"
46 #include "TH1F.h"
47 #include "TH2F.h"
48 #include "TGraph.h"
49 #include "TLegend.h"
50 #include "TLegendEntry.h"
51 #include "TStyle.h"
52 #endif
53 
57 class G4Material;
58 
60 {
61 public:
62 
65 
66  // Get data for Mass SP
67  // G4NistMaterialBuilder class materials
68  // User must provide: material kinetic energy lower limit, kinetic energy upper limit, number of points to retrieve,
69  // [particle], [output filename].
70 
71  G4bool GetStoppingTable (const G4String& vararg);
73  const G4ParticleDefinition*,
74  const G4Material*,
75  G4double density = 0.);
76 #ifdef G4ANALYSIS_USE_ROOT
77  void PlotStopping(const G4String&);
78 #endif
79  void ListOfNistMaterials (const G4String& vararg);
80  void BeamOn();
81  bool ParseArg (const G4String& vararg);
82 
83 private:
84  G4Material* GetNistMaterial(G4String material);
85  G4NistElementBuilder* nistEle;
86  G4NistMaterialBuilder* nistMat;
87  std::ofstream outfile;
88  std::ostream data;
89  G4Material* Pmaterial;
91  bool beamFlag;
92 
93 #ifdef G4ANALYSIS_USE_ROOT
94  TCanvas *theRootCanvas;
95  TGraph *theRootGraph;
96  TAxis *axisX, *axisY;
97 #endif
98  G4double kinEmin, kinEmax, npoints;
99  G4String particle, material, filename;
100  G4double dedxtot, density;
101  std::vector<G4double> energy;
102  std::vector<G4double> massDedx;
103 
104 };
105 #endif
106 
G4double GetStopping(G4double energy, const G4ParticleDefinition *, const G4Material *, G4double density=0.)
bool G4bool
Definition: G4Types.hh:79
double G4double
Definition: G4Types.hh:76
const XML_Char const XML_Char * data