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
00030
00031
00032 #ifndef G4NUCL_WATCHER_HH
00033 #define G4NUCL_WATCHER_HH
00034
00035 #include "G4Types.hh"
00036
00037 #include <algorithm>
00038 #include <vector>
00039 #include <cmath>
00040
00041 class G4NuclWatcher {
00042 public:
00043 G4NuclWatcher(G4int z,
00044 const std::vector<G4double>& expa,
00045 const std::vector<G4double>& expcs,
00046 const std::vector<G4double>& experr,
00047 G4bool check,
00048 G4bool nucl);
00049
00050 ~G4NuclWatcher() {}
00051
00052 void watch(G4int a, G4int z);
00053 void setInuclCs(G4double csec, G4int nev);
00054
00055 G4double getChsq() const { return izotop_chsq; }
00056 G4bool to_check() const { return checkable; }
00057 G4bool look_forNuclei() const { return nucleable; }
00058 G4double getLhood() const { return aver_lhood; }
00059 G4double getNmatched() const { return aver_matched; }
00060
00061 std::pair<G4double, G4double> getExpCs() const;
00062 std::pair<G4double, G4double> getInuclCs() const;
00063
00064 std::pair<G4double, G4double> getAverageRatio() const {
00065 return std::pair<G4double, G4double>(average_ratio, aver_rat_err);
00066 }
00067
00068 void print();
00069
00070 private:
00071 G4int nuclz;
00072 G4double izotop_chsq;
00073 G4double average_ratio;
00074 G4double aver_rat_err;
00075 G4double aver_lhood;
00076 G4double aver_matched;
00077 std::vector<G4double> exper_as;
00078 std::vector<G4double> exper_cs;
00079 std::vector<G4double> exper_err;
00080 std::vector<G4double> simulated_as;
00081 std::vector<G4double> simulated_cs;
00082 std::vector<G4double> simulated_errors;
00083 std::vector<G4double> simulated_prob;
00084 G4bool checkable;
00085 G4bool nucleable;
00086 };
00087
00088 #endif // G4NUCL_WATCHER_HH
00089