00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef G4NeutronHPField_h
00030 #define G4NeutronHPField_h 1
00031
00032 #include "G4NeutronHPFieldPoint.hh"
00033 #include "G4PhysicsVector.hh"
00034
00035 class G4NeutronHPField
00036 {
00037 public:
00038
00039 G4NeutronHPField();
00040
00041 ~G4NeutronHPField();
00042
00043 inline void InitY(G4int i, G4int n)
00044 {
00045 Check(i);
00046 theData[i].InitY(n);
00047 }
00048 inline void SetData(G4int i, G4double x, G4int j, G4double y)
00049 {
00050 Check(i);
00051 theData[i].SetData(x, j, y);
00052 }
00053 inline void SetEnergy(G4int i, G4double e)
00054 {
00055 Check(i);
00056 theData[i].SetX(e);
00057 }
00058 inline void SetX(G4int i, G4double e)
00059 {
00060 Check(i);
00061 theData[i].SetX(e);
00062 }
00063 inline void SetY(G4int i, G4int j, G4double x)
00064 {
00065 Check(i);
00066 theData[i].SetY(j, x);
00067 }
00068 inline G4double GetEnergy(G4int i) { return theData[i].GetX(); }
00069 inline G4double GetX(G4int i) { return theData[i].GetX(); }
00070 inline G4double GetY(G4int i, G4int j) { return theData[i].GetY(j); }
00071 inline G4NeutronHPFieldPoint & GetPoint(G4int i) { return theData[i]; }
00072
00073 G4double GetY(G4double e, G4int j);
00074
00075 inline G4int GetFieldLength() {return nEntries;}
00076
00077 void Dump();
00078
00079 private:
00080
00081 void Check(G4int i);
00082
00083 G4NeutronHPFieldPoint * theData;
00084 G4int nEntries;
00085 G4int nPoints;
00086 };
00087
00088 #endif