Line data Source code
1 : /*******************************************************************************
2 : * Project: BaBar detector at the SLAC PEP-II B-factory
3 : * Package: EvtGenBase
4 : * File: $Id: EvtDalitzResPdf.hh,v 1.2 2009-03-16 16:42:46 robbep Exp $
5 : * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002
6 : *
7 : * Copyright (C) 2002 Caltech
8 : *******************************************************************************/
9 :
10 : /*
11 : * Pole compensating function for terms that exibit a resonant structure
12 : * in one dimension only.
13 : *
14 : * f = 1 g*m0
15 : * -- ------------------
16 : * pi (q-q0)^2 + g^2m0^2
17 : *
18 : * m is the mass of the resonance, g is its width. The approximation works well for a narrow
19 : * resonance. It is also readily integrable over the Dalitz plot coordinate to produce
20 : *
21 : * Int = 1/pi atan((q-q0)/(g*m0))
22 : */
23 :
24 : #ifndef EVT_DALITZ_RES_PDF_HH
25 : #define EVT_DALITZ_RES_PDF_HH
26 :
27 : #include "EvtGenBase/EvtPdf.hh"
28 : #include "EvtGenBase/EvtDalitzPoint.hh"
29 : #include "EvtGenBase/EvtCyclic3.hh"
30 :
31 : class EvtDalitzResPdf : public EvtPdf<EvtDalitzPoint> {
32 :
33 : public:
34 :
35 : EvtDalitzResPdf(const EvtDalitzPlot& dp,double m0, double g0, EvtCyclic3::Pair pairRes);
36 : EvtDalitzResPdf(const EvtDalitzResPdf& other);
37 : virtual ~EvtDalitzResPdf();
38 :
39 :
40 0 : EvtPdf<EvtDalitzPoint>* clone() const { return new EvtDalitzResPdf(*this); }
41 :
42 : virtual EvtValError compute_integral(int N) const;
43 : virtual EvtDalitzPoint randomPoint();
44 : double pdfMaxValue() const;
45 :
46 : protected:
47 :
48 : virtual double pdf(const EvtDalitzPoint&) const;
49 :
50 : private:
51 :
52 : EvtDalitzPlot _dp;
53 : double _m0; // mass
54 : double _g0; // width
55 : EvtCyclic3::Pair _pair; // resonant pair
56 : };
57 :
58 : #endif
59 :
|