Changeset View
Changeset View
Standalone View
Standalone View
EvtGenModels/EvtD0mixDalitz.hh
Show All 29 Lines | |||||
#include "EvtGenBase/EvtPDL.hh" | #include "EvtGenBase/EvtPDL.hh" | ||||
#include "EvtGenBase/EvtSpinType.hh" | #include "EvtGenBase/EvtSpinType.hh" | ||||
// Description: | // Description: | ||||
// The D0mixDalitz model, with many resonances and mixing implemented. | // The D0mixDalitz model, with many resonances and mixing implemented. | ||||
class EvtD0mixDalitz : public EvtDecayAmp { | class EvtD0mixDalitz : public EvtDecayAmp { | ||||
private: | private: | ||||
int _d1; | int m_d1; | ||||
int _d2; | int m_d2; | ||||
int _d3; | int m_d3; | ||||
// Mixing parameters. | // Mixing parameters. | ||||
double _x; | double m_x; | ||||
double _y; | double m_y; | ||||
// q/p CP violation in the mixing. | // q/p CP violation in the mixing. | ||||
EvtComplex _qp; | EvtComplex m_qp; | ||||
// Checker of the decay mode. | // Checker of the decay mode. | ||||
bool _isKsPiPi; | bool m_isKsPiPi; | ||||
bool _isRBWmodel; | bool m_isRBWmodel; | ||||
// Useful constants. | // Useful constants. | ||||
static const EvtSpinType::spintype& _SCALAR; | static const EvtSpinType::spintype& m_SCALAR; | ||||
static const EvtSpinType::spintype& _VECTOR; | static const EvtSpinType::spintype& m_VECTOR; | ||||
static const EvtSpinType::spintype& _TENSOR; | static const EvtSpinType::spintype& m_TENSOR; | ||||
static const EvtDalitzReso::CouplingType& _EtaPic; | static const EvtDalitzReso::CouplingType& m_EtaPic; | ||||
static const EvtDalitzReso::CouplingType& _PicPicKK; | static const EvtDalitzReso::CouplingType& m_PicPicKK; | ||||
static const EvtDalitzReso::NumType& _RBW; | static const EvtDalitzReso::NumType& m_RBW; | ||||
static const EvtDalitzReso::NumType& _GS; | static const EvtDalitzReso::NumType& m_GS; | ||||
static const EvtDalitzReso::NumType& _KMAT; | static const EvtDalitzReso::NumType& m_KMAT; | ||||
static const EvtCyclic3::Pair& _AB; | static const EvtCyclic3::Pair& m_AB; | ||||
static const EvtCyclic3::Pair& _AC; | static const EvtCyclic3::Pair& m_AC; | ||||
static const EvtCyclic3::Pair& _BC; | static const EvtCyclic3::Pair& m_BC; | ||||
// Values to be read or computed based on values in the evt.pdl file. | // Values to be read or computed based on values in the evt.pdl file. | ||||
// IDs of the relevant particles. | // IDs of the relevant particles. | ||||
EvtId _D0; | EvtId m_D0; | ||||
EvtId _D0B; | EvtId m_D0B; | ||||
EvtId _KM; | EvtId m_KM; | ||||
EvtId _KP; | EvtId m_KP; | ||||
EvtId _K0; | EvtId m_K0; | ||||
EvtId _K0B; | EvtId m_K0B; | ||||
EvtId _KL; | EvtId m_KL; | ||||
EvtId _KS; | EvtId m_KS; | ||||
EvtId _PIM; | EvtId m_PIM; | ||||
EvtId _PIP; | EvtId m_PIP; | ||||
// Masses of the relevant particles. | // Masses of the relevant particles. | ||||
double _mD0; | double m_mD0; | ||||
double _mKs; | double m_mKs; | ||||
double _mPi; | double m_mPi; | ||||
double _mK; | double m_mK; | ||||
// Life time and decay rate. | // Life time and decay rate. | ||||
double _ctau; | double m_ctau; | ||||
double _gamma; | double m_gamma; | ||||
// Some useful integrals over the Dalitz plot. | // Some useful integrals over the Dalitz plot. | ||||
EvtComplex _iChi; | EvtComplex m_iChi; | ||||
EvtComplex _iChi2; | EvtComplex m_iChi2; | ||||
void readPDGValues(); | void readPDGValues(); | ||||
EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point ); | EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point ); | ||||
EvtComplex dalitzKsKK( const EvtDalitzPoint& point ); | EvtComplex dalitzKsKK( const EvtDalitzPoint& point ); | ||||
// Time evolution functions for hamiltonian eigenstates. | // Time evolution functions for hamiltonian eigenstates. | ||||
// Negative exponential part removed. | // Negative exponential part removed. | ||||
EvtComplex h1( const double& ct ) const; | EvtComplex h1( const double& ct ) const; | ||||
EvtComplex h2( const double& ct ) const; | EvtComplex h2( const double& ct ) const; | ||||
void reportInvalidAndExit() const | void reportInvalidAndExit() const | ||||
{ | { | ||||
EvtGenReport( EVTGEN_ERROR, "EvtD0mixDalitz" ) | EvtGenReport( EVTGEN_ERROR, "EvtD0mixDalitz" ) | ||||
<< "EvtD0mixDalitz: Invalid mode." << std::endl; | << "EvtD0mixDalitz: Invalid mode." << std::endl; | ||||
exit( 1 ); | exit( 1 ); | ||||
} | } | ||||
public: | public: | ||||
EvtD0mixDalitz() : | EvtD0mixDalitz() : | ||||
_d1( 0 ), | m_d1( 0 ), | ||||
_d2( 0 ), | m_d2( 0 ), | ||||
_d3( 0 ), | m_d3( 0 ), | ||||
_x( 0. ), | m_x( 0. ), | ||||
_y( 0. ), | m_y( 0. ), | ||||
_qp( 1. ), | m_qp( 1. ), | ||||
_isKsPiPi( false ), | m_isKsPiPi( false ), | ||||
_isRBWmodel( true ) | m_isRBWmodel( true ) | ||||
{ | { | ||||
} | } | ||||
// One-line inline functions. | // One-line inline functions. | ||||
std::string getName() override { return "D0MIXDALITZ"; } | std::string getName() override { return "D0MIXDALITZ"; } | ||||
EvtDecayBase* clone() override { return new EvtD0mixDalitz; } | EvtDecayBase* clone() override { return new EvtD0mixDalitz; } | ||||
void initProbMax() override { setProbMax( 5200. ); } | void initProbMax() override { setProbMax( 5200. ); } | ||||
void init() override; | void init() override; | ||||
void decay( EvtParticle* p ) override; | void decay( EvtParticle* p ) override; | ||||
}; | }; | ||||
#endif | #endif |