source: trunk/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh @ 1340

Last change on this file since 1340 was 1340, checked in by garnier, 14 years ago

update ti head

File size: 4.7 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: G4VCrossSectionDataSet.hh,v 1.14 2010/07/05 13:39:11 vnivanch Exp $
27// GEANT4 tag $Name: hadr-cross-V09-03-12 $
28//
29// -------------------------------------------------------------------
30//
31// GEANT4 Class header file
32//
33//
34// File name:    G4VCrossSectionDataSet
35//
36// Author  F.W. Jones, TRIUMF, 20-JAN-97
37//
38// Modifications:
39// 23.01.2009 V.Ivanchenko move constructor and destructor to source
40// 05.07.2010 V.Ivanchenko added name, min and max energy limit and
41//            corresponding access methods
42//
43 
44//
45// Class Description
46// This is a base class for hadronic cross section data sets.  Users may
47// derive specialized cross section classes and register them with the
48// appropriate process, or use provided data sets.
49// Class Description - End
50
51#ifndef G4VCrossSectionDataSet_h
52#define G4VCrossSectionDataSet_h 1
53
54#include "G4DynamicParticle.hh"
55#include "G4Element.hh"
56
57
58class G4VCrossSectionDataSet
59{
60public: //with description
61
62  G4VCrossSectionDataSet(const G4String& nam = "");
63
64  virtual ~G4VCrossSectionDataSet();
65
66  // The following methods need to be implemented for each new data set.
67  virtual
68  G4bool IsApplicable(const G4DynamicParticle*, const G4Element*) = 0;
69
70  virtual
71  G4bool IsZAApplicable(const G4DynamicParticle*, G4double /*Z*/, G4double /*A*/);
72
73  virtual
74  G4bool IsIsoApplicable(const G4DynamicParticle*, G4int /*Z*/, G4int /*N*/);
75
76  virtual
77  G4double GetCrossSection(const G4DynamicParticle*, 
78                           const G4Element*, 
79                           G4double aTemperature = 0.) = 0;
80
81  virtual
82  G4double GetIsoCrossSection(const G4DynamicParticle*, const G4Isotope*, 
83                              G4double aTemperature = 0.);
84
85  virtual
86  G4double GetIsoZACrossSection(const G4DynamicParticle*, G4double /*Z*/,
87                                G4double /*A*/, G4double aTemperature = 0.);
88
89  virtual
90  G4double GetZandACrossSection(const G4DynamicParticle*, G4int /*Z*/,
91                                G4int /*A*/, G4double aTemperature = 0.);
92
93  virtual
94  void BuildPhysicsTable(const G4ParticleDefinition&) = 0;
95
96  virtual
97  void DumpPhysicsTable(const G4ParticleDefinition&) = 0;
98
99public: // Without Description
100
101  inline void SetVerboseLevel(G4int value);
102
103  inline G4double GetMinKinEnergy() const;
104
105  inline void SetMinKinEnergy(G4double value);
106
107  inline G4double GetMaxKinEnergy() const;
108
109  inline void SetMaxKinEnergy(G4double value);
110
111  inline const G4String& GetName() const;
112
113protected:
114
115  G4int verboseLevel;
116
117private:
118
119  G4VCrossSectionDataSet & operator=(const G4VCrossSectionDataSet &right);
120  G4VCrossSectionDataSet(const G4VCrossSectionDataSet&);
121
122  G4double minKinEnergy;
123  G4double maxKinEnergy;
124
125  const G4String name;
126};
127
128inline void G4VCrossSectionDataSet::SetVerboseLevel(G4int value)
129{
130  verboseLevel = value;
131}
132
133inline void G4VCrossSectionDataSet::SetMinKinEnergy(G4double value)
134{
135  minKinEnergy = value;
136}
137
138inline G4double G4VCrossSectionDataSet::GetMinKinEnergy() const
139{
140  return minKinEnergy;
141}
142
143inline void G4VCrossSectionDataSet::SetMaxKinEnergy(G4double value)
144{
145  maxKinEnergy = value;
146}
147
148inline G4double G4VCrossSectionDataSet::GetMaxKinEnergy() const
149{
150  return maxKinEnergy;
151}
152
153inline const G4String& G4VCrossSectionDataSet::GetName() const
154{
155  return name;
156}
157
158#endif
Note: See TracBrowser for help on using the repository browser.