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/EvtParticleDecayList.hh 00012 // 00013 // Description: 00014 // 00015 // Modification history: 00016 // 00017 // DJL/RYD August 11, 1998 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 00021 #ifndef EVTPARTICLEDECAYLIST_HH 00022 #define EVTPARTICLEDECAYLIST_HH 00023 00024 #include "EvtGenBase/EvtParticleDecay.hh" 00025 00026 typedef EvtParticleDecay* EvtParticleDecayPtr; 00027 00028 class EvtParticleDecayList{ 00029 00030 public: 00031 00032 EvtParticleDecayList(){ 00033 _decaylist=0; 00034 _nmode=0; 00035 _rawbrfrsum=0; 00036 } 00037 00038 EvtParticleDecayList(const EvtParticleDecayList &o); 00039 00040 ~EvtParticleDecayList(); 00041 00042 int getNMode(){return _nmode;} 00043 00044 void setNMode(int nmode); 00045 00046 EvtDecayBase* getDecayModel(EvtParticle *p); 00047 EvtDecayBase* getDecayModel(int imode) {return _decaylist[imode]->getDecayModel();} 00048 00049 00050 EvtParticleDecay& getDecay(int nchannel); 00051 00052 double getRawBrfrSum() {return _rawbrfrsum;} 00053 void setRawBrfrSum(double rawbrfrsum) {_rawbrfrsum=rawbrfrsum;} 00054 00055 void makeChargeConj(EvtParticleDecayList* conjDecayList); 00056 00057 void removeDecay(); 00058 00059 void alocateDecay(int nmode){ 00060 _decaylist= new EvtParticleDecayPtr[nmode]; 00061 } 00062 00063 void removeMode(EvtDecayBase* decay); 00064 00065 void addMode(EvtDecayBase* decay,double brfr,double massmin); 00066 void finalize(); 00067 00068 void printSummary(); 00069 00070 private: 00071 00072 EvtParticleDecayPtr* _decaylist; 00073 00074 double _rawbrfrsum; 00075 int _nmode; 00076 00077 }; 00078 00079 #endif 00080