1 //--------------------------------------------------------------------------
4 // This software is part of the EvtGen package developed jointly
5 // for the BaBar and CLEO collaborations. If you use all or part
6 // of it, please give an appropriate acknowledgement.
8 // Copyright Information: See EvtGen/COPYRIGHT
9 // Copyright (C) 1998 Caltech, UCSB
11 // Module: EvtGen/EvtParticleDecayList.hh
15 // Modification history:
17 // DJL/RYD August 11, 1998 Module created
19 //------------------------------------------------------------------------
21 #ifndef EVTPARTICLEDECAYLIST_HH
22 #define EVTPARTICLEDECAYLIST_HH
24 #include "EvtGenBase/EvtParticleDecay.hh"
26 typedef EvtParticleDecay* EvtParticleDecayPtr;
28 class EvtParticleDecayList{
32 EvtParticleDecayList(){
38 EvtParticleDecayList(const EvtParticleDecayList &o);
40 ~EvtParticleDecayList();
42 EvtParticleDecayList& operator=(const EvtParticleDecayList &o);
44 int getNMode() const {return _nmode;}
46 void setNMode(int nmode);
48 EvtDecayBase* getDecayModel(EvtParticle *p);
49 EvtDecayBase* getDecayModel(int imode) {return _decaylist[imode]->getDecayModel();}
50 const EvtDecayBase* getDecayModel(int imode) const {return _decaylist[imode]->getDecayModel();}
53 EvtParticleDecay& getDecay(int nchannel);
55 double getRawBrfrSum() {return _rawbrfrsum;}
56 void setRawBrfrSum(double rawbrfrsum) {_rawbrfrsum=rawbrfrsum;}
58 void makeChargeConj(EvtParticleDecayList* conjDecayList);
62 void alocateDecay(int nmode){
63 _decaylist= new EvtParticleDecayPtr[nmode];
66 void removeMode(EvtDecayBase* decay);
68 void addMode(EvtDecayBase* decay,double brfr,double massmin);
77 EvtParticleDecayPtr* _decaylist;