1 //------------------------------------------------------------------------
3 // Module: EvtGen/EvtLambdaB2LambdaV.hh
6 // Class to generate LambdaB -> Lambda(p pi) V(Vp Vm) decays
7 // with V a vector meson such as J/psi (mu+mu-)
10 // Rho-omega mixing (pi+pi-)
12 // Author : Eric Conte (LPC Clermont-Ferrand)
13 // econte@clermont.in2p3.fr / ziad@clermont.in2p3.fr
15 // Modification history:
17 // E. Conte April 13, 2006 Module created
18 // E. Conte February 5, 2006 First draft
20 //------------------------------------------------------------------------
22 #ifndef EVTLAMBDAB2LAMBDAV_HH
23 #define EVTLAMBDAB2LAMBDAV_HH
27 #include "EvtGenBase/EvtDecayProb.hh"
28 #include "EvtGenBase/EvtParticle.hh"
29 #include "EvtGenBase/EvtGenKine.hh"
30 #include "EvtGenBase/EvtPDL.hh"
31 #include "EvtGenBase/EvtReport.hh"
35 enum VectorMesonType{JPSI, OMEGA, RHO, RHO_OMEGA_MIXING};
38 //*******************************************************************
40 //* Class EvtLambdaB2LambdaV *
42 //*******************************************************************
44 // DECAY : LambdaB -> Lambda + vector meson
47 // -------- = 1 + A*B*cos(theta) + 2*A*Re(C*exp(i*phi))*sin(theta)
50 // with A (real) : lambdaB helicity asymmetry parameter
51 // B (real) : lambdaB polarisation
52 // C (complex) : lambdaB density matrix element rho+-
54 // cf : O. Leitner, Z.J Ajaltouni, E. Conte,
55 // PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
57 class EvtLambdaB2LambdaV:public EvtDecayProb
63 virtual ~EvtLambdaB2LambdaV();
64 EvtDecayBase* clone();
66 virtual std::string getName();
69 void decay(EvtParticle *lambdab);
73 //class name for report method
76 //meson vector identity
77 VID::VectorMesonType Vtype;
79 //decay dynamics parameters
84 //V mass generator method
85 double getVMass(double MASS_LAMBDAB, double MASS_LAMBDA);
87 //PDF generator method
88 double BreitWignerRelPDF(double m,double _m0, double _g0);
89 double RhoOmegaMixingPDF(double m, double _mr, double _gr, double _mo, double _go);
96 //*******************************************************************
98 //* Class EvtLambda2PPiForLambdaB2LambdaV *
100 //*******************************************************************
102 // DECAY : Lambda -> p + pi-
105 // -------- = 1 + A*B*cos(theta) + 2*A*Re(D*exp(i*phi))*sin(theta)
108 // with A (real) : lambda asymmetry parameter
109 // B (real) : lambda polarisation
110 // C (real) : lambdaB polarisation
111 // D (complex) : lambda density matrix element rho+-
113 // cf : O. Leitner, Z.J Ajaltouni, E. Conte
114 // PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
116 class EvtLambda2PPiForLambdaB2LambdaV:public EvtDecayProb
121 EvtLambda2PPiForLambdaB2LambdaV();
122 virtual ~EvtLambda2PPiForLambdaB2LambdaV();
123 EvtDecayBase* clone();
125 virtual std::string getName();
128 void decay(EvtParticle *lambda);
132 //class name for report method
135 //meson vector identity
136 VID::VectorMesonType Vtype;
138 //decay dynamics parameters
149 //*******************************************************************
151 //* Class EvtV2VpVmForLambdaB2LambdaV *
153 //*******************************************************************
155 // DECAY : vector meson V -> Vp + Vm
158 // -------- = (1-3A)*cos(theta)^2 + (1+A) //leptonic decays
162 // -------- = (3A-1)*cos(theta)^2 + (1-A) //hadronic decays
165 // with A (real) : V density matrix element indicating the
166 // probability to be longitudinally polarized
168 // cf : O. Leitner, Z.J Ajaltouni, E. Conte
169 // PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
171 class EvtV2VpVmForLambdaB2LambdaV:public EvtDecayProb
176 EvtV2VpVmForLambdaB2LambdaV();
177 virtual ~EvtV2VpVmForLambdaB2LambdaV();
178 EvtDecayBase* clone();
180 virtual std::string getName();
183 void decay(EvtParticle *V);
187 //class name for report method
190 //meson vector identity
191 VID::VectorMesonType Vtype;
192 //decay dynamics parameters