evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtLambdaB2LambdaV.hh
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
21 #ifndef EVTLAMBDAB2LAMBDAV_HH
22 #define EVTLAMBDAB2LAMBDAV_HH
23 
25 #include "EvtGenBase/EvtGenKine.hh"
26 #include "EvtGenBase/EvtPDL.hh"
28 #include "EvtGenBase/EvtReport.hh"
29 
30 #include <stdlib.h>
31 #include <string>
32 
33 namespace VID {
35  {
38  RHO,
40  };
41 }
42 
43 // Description:
44 // Class to generate LambdaB -> Lambda(p pi) V(Vp Vm) decays
45 // with V a vector meson such as J/psi (mu+mu-)
46 // Rho (pi+pi-)
47 // Omega (pi+pi-)
48 // Rho-omega mixing (pi+pi-)
49 //
50 // DECAY : LambdaB -> Lambda + vector meson
51 //
52 // d(Sigma)
53 // -------- = 1 + A*B*cos(theta) + 2*A*Re(C*exp(i*phi))*sin(theta)
54 // d(Omega)
55 //
56 // with A (real) : lambdaB helicity asymmetry parameter
57 // B (real) : lambdaB polarisation
58 // C (complex) : lambdaB density matrix element rho+-
59 //
60 // cf : O. Leitner, Z.J Ajaltouni, E. Conte,
61 // PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
62 
64  public:
66 
67  EvtDecayBase* clone() override;
68 
69  std::string getName() override;
70  void init() override;
71  void initProbMax() override;
72  void decay( EvtParticle* lambdab ) override;
73 
74  private:
75  //class name for report method
76  std::string fname;
77 
78  //meson vector identity
80 
81  //decay dynamics parameters
82  double A;
83  double B;
85 
86  //V mass generator method
87  double getVMass( double MASS_LAMBDAB, double MASS_LAMBDA );
88 
89  //PDF generator method
90  double BreitWignerRelPDF( double m, double _m0, double _g0 );
91  double RhoOmegaMixingPDF( double m, double _mr, double _gr, double _mo,
92  double _go );
93 };
94 
95 //*******************************************************************
96 //* *
97 //* Class EvtLambda2PPiForLambdaB2LambdaV *
98 //* *
99 //*******************************************************************
100 //
101 // DECAY : Lambda -> p + pi-
102 //
103 // d(Sigma)
104 // -------- = 1 + A*B*cos(theta) + 2*A*Re(D*exp(i*phi))*sin(theta)
105 // d(Omega)
106 //
107 // with A (real) : lambda asymmetry parameter
108 // B (real) : lambda polarisation
109 // C (real) : lambdaB polarisation
110 // D (complex) : lambda density matrix element rho+-
111 //
112 // cf : O. Leitner, Z.J Ajaltouni, E. Conte
113 // PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
114 
116  public:
118  EvtDecayBase* clone() override;
119 
120  std::string getName() override;
121  void init() override;
122  void initProbMax() override;
123  void decay( EvtParticle* lambda ) override;
124 
125  private:
126  //class name for report method
127  std::string fname;
128 
129  //meson vector identity
131 
132  //decay dynamics parameters
133  double A;
134  double B;
135  double C;
137 };
138 
139 //*******************************************************************
140 //* *
141 //* Class EvtV2VpVmForLambdaB2LambdaV *
142 //* *
143 //*******************************************************************
144 //
145 // DECAY : vector meson V -> Vp + Vm
146 //
147 // d(Sigma)
148 // -------- = (1-3A)*cos(theta)^2 + (1+A) //leptonic decays
149 // d(Omega)
150 //
151 // d(Sigma)
152 // -------- = (3A-1)*cos(theta)^2 + (1-A) //hadronic decays
153 // d(Omega)
154 //
155 // with A (real) : V density matrix element indicating the
156 // probability to be longitudinally polarized
157 //
158 // cf : O. Leitner, Z.J Ajaltouni, E. Conte
159 // PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
160 
162  public:
164 
165  EvtDecayBase* clone() override;
166 
167  std::string getName() override;
168  void init() override;
169  void initProbMax() override;
170  void decay( EvtParticle* V ) override;
171 
172  private:
173  //class name for report method
174  std::string fname;
175 
176  //meson vector identity
178  //decay dynamics parameters
179  double A;
180 };
181 
182 #endif
void decay(EvtParticle *V) override
double BreitWignerRelPDF(double m, double _m0, double _g0)
double RhoOmegaMixingPDF(double m, double _mr, double _gr, double _mo, double _go)
void decay(EvtParticle *lambda) override
double getVMass(double MASS_LAMBDAB, double MASS_LAMBDA)
std::string getName() override
EvtDecayBase * clone() override
EvtDecayBase * clone() override
VID::VectorMesonType Vtype
double lambda(double q, double m1, double m2)
Definition: EvtFlatQ2.cpp:31
void decay(EvtParticle *lambdab) override
std::string getName() override
void initProbMax() override
EvtDecayBase * clone() override