StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
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