]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | /******************************************************************************* |
2 | * Project: BaBar detector at the SLAC PEP-II B-factory | |
3 | * Package: EvtGenBase | |
4 | * File: $Id: EvtPto3PAmp.hh,v 1.14 2008/03/04 20:02:16 apwagner 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, 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 | { 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 | void setmin(double min) {_min = min;} | |
57 | void setmax(double max) {_max = max;} | |
58 | ||
59 | 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 |