1 /*******************************************************************************
2 * Project: BaBar detector at the SLAC PEP-II B-factory
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
7 * Copyright (C) 2002 Caltech
8 *******************************************************************************/
10 #ifndef EVT_PTO3P_AMP_HH
11 #define EVT_PTO3P_AMP_HH
13 #include "EvtGenBase/EvtCyclic3.hh"
14 #include "EvtGenBase/EvtSpinType.hh"
17 #include "EvtGenBase/EvtAmplitude.hh"
18 #include "EvtGenBase/EvtTwoBodyVertex.hh"
19 #include "EvtGenBase/EvtPropagator.hh"
20 #include "EvtGenBase/EvtDalitzPoint.hh"
23 class EvtBlattWeisskopf;
25 class EvtPto3PAmp : public EvtAmplitude<EvtDalitzPoint> {
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,
36 EvtPto3PAmp(EvtDalitzPlot dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes,
37 EvtSpinType::spintype spin,
38 const EvtPropagator& prop, NumType typeN);
41 EvtPto3PAmp(const EvtPto3PAmp& other);
45 virtual EvtAmplitude<EvtDalitzPoint>* clone() const
46 { return new EvtPto3PAmp(*this); }
49 virtual EvtComplex amplitude(const EvtDalitzPoint& p) const;
50 EvtComplex numerator(const EvtDalitzPoint& p) const;
51 double angDep(const EvtDalitzPoint& p) const;
53 void set_fd(double R);
54 void set_fb(double R);
56 void setmin(double min) {_min = min;}
57 void setmax(double max) {_max = max;}
59 virtual EvtComplex evalPropagator(double m) const { return _prop->evaluate(m); }
65 EvtCyclic3::Pair _pairAng; // angular
66 EvtCyclic3::Pair _pairRes; // resonance
70 EvtSpinType::spintype _spin;
77 // _Owned_ pointer to propagator factor
80 double _g0; // nominal width
81 double _min; //min and max values on which
82 double _max; //the resonance is defined