Line data Source code
1 : #ifndef __EVTMRES_HH__
2 : #define __EVTMRES_HH__
3 :
4 : #include "EvtGenBase/EvtMNode.hh"
5 :
6 : class EvtMRes;
7 :
8 0 : class EvtMLineShape {
9 :
10 : public:
11 :
12 0 : virtual ~EvtMLineShape() {};
13 :
14 0 : void setres( EvtMRes * n ) { _node = n; }
15 : virtual EvtComplex shape( const vector<EvtVector4R>& product ) const=0;
16 :
17 : virtual EvtMLineShape * duplicate() const=0;
18 :
19 : protected:
20 :
21 : EvtMRes * _node;
22 : };
23 :
24 0 : class EvtMRes : public EvtMNode {
25 :
26 : public:
27 :
28 : virtual ~EvtMRes();
29 :
30 0 : int getnchild() const { return _children.size(); }
31 :
32 : virtual EvtComplex line( const vector<EvtVector4R>& product ) const
33 0 : { return _lineshape->shape( product ); }
34 :
35 : protected:
36 :
37 : // store the child nodes
38 : vector<EvtMNode *> _children;
39 :
40 : // store the parametrization amplitudes in some kind
41 : EvtSpinAmp _amp;
42 :
43 : // store the lineshape of the resonance
44 : EvtMLineShape * _lineshape;
45 :
46 : };
47 :
48 : #endif
|