ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4VComponentCrossSection.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4VComponentCrossSection.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 //
27 // -------------------------------------------------------------------
28 //
29 // GEANT4 Class header file
30 //
31 //
32 // File name: G4VComponentCrossSection
33 //
34 // Authors: G.Folger, V.Ivanchenko, D.Wright
35 //
36 // Modifications:
37 //
38 
39 //
40 // Class Description
41 // This is a base class for hadronic cross section data source
42 // Class Description - End
43 
44 #ifndef G4VComponentCrossSection_h
45 #define G4VComponentCrossSection_h 1
46 
47 #include "G4ParticleDefinition.hh"
48 #include "G4Element.hh"
49 #include "globals.hh"
50 
52 
54 {
55 public: //with description
56 
57  explicit G4VComponentCrossSection(const G4String& nam = "");
58 
59  virtual ~G4VComponentCrossSection();
60 
61  inline
63  G4double kinEnergy,
64  const G4Element*);
65 
66  virtual
68  G4double kinEnergy,
69  G4int /*Z*/, G4double /*N*/) = 0;
70 
71  virtual
73  G4double kinEnergy,
74  G4int /*Z*/, G4int /*N*/) = 0;
75 
76  inline
78  G4double kinEnergy,
79  const G4Element*);
80 
81  virtual
83  G4double kinEnergy,
84  G4int /*Z*/, G4double /*N*/) = 0;
85 
86  virtual
88  G4double kinEnergy,
89  G4int /*Z*/, G4int /*N*/) = 0;
90 
91  inline
93  G4double kinEnergy,
94  const G4Element*);
95 
96  virtual
98  G4double kinEnergy,
99  G4int /*Z*/, G4double /*N*/) = 0;
100 
101  virtual
103  G4double kinEnergy,
104  G4int /*Z*/, G4int /*N*/) = 0;
105 
106  virtual
108  G4double kinEnergy,
109  G4int /*Z*/, G4int /*N*/);
110 
111  virtual
113 
114  virtual
116 
117  virtual void Description(std::ostream&) const;
118 
119  inline void SetVerboseLevel(G4int value);
120 
121  inline G4int GetVerboseLevel() const;
122 
123  inline G4double GetMinKinEnergy() const;
124 
125  inline void SetMinKinEnergy(G4double value);
126 
127  inline G4double GetMaxKinEnergy() const;
128 
129  inline void SetMaxKinEnergy(G4double value);
130 
131  inline const G4String& GetName() const;
132 
133 private:
134 
137 
139 
141 
144 
145  const G4String name;
146 };
147 
148 inline G4double
150  const G4ParticleDefinition* p,
151  G4double kinEnergy,
152  const G4Element* elm)
153 {
154  return GetTotalElementCrossSection(p,kinEnergy,
155  elm->GetZasInt(),elm->GetN());
156 }
157 
158 inline G4double
160  const G4ParticleDefinition* p,
161  G4double kinEnergy,
162  const G4Element* elm)
163 {
164  return GetInelasticElementCrossSection(p,kinEnergy,
165  elm->GetZasInt(),elm->GetN());
166 }
167 
168 inline G4double
170  const G4ParticleDefinition* p,
171  G4double kinEnergy,
172  const G4Element* elm)
173 {
174  return GetElasticElementCrossSection(p,kinEnergy,
175  elm->GetZasInt(),elm->GetN());
176 }
177 
179 {
181 }
182 
184 {
185  return verboseLevel;
186 }
187 
189 {
191 }
192 
194 {
195  return minKinEnergy;
196 }
197 
199 {
201 }
202 
204 {
205  return maxKinEnergy;
206 }
207 
209 {
210  return name;
211 }
212 
213 #endif