BOSS 8.0.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 <map>
18#include <string>
19#include <vector>
20
21#include "EvtBlattWeisskopf.hh"
22#include "EvtComplex.hh"
23#include "EvtCyclic3.hh"
24#include "EvtDalitzPoint.hh"
25#include "EvtDecayAmp.hh"
26#include "EvtSpinType.hh"
27#include "EvtTwoBodyVertex.hh"
28
29using std::map;
30using std::vector;
31
33
35public:
36 // Numerator type
53
54 // Coupling type
55 // ChgPion : pi+ pi-
56 // NeuPion : pi0 pi0
57 // Pion : 0.5*[(pi+ pi-) + (pi0 pi0)]
58 // ChgKaon : K+ K-
59 // NeuKaon : K0 K0
60 // Kaon : 0.5*[(K+ K-) + (K0 K0)]
61 // EtaPion : eta pi0
75
77
79 EvtSpinType::spintype spin, double m0, double g0, NumType typeN );
80
82 EvtSpinType::spintype spin, double m0, double g0, NumType typeN,
83 double m0_mix, double g0_mix, double delta_mix, EvtComplex amp_mix );
84
86 EvtSpinType::spintype spin, double m0, NumType typeN, double g1, double g2,
87 CouplingType coupling2 );
88
89 // K-matrix
90 EvtDalitzReso( const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, std::string nameIndex,
91 NumType typeN, EvtComplex fr12prod, EvtComplex fr13prod, EvtComplex fr14prod,
92 EvtComplex fr15prod, double s0prod );
93
94 // LASS
95 EvtDalitzReso( const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, double m0, double g0,
96 double a, double r, double B, double phiB, double R, double phiR );
97
98 EvtDalitzReso( const EvtDalitzReso& other );
99
101
102 EvtDalitzReso* clone() const { return new EvtDalitzReso( *this ); }
103
105
106 void set_fd( double R ) { _vd.set_f( R ); }
107 void set_fb( double R ) { _vb.set_f( R ); }
108
109private:
110 EvtComplex psFactor( double& ma, double& mb, double& m );
111 EvtComplex psFactor( double& ma1, double& mb1, double& ma2, double& mb2, double& m );
112 EvtComplex propGauss( const double& m0, const double& s0, const double& m );
113 EvtComplex propBreitWigner( const double& m0, const double& g0, const double& m );
114 EvtComplex propBreitWignerRel( const double& m0, const double& g0, const double& m );
115 EvtComplex propBreitWignerRel( const double& m0, const EvtComplex& g0, const double& m );
116 EvtComplex propBreitWignerRelCoupled( const double& m0, const EvtComplex& g1,
117 const EvtComplex& g2, const double& m );
118 EvtComplex propGounarisSakurai( const double& m0, const double& g0, const double& k0,
119 const double& m, const double& g, const double& k );
120 inline double GS_f( const double& m0, const double& g0, const double& k0, const double& m,
121 const double& k );
122 inline double GS_h( const double& m, const double& k );
123 inline double GS_dhods( const double& m0, const double& k0 );
124 inline double GS_d( const double& m0, const double& k0 );
125
126 EvtComplex numerator( const EvtDalitzPoint& p, const EvtTwoBodyKine& vb,
127 const EvtTwoBodyKine& vd );
128 double angDep( const EvtDalitzPoint& p );
129 EvtComplex mixFactor( EvtComplex prop, EvtComplex prop_mix );
130 EvtComplex Fvector( double s, int index );
131 EvtComplex lass( double s );
132
133 // Dalitz plot
134 EvtDalitzPlot _dp;
135
136 // Pairing indices:
137 EvtCyclic3::Pair _pairAng; // angular
138 EvtCyclic3::Pair _pairRes; // resonance
139
140 // Spin
142
143 // Numerator type
144 NumType _typeN;
145
146 // Nominal mass and width
147 double _m0, _g0;
148
149 // Vertices
152
153 // Daughter masses
154 double _massFirst, _massSecond;
155
156 // variables for electromagnetic mass mixing
157 double _m0_mix, _g0_mix, _delta_mix;
158 EvtComplex _amp_mix;
159
160 // variables for coupled Breit-Wigner
161 double _g1, _g2;
162 CouplingType _coupling2;
163
164 // K-matrix
165 int _kmatrix_index;
166 EvtComplex _fr12prod, _fr13prod, _fr14prod, _fr15prod;
167 double _s0prod;
168
169 // LASS
170 double _a;
171 double _r;
172 double _Blass;
173 double _phiB;
174 double _R;
175 double _phiR;
176};
177
178#endif
TF1 * g1
XmlRpcServer s
EvtComplex evaluate(const EvtDalitzPoint &p)
EvtDalitzReso * clone() const
void set_fb(double R)
void set_fd(double R)