EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtDalitzResPdf.hh
Go to the documentation of this file.
1
2/***********************************************************************
3* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4* *
5* This file is part of EvtGen. *
6* *
7* EvtGen is free software: you can redistribute it and/or modify *
8* it under the terms of the GNU General Public License as published by *
9* the Free Software Foundation, either version 3 of the License, or *
10* (at your option) any later version. *
11* *
12* EvtGen is distributed in the hope that it will be useful, *
13* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15* GNU General Public License for more details. *
16* *
17* You should have received a copy of the GNU General Public License *
18* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19***********************************************************************/
20
21#ifndef EVT_DALITZ_RES_PDF_HH
22#define EVT_DALITZ_RES_PDF_HH
23
26#include "EvtGenBase/EvtPdf.hh"
27
28/*
29 * Pole compensating function for terms that exibit a resonant structure
30 * in one dimension only.
31 *
32 * f = 1 g*m0
33 * -- ------------------
34 * pi (q-q0)^2 + g^2m0^2
35 *
36 * m is the mass of the resonance, g is its width. The approximation works well for a narrow
37 * resonance. It is also readily integrable over the Dalitz plot coordinate to produce
38 *
39 * Int = 1/pi atan((q-q0)/(g*m0))
40 */
41
42class EvtDalitzResPdf : public EvtPdf<EvtDalitzPoint> {
43 public:
44 EvtDalitzResPdf( const EvtDalitzPlot& dp, double m0, double g0,
45 EvtCyclic3::Pair pairRes );
46
47 EvtPdf<EvtDalitzPoint>* clone() const override
48 {
49 return new EvtDalitzResPdf( *this );
50 }
51
53 EvtValError compute_integral( int N ) const override;
54 EvtDalitzPoint randomPoint() override;
55 double pdfMaxValue() const;
56
57 protected:
58 double pdf( const EvtDalitzPoint& ) const override;
59
60 private:
62 double m_m0; // mass
63 double m_g0; // width
64 EvtCyclic3::Pair m_pair; // resonant pair
65};
66
67#endif
EvtDalitzResPdf(const EvtDalitzPlot &dp, double m0, double g0, EvtCyclic3::Pair pairRes)
EvtDalitzPlot m_dp
double pdfMaxValue() const
EvtDalitzPoint randomPoint() override
double pdf(const EvtDalitzPoint &) const override
EvtPdf< EvtDalitzPoint > * clone() const override
EvtCyclic3::Pair m_pair
virtual EvtValError compute_integral() const
Definition EvtPdf.hh:113