StRoot  1
EvtPto3PAmp.hh
1 /*******************************************************************************
2  * Project: BaBar detector at the SLAC PEP-II B-factory
3  * Package: EvtGenBase
4  * File: \$Id: EvtPto3PAmp.hh,v 1.1 2016/09/23 18:37:32 jwebb 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  { 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