AliDecayer realisation for the EvtGen code and EvtGen itself.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtPto3PAmp.hh
CommitLineData
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>
16using std::vector;
17#include "EvtGenBase/EvtAmplitude.hh"
18#include "EvtGenBase/EvtTwoBodyVertex.hh"
19#include "EvtGenBase/EvtPropagator.hh"
20#include "EvtGenBase/EvtDalitzPoint.hh"
21
22class EvtComplex;
23class EvtBlattWeisskopf;
24
25class EvtPto3PAmp : public EvtAmplitude<EvtDalitzPoint> {
26
27
28public:
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
61private:
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