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/EvtAmp.hh
13 // Description:This is the (new) amplitude class.
15 // Modification history:
17 // DJL/RYD May 29, 1997 Module created
19 //------------------------------------------------------------------------
24 #include "EvtGenBase/EvtComplex.hh"
25 #include "EvtGenBase/EvtPatches.hh"
35 EvtAmp(const EvtAmp& amp);
37 void init(EvtId p,int ndaug,EvtId *daug);
39 void setAmp(int *ind,const EvtComplex& amp);
41 const EvtComplex& getAmp(int *ind)const;
43 EvtSpinDensity getSpinDensity();
45 EvtSpinDensity contract(int i,const EvtAmp& a);
46 EvtAmp contract(int i, const EvtSpinDensity& rho);
48 //sum over the i:th daugther of a1 and contract with parent of a2
49 EvtAmp contract(int i, const EvtAmp& a1,const EvtAmp& a2);
52 EvtSpinDensity getForwardSpinDensity(EvtSpinDensity *rho_list,int k);
53 EvtSpinDensity getBackwardSpinDensity(EvtSpinDensity *rho_list);
55 EvtAmp& operator=(const EvtAmp& amp);
59 * sets the amplitudes calculated in the decay objects
61 void vertex(const EvtComplex& amp);
64 * sets the amplitudes calculated in the decay objects
66 void vertex(int i1, const EvtComplex& amp);
69 * sets the amplitudes calculated in the decay objects
71 void vertex(int i1, int i2, const EvtComplex& amp);
74 * sets the amplitudes calculated in the decay objects
76 void vertex(int i1, int i2, int i3, const EvtComplex& amp);
79 * sets the amplitudes calculated in the decay objects
81 void vertex(int *i1, const EvtComplex& amp);
88 friend class EvtDecayAmp;
89 friend class EvtKstarstargamma;
92 void setNState(int parent_states,int *daug_states);
97 // the number of daughters
100 // the number of states of the parent
103 // number of states of the daughter
106 // the nontrivial index of the daughter
107 int _dnontrivial[10];
109 // number of nontrivial daugts+parent