File indexing completed on 2026-08-06 09:20:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef __EVTD0MIXDALITZ_HH__
0022 #define __EVTD0MIXDALITZ_HH__
0023
0024 #include "EvtGenBase/EvtComplex.hh"
0025 #include "EvtGenBase/EvtCyclic3.hh"
0026 #include "EvtGenBase/EvtDalitzPoint.hh"
0027 #include "EvtGenBase/EvtDalitzReso.hh"
0028 #include "EvtGenBase/EvtDecayAmp.hh"
0029 #include "EvtGenBase/EvtId.hh"
0030 #include "EvtGenBase/EvtPDL.hh"
0031 #include "EvtGenBase/EvtSpinType.hh"
0032
0033
0034
0035
0036 class EvtD0mixDalitz : public EvtDecayAmp {
0037 private:
0038 int _d1;
0039 int _d2;
0040 int _d3;
0041
0042
0043 double _x;
0044 double _y;
0045
0046
0047 EvtComplex _qp;
0048
0049
0050 bool _isKsPiPi;
0051 bool _isRBWmodel;
0052
0053
0054 static const EvtSpinType::spintype& _SCALAR;
0055 static const EvtSpinType::spintype& _VECTOR;
0056 static const EvtSpinType::spintype& _TENSOR;
0057
0058 static const EvtDalitzReso::CouplingType& _EtaPic;
0059 static const EvtDalitzReso::CouplingType& _PicPicKK;
0060
0061 static const EvtDalitzReso::NumType& _RBW;
0062 static const EvtDalitzReso::NumType& _GS;
0063 static const EvtDalitzReso::NumType& _KMAT;
0064
0065 static const EvtCyclic3::Pair& _AB;
0066 static const EvtCyclic3::Pair& _AC;
0067 static const EvtCyclic3::Pair& _BC;
0068
0069
0070
0071 EvtId _D0;
0072 EvtId _D0B;
0073 EvtId _KM;
0074 EvtId _KP;
0075 EvtId _K0;
0076 EvtId _K0B;
0077 EvtId _KL;
0078 EvtId _KS;
0079 EvtId _PIM;
0080 EvtId _PIP;
0081
0082
0083 double _mD0;
0084 double _mKs;
0085 double _mPi;
0086 double _mK;
0087
0088
0089 double _ctau;
0090 double _gamma;
0091
0092
0093 EvtComplex _iChi;
0094 EvtComplex _iChi2;
0095
0096 void readPDGValues();
0097 EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point );
0098 EvtComplex dalitzKsKK( const EvtDalitzPoint& point );
0099
0100
0101
0102 EvtComplex h1( const double& ct ) const;
0103 EvtComplex h2( const double& ct ) const;
0104
0105 void reportInvalidAndExit() const
0106 {
0107 EvtGenReport( EVTGEN_ERROR, "EvtD0mixDalitz" )
0108 << "EvtD0mixDalitz: Invalid mode." << std::endl;
0109 exit( 1 );
0110 }
0111
0112 public:
0113 EvtD0mixDalitz() :
0114 _d1( 0 ),
0115 _d2( 0 ),
0116 _d3( 0 ),
0117 _x( 0. ),
0118 _y( 0. ),
0119 _qp( 1. ),
0120 _isKsPiPi( false ),
0121 _isRBWmodel( true )
0122 {
0123 }
0124
0125
0126 std::string getName() override { return "D0MIXDALITZ"; }
0127 EvtDecayBase* clone() override { return new EvtD0mixDalitz; }
0128 void initProbMax() override { setProbMax( 5200. ); }
0129
0130 void init() override;
0131 void decay( EvtParticle* p ) override;
0132 };
0133
0134 #endif