00001 //----------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: EvtBtoKD3P.hh,v 1.1.1.2 2007/10/26 05:03:14 pingrg Exp $ 00004 // 00005 // Environment: 00006 // This software is part of the EvtGen package developed jointly 00007 // for the BaBar and CLEO collaborations. If you use all or part 00008 // of it, please give an appropriate acknowledgement. 00009 // 00010 // Copyright Information: 00011 // Copyright (C) 2003, Colorado State University 00012 // 00013 // Module creator: 00014 // Abi soffer, CSU, 2003 00015 //----------------------------------------------------------------------- 00016 00017 // Decay model that does the decay B+ -> K+ D , D -> 3 psudoscalars. 00018 // 00019 // The B- daughters specified in the decay file should be K-, D0, D0, 00020 // where the first D0 is produced via b->c decay and the second via b->u. 00021 // In reality, only one D daughter exists, so the first two 00022 // daughters must be defined to decay to the same final state using 00023 // the EvtPto3P model, but with CP-conjugate amplitudes. 00024 // 00025 // For a given point in the Pto3P Dalitz plot, 00026 // the total amplitude is \propto [A1 + A2 r exp(i(phase))], where 00027 // 00028 // A1 & A2 are the amplitudes of the D0 and D0bar to decay into that 00029 // Dalitz plot point, 00030 // 00031 // r is the (positive) ratio between the A(B->B0bar K) and A(B->D0 K) 00032 // B decay amplitudes, 00033 // 00034 // phase is the total phase difference (weak phase + strong phase) between 00035 // A(B->D0bar K) and A(B->B0 K). 00036 // 00037 // Note that this model knows nothing about your convention for the 00038 // sign of the phase, so when specifying the decay of a B- you need to 00039 // change the order of D0 and D0bar and change the total phase so that 00040 // the sign of the weak phase flips with respect to the parameters of B+. 00041 // 00042 00043 #ifndef EVT_BTOKD3P 00044 #define EVT_BTOKD3P 00045 00046 class EvtParticle; 00047 #include "EvtGenBase/EvtDecayAmp.hh" 00048 #include "EvtGenBase/EvtComplex.hh" 00049 00050 00051 class EvtBtoKD3P : public EvtDecayAmp { 00052 00053 public: 00054 EvtBtoKD3P(); 00055 EvtBtoKD3P(const EvtBtoKD3P & other); 00056 virtual ~EvtBtoKD3P(); 00057 EvtDecayBase* clone(); 00058 00059 // Initialize model 00060 virtual void init(); 00061 virtual void initProbMax(); 00062 virtual void decay(EvtParticle *p); 00063 00064 // we really have two daughters, although three are listed in the .dec file: 00065 virtual int nRealDaughters() { return 2;} 00066 00067 void getName(std::string& model_name); 00068 00069 protected: 00070 // parameters: 00071 double _r; 00072 EvtComplex _exp; 00073 00074 // other: 00075 const EvtDecayBase * _model1; 00076 const EvtDecayBase * _model2; 00077 bool _decayedOnce; 00078 00079 }; 00080 00081 00082 #endif 00083 00084 00085 00086 00087