1 //-----------------------------------------------------------------------
2 // File and Version Information:
3 // $Id: EvtBtoKD3P.hh,v 1.1 2009-03-16 16:49:00 robbep Exp $
6 // This software is part of the EvtGen package developed jointly
7 // for the BaBar and CLEO collaborations. If you use all or part
8 // of it, please give an appropriate acknowledgement.
10 // Copyright Information:
11 // Copyright (C) 2003, Colorado State University
14 // Abi soffer, CSU, 2003
15 //-----------------------------------------------------------------------
17 // Decay model that does the decay B+ -> K+ D , D -> 3 psudoscalars.
19 // The B- daughters specified in the decay file should be K-, D0, D0,
20 // where the first D0 is produced via b->c decay and the second via b->u.
21 // In reality, only one D daughter exists, so the first two
22 // daughters must be defined to decay to the same final state using
23 // the EvtPto3P model, but with CP-conjugate amplitudes.
25 // For a given point in the Pto3P Dalitz plot,
26 // the total amplitude is \propto [A1 + A2 r exp(i(phase))], where
28 // A1 & A2 are the amplitudes of the D0 and D0bar to decay into that
31 // r is the (positive) ratio between the A(B->B0bar K) and A(B->D0 K)
32 // B decay amplitudes,
34 // phase is the total phase difference (weak phase + strong phase) between
35 // A(B->D0bar K) and A(B->B0 K).
37 // Note that this model knows nothing about your convention for the
38 // sign of the phase, so when specifying the decay of a B- you need to
39 // change the order of D0 and D0bar and change the total phase so that
40 // the sign of the weak phase flips with respect to the parameters of B+.
47 #include "EvtGenBase/EvtDecayAmp.hh"
48 #include "EvtGenBase/EvtComplex.hh"
51 class EvtBtoKD3P : public EvtDecayAmp {
55 EvtBtoKD3P(const EvtBtoKD3P & other);
56 virtual ~EvtBtoKD3P();
57 EvtDecayBase* clone();
61 virtual void initProbMax();
62 virtual void decay(EvtParticle *p);
64 // we really have two daughters, although three are listed in the .dec file:
65 virtual int nRealDaughters() { return 2;}
67 std::string getName();
75 const EvtDecayBase * _model1;
76 const EvtDecayBase * _model2;