/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 00014 #ifndef GTDECAYERATOR_H 00015 #define GTDECAYERATOR_H 00016 00017 00018 #include "GenTools/IHepMCEventMutator.h" 00019 #include "GaudiAlg/GaudiTool.h" 00020 #include "GenDecay/NucState.h" 00021 #include "GenDecay/NucDecay.h" 00022 00023 #include "HepMC/GenParticle.h" 00024 00025 #include <string> 00026 #include <map> 00027 00028 00029 namespace GenDecay { 00030 class DecayRates; 00031 } 00032 00033 class GtDecayerator : public GaudiTool, 00034 virtual public IHepMCEventMutator 00035 { 00036 00037 public: 00038 00039 GtDecayerator(const std::string& type, 00040 const std::string& name, 00041 const IInterface* parent); 00042 virtual ~GtDecayerator(); 00043 00044 virtual StatusCode initialize(); 00045 virtual StatusCode finalize(); 00046 00047 // HepMCEventMutator interface 00048 virtual StatusCode mutate(HepMC::GenEvent& event); 00049 00050 private: 00056 std::string m_parentNuclide; 00057 00058 00062 double m_parentAbundance; 00063 00064 00068 std::map<std::string,double> m_abundanceMap; 00069 00070 00075 bool m_secularEquilibrium; 00076 00077 00087 double m_correlationTime; 00088 00089 00090 GenDecay::DecayRates* m_rates; 00091 00092 HepMC::GenParticle* make_particle(GenDecay::NucState& state, int status=2); 00093 00094 HepMC::GenParticle* make_particle(GenDecay::NucDecay& dk); 00095 00096 }; 00097 00098 00099 #endif // GTDECAYERATOR_H