Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:20:06

0001 
0002 /***********************************************************************
0003 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors       *
0004 *                                                                      *
0005 * This file is part of EvtGen.                                         *
0006 *                                                                      *
0007 * EvtGen is free software: you can redistribute it and/or modify       *
0008 * it under the terms of the GNU General Public License as published by *
0009 * the Free Software Foundation, either version 3 of the License, or    *
0010 * (at your option) any later version.                                  *
0011 *                                                                      *
0012 * EvtGen is distributed in the hope that it will be useful,            *
0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
0015 * GNU General Public License for more details.                         *
0016 *                                                                      *
0017 * You should have received a copy of the GNU General Public License    *
0018 * along with EvtGen.  If not, see <https://www.gnu.org/licenses/>.     *
0019 ***********************************************************************/
0020 
0021 #ifndef EVTLAMBDAB2LAMBDAV_HH
0022 #define EVTLAMBDAB2LAMBDAV_HH
0023 
0024 #include "EvtGenBase/EvtDecayProb.hh"
0025 #include "EvtGenBase/EvtGenKine.hh"
0026 #include "EvtGenBase/EvtPDL.hh"
0027 #include "EvtGenBase/EvtParticle.hh"
0028 #include "EvtGenBase/EvtReport.hh"
0029 
0030 #include <stdlib.h>
0031 #include <string>
0032 
0033 namespace VID {
0034     enum VectorMesonType
0035     {
0036         JPSI,
0037         OMEGA,
0038         RHO,
0039         RHO_OMEGA_MIXING
0040     };
0041 }
0042 
0043 // Description:
0044 //   Class to generate LambdaB -> Lambda(p pi) V(Vp Vm) decays
0045 //   with V a vector meson such as J/psi (mu+mu-)
0046 //                                 Rho (pi+pi-)
0047 //                                 Omega (pi+pi-)
0048 //                                 Rho-omega mixing (pi+pi-)
0049 //
0050 // DECAY : LambdaB -> Lambda + vector meson
0051 //
0052 // d(Sigma)
0053 // -------- = 1 + A*B*cos(theta) + 2*A*Re(C*exp(i*phi))*sin(theta)
0054 // d(Omega)
0055 //
0056 // with A (real)    : lambdaB  helicity asymmetry parameter
0057 //      B (real)    : lambdaB polarisation
0058 //      C (complex) : lambdaB density matrix element rho+-
0059 //
0060 // cf : O. Leitner, Z.J Ajaltouni, E. Conte,
0061 //      PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
0062 
0063 class EvtLambdaB2LambdaV : public EvtDecayProb {
0064   public:
0065     EvtLambdaB2LambdaV();
0066 
0067     EvtDecayBase* clone() override;
0068 
0069     std::string getName() override;
0070     void init() override;
0071     void initProbMax() override;
0072     void decay( EvtParticle* lambdab ) override;
0073 
0074   private:
0075     //class name for report method
0076     std::string fname;
0077 
0078     //meson vector identity
0079     VID::VectorMesonType Vtype;
0080 
0081     //decay dynamics parameters
0082     double A;
0083     double B;
0084     EvtComplex C;
0085 
0086     //V mass generator method
0087     double getVMass( double MASS_LAMBDAB, double MASS_LAMBDA );
0088 
0089     //PDF generator method
0090     double BreitWignerRelPDF( double m, double _m0, double _g0 );
0091     double RhoOmegaMixingPDF( double m, double _mr, double _gr, double _mo,
0092                               double _go );
0093 };
0094 
0095 //*******************************************************************
0096 //*                                                                 *
0097 //*             Class EvtLambda2PPiForLambdaB2LambdaV               *
0098 //*                                                                 *
0099 //*******************************************************************
0100 //
0101 // DECAY : Lambda -> p + pi-
0102 //
0103 // d(Sigma)
0104 // -------- = 1 + A*B*cos(theta) + 2*A*Re(D*exp(i*phi))*sin(theta)
0105 // d(Omega)
0106 //
0107 // with A (real)    : lambda asymmetry parameter
0108 //      B (real)    : lambda polarisation
0109 //      C (real)    : lambdaB polarisation
0110 //      D (complex) : lambda density matrix element rho+-
0111 //
0112 // cf : O. Leitner, Z.J Ajaltouni, E. Conte
0113 //      PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
0114 
0115 class EvtLambda2PPiForLambdaB2LambdaV : public EvtDecayProb {
0116   public:
0117     EvtLambda2PPiForLambdaB2LambdaV();
0118     EvtDecayBase* clone() override;
0119 
0120     std::string getName() override;
0121     void init() override;
0122     void initProbMax() override;
0123     void decay( EvtParticle* lambda ) override;
0124 
0125   private:
0126     //class name for report method
0127     std::string fname;
0128 
0129     //meson vector identity
0130     VID::VectorMesonType Vtype;
0131 
0132     //decay dynamics parameters
0133     double A;
0134     double B;
0135     double C;
0136     EvtComplex D;
0137 };
0138 
0139 //*******************************************************************
0140 //*                                                                 *
0141 //*               Class EvtV2VpVmForLambdaB2LambdaV                 *
0142 //*                                                                 *
0143 //*******************************************************************
0144 //
0145 // DECAY : vector meson V -> Vp + Vm
0146 //
0147 // d(Sigma)
0148 // -------- = (1-3A)*cos(theta)^2 + (1+A)   //leptonic decays
0149 // d(Omega)
0150 //
0151 // d(Sigma)
0152 // -------- = (3A-1)*cos(theta)^2 + (1-A)   //hadronic decays
0153 // d(Omega)
0154 //
0155 // with A (real)    : V density matrix element indicating the
0156 //                    probability to be longitudinally polarized
0157 //
0158 // cf : O. Leitner, Z.J Ajaltouni, E. Conte
0159 //      PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043
0160 
0161 class EvtV2VpVmForLambdaB2LambdaV : public EvtDecayProb {
0162   public:
0163     EvtV2VpVmForLambdaB2LambdaV();
0164 
0165     EvtDecayBase* clone() override;
0166 
0167     std::string getName() override;
0168     void init() override;
0169     void initProbMax() override;
0170     void decay( EvtParticle* V ) override;
0171 
0172   private:
0173     //class name for report method
0174     std::string fname;
0175 
0176     //meson vector identity
0177     VID::VectorMesonType Vtype;
0178     //decay dynamics parameters
0179     double A;
0180 };
0181 
0182 #endif