BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDalitzReso.hh
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: BaBar detector at the SLAC PEP-II B-factory
3 * Package: EvtGenBase
4 * File: $Id: EvtDalitzReso.hh,v 1.1 2009/05/08 01:59:56 pingrg Exp $
5 *
6 * Description:
7 * Class to compute Dalitz amplitudes based on many models that cannot be
8 * handled with EvtResonance.
9 *
10 * Modification history:
11 * Jordi Garra Tic� 2008/07/03 File created
12 *****************************************************************************/
13
14#ifndef __EVTDALITZRESO_HH__
15#define __EVTDALITZRESO_HH__
16
17#include <string>
18#include <vector>
19#include <map>
20
28
29using std::vector;
30using std::map;
31
33
35{
36public:
37 // Numerator type
38 enum NumType { NBW = 0 , RBW_ZEMACH = 1 , RBW_KUEHN = 2 , RBW_CLEO = 3 ,
40 GS_CLEO_ZEMACH = 8 , LASS = 9 , K_MATRIX_I = 10, K_MATRIX_II = 11,
42
43 // Coupling type
44 // ChgPion : pi+ pi-
45 // NeuPion : pi0 pi0
46 // Pion : 0.5*[(pi+ pi-) + (pi0 pi0)]
47 // ChgKaon : K+ K-
48 // NeuKaon : K0 K0
49 // Kaon : 0.5*[(K+ K-) + (K0 K0)]
50 // EtaPion : eta pi0
52
54
56 EvtSpinType::spintype spin, double m0, double g0, NumType typeN);
57
59 EvtSpinType::spintype spin, double m0, double g0, NumType typeN,
60 double m0_mix, double g0_mix, double delta_mix, EvtComplex amp_mix);
61
63 EvtSpinType::spintype spin, double m0, NumType typeN, double g1, double g2, CouplingType coupling2);
64
65 // K-matrix
66 EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, std::string nameIndex, NumType typeN,
67 EvtComplex fr12prod, EvtComplex fr13prod, EvtComplex fr14prod, EvtComplex fr15prod, double s0prod);
68
69 // LASS
70 EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, double m0, double g0,
71 double a, double r, double B, double phiB, double R, double phiR);
72
73 EvtDalitzReso(const EvtDalitzReso& other);
74
76
77 EvtDalitzReso* clone() const { return new EvtDalitzReso(*this); }
78
80
81 void set_fd( double R ) { _vd.set_f( R ); }
82 void set_fb( double R ) { _vb.set_f( R ); }
83
84private:
85 EvtComplex psFactor(double& ma, double& mb, double& m);
86 EvtComplex psFactor(double& ma1, double& mb1, double& ma2, double& mb2, double& m);
87 EvtComplex propGauss(const double& m0, const double& s0, const double& m);
88 EvtComplex propBreitWigner(const double& m0, const double& g0, const double& m);
89 EvtComplex propBreitWignerRel(const double& m0, const double& g0, const double& m);
90 EvtComplex propBreitWignerRel(const double& m0, const EvtComplex& g0, const double& m);
91 EvtComplex propBreitWignerRelCoupled(const double& m0, const EvtComplex& g1, const EvtComplex& g2, const double& m);
92 EvtComplex propGounarisSakurai(const double& m0, const double& g0, const double& k0,
93 const double& m, const double& g, const double& k);
94 inline double GS_f(const double& m0, const double& g0, const double& k0, const double& m, const double& k);
95 inline double GS_h(const double& m, const double& k);
96 inline double GS_dhods(const double& m0, const double& k0);
97 inline double GS_d(const double& m0, const double& k0);
98
99 EvtComplex numerator(const EvtDalitzPoint& p, const EvtTwoBodyKine& vb, const EvtTwoBodyKine& vd);
100 double angDep(const EvtDalitzPoint& p);
101 EvtComplex mixFactor(EvtComplex prop, EvtComplex prop_mix);
102 EvtComplex Fvector( double s, int index );
103 EvtComplex lass(double s);
104
105 // Dalitz plot
106 EvtDalitzPlot _dp;
107
108 // Pairing indices:
109 EvtCyclic3::Pair _pairAng; // angular
110 EvtCyclic3::Pair _pairRes; // resonance
111
112 // Spin
114
115 // Numerator type
116 NumType _typeN;
117
118 // Nominal mass and width
119 double _m0,_g0;
120
121 // Vertices
124
125 // Daughter masses
126 double _massFirst,_massSecond;
127
128 // variables for electromagnetic mass mixing
129 double _m0_mix,_g0_mix,_delta_mix;
130 EvtComplex _amp_mix;
131
132 // variables for coupled Breit-Wigner
133 double _g1,_g2;
134 CouplingType _coupling2;
135
136 // K-matrix
137 int _kmatrix_index;
138 EvtComplex _fr12prod,_fr13prod,_fr14prod,_fr15prod;
139 double _s0prod;
140
141 // LASS
142 double _a;
143 double _r;
144 double _Blass;
145 double _phiB;
146 double _R;
147 double _phiR;
148};
149
150#endif
151
TF1 * g1
XmlRpcServer s
Definition: HelloServer.cpp:11
EvtDalitzReso(const EvtDalitzPlot &dp, EvtCyclic3::Pair pairRes, double m0, double g0, double a, double r, double B, double phiB, double R, double phiR)
EvtComplex evaluate(const EvtDalitzPoint &p)
EvtDalitzReso * clone() const
EvtDalitzReso(const EvtDalitzPlot &dp, EvtCyclic3::Pair pairRes, std::string nameIndex, NumType typeN, EvtComplex fr12prod, EvtComplex fr13prod, EvtComplex fr14prod, EvtComplex fr15prod, double s0prod)
void set_fb(double R)
EvtDalitzReso(const EvtDalitzPlot &dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, EvtSpinType::spintype spin, double m0, double g0, NumType typeN)
EvtDalitzReso(const EvtDalitzPlot &dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, EvtSpinType::spintype spin, double m0, double g0, NumType typeN, double m0_mix, double g0_mix, double delta_mix, EvtComplex amp_mix)
EvtDalitzReso(const EvtDalitzPlot &dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, EvtSpinType::spintype spin, double m0, NumType typeN, double g1, double g2, CouplingType coupling2)
void set_fd(double R)
void set_f(double R)