BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtD0mixDalitz.hh
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: BaBar detector at the SLAC PEP-II B-factory
3 * Package: EvtGenModels
4 * File: $Id: EvtD0mixDalitz.hh,v 1.1 2009/05/08 01:59:56 pingrg Exp $
5 *
6 * Description:
7 * The D0mixDalitz model, with many resonances and mixing implemented.
8 *
9 * Modification history:
10 * Jordi Garra Tic� 2008/07/03 File created
11 *****************************************************************************/
12
13#ifndef __EVTD0MIXDALITZ_HH__
14#define __EVTD0MIXDALITZ_HH__
15
17#include "EvtGenBase/EvtPDL.hh"
18#include "EvtGenBase/EvtId.hh"
24
25
27{
28private:
29 int _d1;
30 int _d2;
31 int _d3;
32
33 // Mixing parameters.
34 double _x;
35 double _y;
36
37 // q/p CP violation in the mixing.
38 EvtComplex _qp;
39
40 // Checker of the decay mode.
41 bool _isKsPiPi;
42 bool _isRBWmodel;
43
44 // Useful constants.
45 static const EvtSpinType::spintype& _SCALAR;
46 static const EvtSpinType::spintype& _VECTOR;
47 static const EvtSpinType::spintype& _TENSOR;
48
49 static const EvtDalitzReso::CouplingType& _EtaPic;
50 static const EvtDalitzReso::CouplingType& _PicPicKK;
51
52 static const EvtDalitzReso::NumType& _RBW;
53 static const EvtDalitzReso::NumType& _GS;
54 static const EvtDalitzReso::NumType& _KMAT;
55
56 static const EvtCyclic3::Pair& _AB;
57 static const EvtCyclic3::Pair& _AC;
58 static const EvtCyclic3::Pair& _BC;
59
60 // Values to be read or computed based on values in the evt.pdl file.
61 // IDs of the relevant particles.
62 EvtId _D0;
63 EvtId _D0B;
64 EvtId _KM;
65 EvtId _KP;
66 EvtId _K0;
67 EvtId _K0B;
68 EvtId _KL;
69 EvtId _KS;
70 EvtId _PIM;
71 EvtId _PIP;
72
73 // Masses of the relevant particles.
74 double _mD0;
75 double _mKs;
76 double _mPi;
77 double _mK;
78
79 // Life time and decay rate.
80 double _ctau;
81 double _gamma;
82
83 // Some useful integrals over the Dalitz plot.
84 EvtComplex _iChi;
85 EvtComplex _iChi2;
86
87 void readPDGValues();
88 EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point );
89 EvtComplex dalitzKsKK ( const EvtDalitzPoint& point );
90
91 // Time evolution functions for hamiltonian eigenstates.
92 // Negative exponential part removed.
93 EvtComplex h1( const double& ct ) const;
94 EvtComplex h2( const double& ct ) const;
95
96 void reportInvalidAndExit() const
97 {
98 report( ERROR, "EvtD0mixDalitz" ) << "EvtD0mixDalitz: Invalid mode." << std::endl;
99 exit( 1 );
100 }
101public:
102 EvtD0mixDalitz() : _d1( 0 ), _d2( 0 ), _d3( 0 ),
103 _x( 0. ), _y( 0. ), _qp( 1. ),
104 _isKsPiPi( false ), _isRBWmodel( true )
105 {}
106
107 virtual ~EvtD0mixDalitz() {};
108
109 // One-line inline functions.
110 void getName(std::string& model_name) { model_name = "D0MIXDALITZ"; }
112 void initProbMax() { setProbMax( 5200. ); }
113
114 void init();
115 void decay( EvtParticle* p );
116};
117
118#endif
119
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
virtual ~EvtD0mixDalitz()
void decay(EvtParticle *p)
EvtDecayBase * clone()
void getName(std::string &model_name)
void setProbMax(double prbmx)
Definition: EvtId.hh:27