1 /*****************************************************************************
2 * Project: BaBar detector at the SLAC PEP-II B-factory
3 * Package: EvtGenModels
4 * File: $Id: EvtD0mixDalitz.hh,v 1.6 2008/11/14 12:22:06 jordix Exp $
7 * The D0mixDalitz model, with many resonances and mixing implemented.
9 * Modification history:
10 * Jordi Garra Ticó 2008/07/03 File created
11 *****************************************************************************/
13 #ifndef __EVTD0MIXDALITZ_HH__
14 #define __EVTD0MIXDALITZ_HH__
16 #include "EvtGenBase/EvtComplex.hh"
17 #include "EvtGenBase/EvtPDL.hh"
18 #include "EvtGenBase/EvtId.hh"
19 #include "EvtGenBase/EvtDecayAmp.hh"
20 #include "EvtGenBase/EvtDalitzPoint.hh"
21 #include "EvtGenBase/EvtSpinType.hh"
22 #include "EvtGenBase/EvtDalitzReso.hh"
23 #include "EvtGenBase/EvtCyclic3.hh"
26 class EvtD0mixDalitz : public EvtDecayAmp
37 // q/p CP violation in the mixing.
40 // Checker of the decay mode.
45 static const EvtSpinType::spintype& _SCALAR;
46 static const EvtSpinType::spintype& _VECTOR;
47 static const EvtSpinType::spintype& _TENSOR;
49 static const EvtDalitzReso::CouplingType& _EtaPic;
50 static const EvtDalitzReso::CouplingType& _PicPicKK;
52 static const EvtDalitzReso::NumType& _RBW;
53 static const EvtDalitzReso::NumType& _GS;
54 static const EvtDalitzReso::NumType& _KMAT;
56 static const EvtCyclic3::Pair& _AB;
57 static const EvtCyclic3::Pair& _AC;
58 static const EvtCyclic3::Pair& _BC;
60 // Values to be read or computed based on values in the evt.pdl file.
61 // IDs of the relevant particles.
73 // Masses of the relevant particles.
79 // Life time and decay rate.
83 // Some useful integrals over the Dalitz plot.
88 EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point );
89 EvtComplex dalitzKsKK ( const EvtDalitzPoint& point );
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;
96 void reportInvalidAndExit() const
98 report( ERROR, "EvtD0mixDalitz" ) << "EvtD0mixDalitz: Invalid mode." << std::endl;
102 EvtD0mixDalitz() : _d1( 0 ), _d2( 0 ), _d3( 0 ),
103 _x( 0. ), _y( 0. ), _qp( 1. ),
104 _isKsPiPi( false ), _isRBWmodel( true )
107 virtual ~EvtD0mixDalitz() {};
109 // One-line inline functions.
110 std::string getName() { return "D0MIXDALITZ"; }
111 EvtDecayBase* clone() { return new EvtD0mixDalitz; }
112 void initProbMax() { setProbMax( 5200. ); }
115 void decay( EvtParticle* p );