00001 //-------------------------------------------------------------------------- 00002 // 00003 // Environment: 00004 // This software is part of the EvtGen package developed jointly 00005 // for the BaBar and CLEO collaborations. If you use all or part 00006 // of it, please give an appropriate acknowledgement. 00007 // 00008 // Copyright Information: See EvtGen/COPYRIGHT 00009 // Copyright (C) 1998 Caltech, UCSB 00010 // 00011 // Module: EvtGen/EvtDecayTable.hh 00012 // 00013 // Description: 00014 // 00015 // Modification history: 00016 // 00017 // DJL/RYD September 25, 1996 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 00021 #ifndef EVTDECAYTABLE_HH 00022 #define EVTDECAYTABLE_HH 00023 00024 #include "EvtGenBase/EvtDecayBase.hh" 00025 //#include <fstream.h> 00026 class EvtId; 00027 00028 //Class to read in and handle the decays available 00029 //to EvtGen for each particle, and the model to be 00030 //used for each one. 00031 00032 typedef EvtDecayBase* EvtDecayBasePtr; 00033 00034 class EvtDecayTable{ 00035 00036 public: 00037 00038 static int getNMode(int ipar); 00039 00040 static EvtDecayBase* getDecay(int ipar, int imode); 00041 00042 static EvtDecayBase* gettheDecay(EvtId parent, int imode); //pingrg 00043 00044 static void readDecayFile(const std::string dec_name); 00045 00046 static int findChannel(EvtId parent,std::string model,int ndaug, EvtId *daugs, 00047 int narg, std::string *args); 00048 00049 static int inChannelList(EvtId parent, int ndaug, EvtId *daugs); 00050 00051 static EvtDecayBase *getDecayFunc(EvtParticle *); 00052 00053 static void printSummary(); 00054 00055 private: 00056 00057 }; 00058 00059 #endif 00060 00061