BOSS 8.0.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
24
26private:
27 int _d1;
28 int _d2;
29 int _d3;
30
31 // Mixing parameters.
32 double _x;
33 double _y;
34
35 // q/p CP violation in the mixing.
36 EvtComplex _qp;
37
38 // Checker of the decay mode.
39 bool _isKsPiPi;
40 bool _isRBWmodel;
41
42 // Useful constants.
43 static const EvtSpinType::spintype& _SCALAR;
44 static const EvtSpinType::spintype& _VECTOR;
45 static const EvtSpinType::spintype& _TENSOR;
46
47 static const EvtDalitzReso::CouplingType& _EtaPic;
48 static const EvtDalitzReso::CouplingType& _PicPicKK;
49
50 static const EvtDalitzReso::NumType& _RBW;
51 static const EvtDalitzReso::NumType& _GS;
52 static const EvtDalitzReso::NumType& _KMAT;
53
54 static const EvtCyclic3::Pair& _AB;
55 static const EvtCyclic3::Pair& _AC;
56 static const EvtCyclic3::Pair& _BC;
57
58 // Values to be read or computed based on values in the evt.pdl file.
59 // IDs of the relevant particles.
60 EvtId _D0;
61 EvtId _D0B;
62 EvtId _KM;
63 EvtId _KP;
64 EvtId _K0;
65 EvtId _K0B;
66 EvtId _KL;
67 EvtId _KS;
68 EvtId _PIM;
69 EvtId _PIP;
70
71 // Masses of the relevant particles.
72 double _mD0;
73 double _mKs;
74 double _mPi;
75 double _mK;
76
77 // Life time and decay rate.
78 double _ctau;
79 double _gamma;
80
81 // Some useful integrals over the Dalitz plot.
82 EvtComplex _iChi;
83 EvtComplex _iChi2;
84
85 void readPDGValues();
86 EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point );
87 EvtComplex dalitzKsKK( const EvtDalitzPoint& point );
88
89 // Time evolution functions for hamiltonian eigenstates.
90 // Negative exponential part removed.
91 EvtComplex h1( const double& ct ) const;
92 EvtComplex h2( const double& ct ) const;
93
94 void reportInvalidAndExit() const {
95 report( ERROR, "EvtD0mixDalitz" ) << "EvtD0mixDalitz: Invalid mode." << std::endl;
96 exit( 1 );
97 }
98
99public:
101 : _d1( 0 )
102 , _d2( 0 )
103 , _d3( 0 )
104 , _x( 0. )
105 , _y( 0. )
106 , _qp( 1. )
107 , _isKsPiPi( false )
108 , _isRBWmodel( true ) {}
109
110 virtual ~EvtD0mixDalitz(){};
111
112 // One-line inline functions.
113 void getName( std::string& model_name ) { model_name = "D0MIXDALITZ"; }
115 void initProbMax() { setProbMax( 5200. ); }
116
117 void init();
118 void decay( EvtParticle* p );
119};
120
121#endif
ostream & report(Severity severity, const char *facility)
Definition EvtReport.cc:34
@ 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