Line data Source code
1 : /*******************************************************************************
2 : * Project: BaBar detector at the SLAC PEP-II B-factory
3 : * Package: EvtGenBase
4 : * File: $Id: EvtPto3PAmp.hh,v 1.2 2009-03-16 16:41:09 robbep Exp $
5 : * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002
6 : *
7 : * Copyright (C) 2002 Caltech
8 : *******************************************************************************/
9 :
10 : #ifndef EVT_PTO3P_AMP_HH
11 : #define EVT_PTO3P_AMP_HH
12 :
13 : #include "EvtGenBase/EvtCyclic3.hh"
14 : #include "EvtGenBase/EvtSpinType.hh"
15 : #include <vector>
16 : using std::vector;
17 : #include "EvtGenBase/EvtAmplitude.hh"
18 : #include "EvtGenBase/EvtTwoBodyVertex.hh"
19 : #include "EvtGenBase/EvtPropagator.hh"
20 : #include "EvtGenBase/EvtDalitzPoint.hh"
21 :
22 : class EvtComplex;
23 : class EvtBlattWeisskopf;
24 :
25 : class EvtPto3PAmp : public EvtAmplitude<EvtDalitzPoint> {
26 :
27 :
28 : public:
29 :
30 : // Numerator type
31 : enum NumType {NBW=0, RBW_ZEMACH=1, RBW_KUEHN=2, RBW_CLEO=3, FLATTE, GAUSS, DOUBLE_GAUSS,
32 : NONRES, NONRES_LIN, NONRES_EXP, NONRES_EXP_ADD, NONRES_CCS, NONRES_LAURA,
33 : LASS, LASS_ELASTIC, LASS_RESONANT, GS};
34 :
35 :
36 : EvtPto3PAmp(EvtDalitzPlot dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes,
37 : EvtSpinType::spintype spin,
38 : const EvtPropagator& prop, NumType typeN);
39 :
40 :
41 : EvtPto3PAmp(const EvtPto3PAmp& other);
42 :
43 : ~EvtPto3PAmp();
44 :
45 : virtual EvtAmplitude<EvtDalitzPoint>* clone() const
46 0 : { return new EvtPto3PAmp(*this); }
47 :
48 :
49 : virtual EvtComplex amplitude(const EvtDalitzPoint& p) const;
50 : EvtComplex numerator(const EvtDalitzPoint& p) const;
51 : double angDep(const EvtDalitzPoint& p) const;
52 :
53 : void set_fd(double R);
54 : void set_fb(double R);
55 :
56 0 : void setmin(double min) {_min = min;}
57 0 : void setmax(double max) {_max = max;}
58 :
59 0 : virtual EvtComplex evalPropagator(double m) const { return _prop->evaluate(m); }
60 :
61 : private:
62 :
63 : // Pairing indices:
64 :
65 : EvtCyclic3::Pair _pairAng; // angular
66 : EvtCyclic3::Pair _pairRes; // resonance
67 :
68 : // Spin
69 :
70 : EvtSpinType::spintype _spin;
71 :
72 : // Numerator type
73 :
74 : NumType _typeN;
75 :
76 :
77 : // _Owned_ pointer to propagator factor
78 :
79 : EvtPropagator* _prop;
80 : double _g0; // nominal width
81 : double _min; //min and max values on which
82 : double _max; //the resonance is defined
83 :
84 : // Vertices
85 :
86 : EvtTwoBodyVertex _vb;
87 : EvtTwoBodyVertex _vd;
88 :
89 : };
90 :
91 : #endif
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
|