]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenBase/EvtParticleDecayList.hh
AliDecayer realisation for the EvtGen code and EvtGen itself.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtParticleDecayList.hh
1 //--------------------------------------------------------------------------
2 //
3 // Environment:
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.
7 //
8 // Copyright Information: See EvtGen/COPYRIGHT
9 //      Copyright (C) 1998      Caltech, UCSB
10 //
11 // Module: EvtGen/EvtParticleDecayList.hh
12 //
13 // Description:
14 //
15 // Modification history:
16 //
17 //    DJL/RYD     August 11, 1998         Module created
18 //
19 //------------------------------------------------------------------------
20
21 #ifndef EVTPARTICLEDECAYLIST_HH
22 #define EVTPARTICLEDECAYLIST_HH
23
24 #include "EvtGenBase/EvtParticleDecay.hh"
25
26 typedef EvtParticleDecay* EvtParticleDecayPtr;
27
28 class EvtParticleDecayList{
29
30 public:
31
32   EvtParticleDecayList(){ 
33    _decaylist=0;
34     _nmode=0;
35     _rawbrfrsum=0;
36   }
37
38   EvtParticleDecayList(const EvtParticleDecayList &o);
39
40   ~EvtParticleDecayList();
41
42   EvtParticleDecayList& operator=(const EvtParticleDecayList &o);
43
44   int getNMode() const {return _nmode;}
45
46   void setNMode(int nmode);
47
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();}
51
52
53   EvtParticleDecay& getDecay(int nchannel);
54
55   double getRawBrfrSum() {return _rawbrfrsum;}
56   void setRawBrfrSum(double rawbrfrsum) {_rawbrfrsum=rawbrfrsum;}
57   
58   void makeChargeConj(EvtParticleDecayList* conjDecayList);
59
60   void removeDecay();
61
62   void alocateDecay(int nmode){
63     _decaylist= new EvtParticleDecayPtr[nmode];
64   }
65
66   void removeMode(EvtDecayBase* decay);
67
68   void addMode(EvtDecayBase* decay,double brfr,double massmin);
69   void finalize();
70
71   void printSummary();
72
73   bool isJetSet() ;
74
75 private:
76
77   EvtParticleDecayPtr* _decaylist;
78
79   double _rawbrfrsum;
80   int _nmode;
81
82 };
83
84 #endif
85