00001
00015 #ifndef NUCUTIL_H
00016 #define NUCUTIL_H
00017
00018 #include <more/phys/ens.h>
00019 #include <map>
00020 #include <string>
00021 #include <vector>
00022
00023 namespace GenDecay {
00024
00025 class NucState;
00026 struct NucDecay;
00027 class Radiation;
00028
00029 double more_to_clhep_time(double more_time);
00030 double more_to_clhep_energy(double more_energy);
00031
00033 bool get_nucleus(const more::phys::nucleus& pn, more::phys::ens::nucleus& en);
00034
00037 NucState* get_state(const more::phys::nucleus& n,
00038 more::phys::ens::confiv_t hl = more::phys::ens::confiv_t(0.0,0.0),
00039 more::phys::ens::confiv_t rel = more::phys::ens::confiv_t(0.0,0.0),
00040 int ref=0.0);
00041
00043 NucState* get_ground(std::string name);
00044
00046 NucState* get_ground(more::phys::nucleus nucl);
00047
00052 void chain(NucState* mother, int depth=-1,
00053 more::phys::nucleus stop_nuc = more::phys::nucleus());
00054
00059 typedef std::map<std::pair<NucState*,NucState*>,std::vector<NucDecay*> > NucDecayMap_t;
00060
00062 const NucDecayMap_t& get_decays();
00063
00065 const Radiation* decay_radiation(const NucDecay& dk);
00066
00069 void dump_dataset(const more::phys::ens::dataset& ds);
00070
00071 }
00072
00073 #endif // NUCUTIL_H