BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtAmp.hh
Go to the documentation of this file.
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/EvtAmp.hh
12//
13// Description:This is the (new) amplitude class.
14//
15// Modification history:
16//
17// DJL/RYD May 29, 1997 Module created
18//
19//------------------------------------------------------------------------
20
21#ifndef EVTAMP_HH
22#define EVTAMP_HH
23
24#include "EvtComplex.hh"
25#include "EvtPatches.hh"
26
27class EvtSpinDensity;
28class EvtId;
29
30class EvtAmp {
31
32public:
33 EvtAmp();
34 virtual ~EvtAmp() {}
35
36 EvtAmp( const EvtAmp& amp );
37
38 void init( EvtId p, int ndaug, EvtId* daug );
39
40 void setAmp( int* ind, const EvtComplex& amp );
41
42 const EvtComplex& getAmp( int* ind ) const;
43
45
46 EvtSpinDensity contract( int i, const EvtAmp& a );
47 EvtAmp contract( int i, const EvtSpinDensity& rho );
48
49 // sum over the i:th daugther of a1 and contract with parent of a2
50 EvtAmp contract( int i, const EvtAmp& a1, const EvtAmp& a2 );
51
54
55 EvtAmp& operator=( const EvtAmp& amp );
56
57 /**
58 * sets the amplitudes calculated in the decay objects
59 */
60 void vertex( const EvtComplex& amp );
61
62 /**
63 * sets the amplitudes calculated in the decay objects
64 */
65 void vertex( int i1, const EvtComplex& amp );
66
67 /**
68 * sets the amplitudes calculated in the decay objects
69 */
70 void vertex( int i1, int i2, const EvtComplex& amp );
71
72 /**
73 * sets the amplitudes calculated in the decay objects
74 */
75 void vertex( int i1, int i2, int i3, const EvtComplex& amp );
76
77 /**
78 * sets the amplitudes calculated in the decay objects
79 */
80 void vertex( int* i1, const EvtComplex& amp );
81
82 void dump();
83
84private:
85 friend class EvtDecayAmp;
86 friend class EvtKstarstargamma;
87
88 void setNDaug( int n );
89 void setNState( int parent_states, int* daug_states );
90
91 // the amplitudes
92 EvtComplex _amp[450]; // for run RaritaShwinger particle, the lowest dimension need 144, or
93 // crashed. Deng z r and Ping rg
94
95 // the number of daughters
96 int _ndaug;
97
98 // the number of states of the parent
99 int _pstates;
100
101 // number of states of the daughter
102 int dstates[10];
103
104 // the nontrivial index of the daughter
105 int _dnontrivial[10];
106
107 // number of nontrivial daugts+parent
108 int _nontrivial;
109
110 // compact nstates
111 int _nstate[5];
112};
113
114#endif
const Int_t n
const EvtComplex & getAmp(int *ind) const
Definition EvtAmp.cc:121
EvtSpinDensity contract(int i, const EvtAmp &a)
Definition EvtAmp.cc:317
void setAmp(int *ind, const EvtComplex &amp)
Definition EvtAmp.cc:108
void vertex(const EvtComplex &amp)
Definition EvtAmp.cc:441
friend class EvtDecayAmp
Definition EvtAmp.hh:85
EvtAmp()
Definition EvtAmp.cc:35
void init(EvtId p, int ndaug, EvtId *daug)
Definition EvtAmp.cc:65
void dump()
Definition EvtAmp.cc:397
EvtSpinDensity getBackwardSpinDensity(EvtSpinDensity *rho_list)
Definition EvtAmp.cc:197
virtual ~EvtAmp()
Definition EvtAmp.hh:34
EvtSpinDensity getForwardSpinDensity(EvtSpinDensity *rho_list, int k)
Definition EvtAmp.cc:225
EvtSpinDensity getSpinDensity()
Definition EvtAmp.cc:135
EvtAmp & operator=(const EvtAmp &amp)
Definition EvtAmp.cc:470
friend class EvtKstarstargamma
Definition EvtAmp.hh:86
Definition EvtId.hh:27