Page MenuHomeHEPForge

No OneTemporary

diff --git a/EvtGenModels/EvtbsToLLLL.hh b/EvtGenModels/EvtbsToLLLL.hh
deleted file mode 100644
index 2b15d94..0000000
--- a/EvtGenModels/EvtbsToLLLL.hh
+++ /dev/null
@@ -1,49 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#ifndef EVTBSTOLLLL_HH
-#define EVTBSTOLLLL_HH
-
-#include "EvtGenBase/EvtDecayAmp.hh"
-
-class EvtParticle;
-class Evtbs2llGammaFF; // my class with ff for rare semileptonic B-decays
-class EvtbsToLLLLAmp; // my class with amplitudes for rare four-leptonic B-decays
-class EvtbTosllWilsCoeffNLO; // my class with Wilson coefficients in NLO
-
-class EvtbsToLLLL : public EvtDecayAmp {
- public:
- EvtbsToLLLL(){};
- virtual ~EvtbsToLLLL();
-
- std::string getName() override;
- EvtDecayBase* clone() override;
-
- void init() override;
- void initProbMax() override;
- void decay( EvtParticle* p ) override;
-
- private:
- Evtbs2llGammaFF* _mntffmodel;
- EvtbsToLLLLAmp* _calcamp;
- EvtbTosllWilsCoeffNLO* _wilscoeff;
-};
-
-#endif
diff --git a/EvtGenModels/EvtbsToLLLLAmp.hh b/EvtGenModels/EvtbsToLLLLAmp.hh
deleted file mode 100644
index bce8f14..0000000
--- a/EvtGenModels/EvtbsToLLLLAmp.hh
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#ifndef EVTBSTOLLLL_AMP_HH
-#define EVTBSTOLLLL_AMP_HH
-
-class EvtId;
-class EvtAmp;
-class EvtParticle;
-class Evtbs2llGammaFF;
-class EvtbTosllWilsCoeffNLO;
-
-class EvtbsToLLLLAmp {
- public:
- void CalcAmp( EvtParticle* parent, EvtAmp& amp, Evtbs2llGammaFF* formFactors,
- EvtbTosllWilsCoeffNLO* WilsCoeff, double mu, int Nf,
- int res_swch, int ias, double CKM_A, double CKM_lambda,
- double CKM_barrho, double CKM_bareta );
-
- double CalcMaxProb(
- // EvtId parnum,
- // EvtId l1num, EvtId l2num,
- // EvtId l3num, EvtId l4num,
- // Evtbs2llGammaFF *formFactors,
- // EvtbTosllWilsCoeffNLO *WilsCoeff,
- // double mu, int Nf, int res_swch, int ias,
- // double CKM_A, double CKM_lambda,
- // double CKM_barrho, double CKM_bareta
- );
-
- double lambda( double a, double b, double c );
-};
-
-#endif
diff --git a/EvtGenModels/EvtbsToLLLLHyperCP.hh b/EvtGenModels/EvtbsToLLLLHyperCP.hh
deleted file mode 100644
index 2f434b9..0000000
--- a/EvtGenModels/EvtbsToLLLLHyperCP.hh
+++ /dev/null
@@ -1,45 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#ifndef EVTBSTOLLLL_HYPERCP_HH
-#define EVTBSTOLLLL_HYPERCP_HH
-
-#include "EvtGenBase/EvtDecayAmp.hh"
-
-class EvtParticle;
-class EvtbsToLLLLHyperCPAmp; // my class with amplitudes for rare four-leptonic B-decays
-
-class EvtbsToLLLLHyperCP : public EvtDecayAmp {
- public:
- EvtbsToLLLLHyperCP(){};
- virtual ~EvtbsToLLLLHyperCP();
-
- std::string getName() override;
- EvtDecayBase* clone() override;
-
- void init() override;
- void initProbMax() override;
- void decay( EvtParticle* p ) override;
-
- private:
- EvtbsToLLLLHyperCPAmp* _calcamp;
-};
-
-#endif
diff --git a/EvtGenModels/EvtbsToLLLLHyperCPAmp.hh b/EvtGenModels/EvtbsToLLLLHyperCPAmp.hh
deleted file mode 100644
index 70878ca..0000000
--- a/EvtGenModels/EvtbsToLLLLHyperCPAmp.hh
+++ /dev/null
@@ -1,54 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#ifndef EVTBSTOLLLL_HYPERCPAMP_HH
-#define EVTBSTOLLLL_HYPERCPAMP_HH
-
-class EvtId;
-class EvtAmp;
-class EvtParticle;
-
-// Description: Preparation of the decay amplitude for the process:
-// B^0_{q}(p,M1) -> ell^+(k1,m) ell^-(k2,m) ell^+(k3,m) ell^-(k4,m)
-// in the HyperCP model.
-//
-// [1] D.S.Gorbunov, Nucl.Phys.B602, pp.213-237 (2001);
-// [2] S.V. Demidov, D.S.Gorbunov, hep-ph/1112.5230v2, 17 April 2012.
-//
-// Note: The code of this module is based on the EvtbsToLLLLAmp.cpp module code.
-
-class EvtbsToLLLLHyperCPAmp {
- public:
- void CalcAmp( EvtParticle* parent, EvtAmp& amp, double mS, double mP,
- double gammaS, double gammaP, double mLiiLR, double Fc,
- double mD23LL, double mD23RR, double mD32LL, double mD32RR,
- double mD13LL, double mD13RR, double mD31LL, double mD31RR );
-
- double CalcMaxProb( EvtId parnum, EvtId l1num, EvtId l2num, EvtId l3num,
- EvtId l4num, double mS, double mP, double gammaS,
- double gammaP, double mLiiLR, double Fc, double mD23LL,
- double mD23RR, double mD32LL, double mD32RR,
- double mD13LL, double mD13RR, double mD31LL,
- double mD31RR );
-
- double lambda( double a, double b, double c );
-};
-
-#endif
diff --git a/src/EvtGenModels/EvtModelReg.cpp b/src/EvtGenModels/EvtModelReg.cpp
index c926192..04f60e4 100644
--- a/src/EvtGenModels/EvtModelReg.cpp
+++ b/src/EvtGenModels/EvtModelReg.cpp
@@ -1,339 +1,335 @@
/***********************************************************************
* Copyright 1998-2021 CERN for the benefit of the EvtGen authors *
* *
* This file is part of EvtGen. *
* *
* EvtGen is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* EvtGen is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
***********************************************************************/
#include "EvtGenModels/EvtModelReg.hh"
#include "EvtGenBase/EvtModel.hh"
#include "EvtGenBase/EvtPDL.hh"
#include "EvtGenBase/EvtParticle.hh"
#include "EvtGenBase/EvtPatches.hh"
#include "EvtGenModels/EvtBBScalar.hh"
#include "EvtGenModels/EvtBLLNuL.hh"
#include "EvtGenModels/EvtBTo3piCP.hh"
#include "EvtGenModels/EvtBTo4piCP.hh"
#include "EvtGenModels/EvtBToDDalitzCPK.hh"
#include "EvtGenModels/EvtBToDiBaryonlnupQCD.hh"
#include "EvtGenModels/EvtBToKpipiCP.hh"
#include "EvtGenModels/EvtBToPlnuBK.hh"
#include "EvtGenModels/EvtBToVlnuBall.hh"
#include "EvtGenModels/EvtBToXElNu.hh"
#include "EvtGenModels/EvtBaryonPCR.hh"
#include "EvtGenModels/EvtBcBsNPi.hh"
#include "EvtGenModels/EvtBcBsStarNPi.hh"
#include "EvtGenModels/EvtBcPsiNPi.hh"
#include "EvtGenModels/EvtBcSMuNu.hh"
#include "EvtGenModels/EvtBcTMuNu.hh"
#include "EvtGenModels/EvtBcToNPi.hh"
#include "EvtGenModels/EvtBcVHad.hh"
#include "EvtGenModels/EvtBcVMuNu.hh"
#include "EvtGenModels/EvtBcVNpi.hh"
#include "EvtGenModels/EvtBcVPPHad.hh"
#include "EvtGenModels/EvtBsMuMuKK.hh"
#include "EvtGenModels/EvtBsquark.hh"
#include "EvtGenModels/EvtBto2piCPiso.hh"
#include "EvtGenModels/EvtBtoKD3P.hh"
#include "EvtGenModels/EvtBtoKpiCPiso.hh"
#include "EvtGenModels/EvtBtoXsEtap.hh"
#include "EvtGenModels/EvtBtoXsgamma.hh"
#include "EvtGenModels/EvtBtoXsll.hh"
#include "EvtGenModels/EvtCBTo3piMPP.hh"
#include "EvtGenModels/EvtCBTo3piP00.hh"
#include "EvtGenModels/EvtD0gammaDalitz.hh"
#include "EvtGenModels/EvtD0mixDalitz.hh"
#include "EvtGenModels/EvtDDalitz.hh"
#include "EvtGenModels/EvtDMix.hh"
#include "EvtGenModels/EvtDToKpienu.hh"
#include "EvtGenModels/EvtEtaDalitz.hh"
#include "EvtGenModels/EvtEtaLLPiPi.hh"
#include "EvtGenModels/EvtFlatQ2.hh"
#include "EvtGenModels/EvtFlatSqDalitz.hh"
#include "EvtGenModels/EvtFourBodyPhsp.hh"
#include "EvtGenModels/EvtGenericDalitz.hh"
#include "EvtGenModels/EvtGoityRoberts.hh"
#include "EvtGenModels/EvtHQET.hh"
#include "EvtGenModels/EvtHQET2.hh"
#include "EvtGenModels/EvtHelAmp.hh"
#include "EvtGenModels/EvtHypNonLepton.hh"
#include "EvtGenModels/EvtISGW.hh"
#include "EvtGenModels/EvtISGW2.hh"
#include "EvtGenModels/EvtKKLambdaC.hh"
#include "EvtGenModels/EvtKStopizmumu.hh"
#include "EvtGenModels/EvtKstarnunu.hh"
#include "EvtGenModels/EvtLNuGamma.hh"
#include "EvtGenModels/EvtLambdaP_BarGamma.hh"
#include "EvtGenModels/EvtLambdacPHH.hh"
#include "EvtGenModels/EvtLb2Baryonlnu.hh"
#include "EvtGenModels/EvtLb2plnuLCSR.hh"
#include "EvtGenModels/EvtLb2plnuLQCD.hh"
#include "EvtGenModels/EvtMelikhov.hh"
#include "EvtGenModels/EvtOmegaDalitz.hh"
#include "EvtGenModels/EvtPVVCPLH.hh"
#include "EvtGenModels/EvtPartWave.hh"
#include "EvtGenModels/EvtPhiDalitz.hh"
#include "EvtGenModels/EvtPhsp.hh"
#include "EvtGenModels/EvtPhspDecaytimeCut.hh"
#include "EvtGenModels/EvtPhspFlatLifetime.hh"
#include "EvtGenModels/EvtPi0Dalitz.hh"
#include "EvtGenModels/EvtPropSLPole.hh"
#include "EvtGenModels/EvtPsi2JpsiPiPi.hh"
#include "EvtGenModels/EvtPto3P.hh"
#include "EvtGenModels/EvtRareLbToLll.hh"
#include "EvtGenModels/EvtSLBKPole.hh"
#include "EvtGenModels/EvtSLN.hh"
#include "EvtGenModels/EvtSLPole.hh"
#include "EvtGenModels/EvtSSDCP.hh"
#include "EvtGenModels/EvtSSD_DirectCP.hh"
#include "EvtGenModels/EvtSSSCP.hh"
#include "EvtGenModels/EvtSSSCPT.hh"
#include "EvtGenModels/EvtSSSCPpng.hh"
#include "EvtGenModels/EvtSTS.hh"
#include "EvtGenModels/EvtSTSCP.hh"
#include "EvtGenModels/EvtSVP.hh"
#include "EvtGenModels/EvtSVPCP.hh"
#include "EvtGenModels/EvtSVPHelAmp.hh"
#include "EvtGenModels/EvtSVPHelCPMix.hh"
#include "EvtGenModels/EvtSVS.hh"
#include "EvtGenModels/EvtSVSCP.hh"
#include "EvtGenModels/EvtSVSCPLH.hh"
#include "EvtGenModels/EvtSVSCPiso.hh"
#include "EvtGenModels/EvtSVSNONCPEIGEN.hh"
#include "EvtGenModels/EvtSVVCP.hh"
#include "EvtGenModels/EvtSVVCPLH.hh"
#include "EvtGenModels/EvtSVVHelAmp.hh"
#include "EvtGenModels/EvtSVVHelCPMix.hh"
#include "EvtGenModels/EvtSVVNONCPEIGEN.hh"
#include "EvtGenModels/EvtSingleParticle.hh"
#include "EvtGenModels/EvtSll.hh"
#include "EvtGenModels/EvtTSS.hh"
#include "EvtGenModels/EvtTVP.hh"
#include "EvtGenModels/EvtTVSPwave.hh"
#include "EvtGenModels/EvtTauHadnu.hh"
#include "EvtGenModels/EvtTauScalarnu.hh"
#include "EvtGenModels/EvtTauVectornu.hh"
#include "EvtGenModels/EvtTaulnunu.hh"
#include "EvtGenModels/EvtThreeBodyPhsp.hh"
#include "EvtGenModels/EvtVPHOtoVISRHi.hh"
#include "EvtGenModels/EvtVSPPwave.hh"
#include "EvtGenModels/EvtVSS.hh"
#include "EvtGenModels/EvtVSSBMixCPT.hh"
#include "EvtGenModels/EvtVSSMix.hh"
#include "EvtGenModels/EvtVVP.hh"
#include "EvtGenModels/EvtVVPIPI_WEIGHTED.hh"
#include "EvtGenModels/EvtVVSPwave.hh"
#include "EvtGenModels/EvtVVpipi.hh"
#include "EvtGenModels/EvtVectorIsr.hh"
#include "EvtGenModels/EvtVll.hh"
#include "EvtGenModels/EvtVtoSll.hh"
#include "EvtGenModels/EvtVub.hh"
#include "EvtGenModels/EvtVubBLNP.hh"
#include "EvtGenModels/EvtVubBLNPHybrid.hh"
#include "EvtGenModels/EvtVubHybrid.hh"
#include "EvtGenModels/EvtVubNLO.hh"
#include "EvtGenModels/EvtXPsiGamma.hh"
#include "EvtGenModels/EvtY3SToY1SpipiMoxhay.hh"
#include "EvtGenModels/EvtYmSToYnSpipiCLEO.hh"
#include "EvtGenModels/EvtbTosllAli.hh"
#include "EvtGenModels/EvtbTosllBall.hh"
#include "EvtGenModels/EvtbTosllMS.hh"
#include "EvtGenModels/EvtbTosllMSExt.hh"
#include "EvtGenModels/Evtbs2llGammaISRFSR.hh"
#include "EvtGenModels/Evtbs2llGammaMNT.hh"
-#include "EvtGenModels/EvtbsToLLLL.hh"
-#include "EvtGenModels/EvtbsToLLLLHyperCP.hh"
#include <assert.h>
#include <ctype.h>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <stdlib.h>
using std::cout;
using std::endl;
using std::fstream;
EvtModelReg::EvtModelReg( const std::list<EvtDecayBase*>* extraModels )
{
EvtModel& modelist = EvtModel::instance();
if ( extraModels ) {
for ( std::list<EvtDecayBase*>::const_iterator it = extraModels->begin();
it != extraModels->end(); ++it ) {
modelist.registerModel( *it );
}
}
modelist.registerModel( new EvtBBScalar );
modelist.registerModel( new EvtLambdaP_BarGamma );
modelist.registerModel( new EvtFlatQ2 );
modelist.registerModel( new EvtTauHadnu );
modelist.registerModel( new EvtTauVectornu );
modelist.registerModel( new EvtVVP );
modelist.registerModel( new EvtSLN );
modelist.registerModel( new EvtISGW2 );
modelist.registerModel( new EvtMelikhov );
modelist.registerModel( new EvtSLPole );
modelist.registerModel( new EvtPropSLPole );
modelist.registerModel( new EvtSLBKPole );
modelist.registerModel( new EvtHQET );
modelist.registerModel( new EvtHQET2 );
modelist.registerModel( new EvtISGW );
modelist.registerModel( new EvtVSS );
modelist.registerModel( new EvtVSSMix );
modelist.registerModel( new EvtVSSBMixCPT );
modelist.registerModel( new EvtVSPPwave );
modelist.registerModel( new EvtGoityRoberts );
modelist.registerModel( new EvtSVS );
modelist.registerModel( new EvtTSS );
modelist.registerModel( new EvtTVSPwave );
modelist.registerModel( new EvtSVVHelAmp );
modelist.registerModel( new EvtSVPHelAmp );
modelist.registerModel( new EvtSVPCP );
modelist.registerModel( new EvtVVSPwave );
modelist.registerModel( new EvtDDalitz );
modelist.registerModel( new EvtOmegaDalitz );
modelist.registerModel( new EvtEtaDalitz );
modelist.registerModel( new EvtPhsp );
modelist.registerModel( new EvtPhspDecaytimeCut );
modelist.registerModel( new EvtBtoXsgamma );
modelist.registerModel( new EvtBtoXsll );
modelist.registerModel( new EvtBtoXsEtap );
modelist.registerModel( new EvtSSSCP );
modelist.registerModel( new EvtSSSCPpng );
modelist.registerModel( new EvtSTSCP );
modelist.registerModel( new EvtSTS );
modelist.registerModel( new EvtSSSCPT );
modelist.registerModel( new EvtSVSCP );
modelist.registerModel( new EvtSSDCP );
modelist.registerModel( new EvtSVSNONCPEIGEN );
modelist.registerModel( new EvtSVVNONCPEIGEN );
modelist.registerModel( new EvtSVVCP );
modelist.registerModel( new EvtSVVCPLH );
modelist.registerModel( new EvtSVSCPLH );
modelist.registerModel( new EvtSll );
modelist.registerModel( new EvtVll );
modelist.registerModel( new EvtTaulnunu );
modelist.registerModel( new EvtTauScalarnu );
modelist.registerModel( new EvtKstarnunu );
modelist.registerModel( new EvtbTosllBall );
modelist.registerModel( new EvtBto2piCPiso );
modelist.registerModel( new EvtBtoKpiCPiso );
modelist.registerModel( new EvtSVSCPiso );
modelist.registerModel( new EvtSingleParticle );
modelist.registerModel( new EvtVectorIsr );
modelist.registerModel( new EvtPi0Dalitz );
modelist.registerModel( new EvtHelAmp );
modelist.registerModel( new EvtPartWave );
modelist.registerModel( new EvtVVpipi );
modelist.registerModel( new EvtY3SToY1SpipiMoxhay );
modelist.registerModel( new EvtYmSToYnSpipiCLEO );
modelist.registerModel( new EvtBsquark );
modelist.registerModel( new EvtPhiDalitz );
modelist.registerModel( new EvtBToPlnuBK );
modelist.registerModel( new EvtBToVlnuBall );
modelist.registerModel( new EvtVVPIPI_WEIGHTED );
modelist.registerModel( new EvtVPHOtoVISRHi );
modelist.registerModel( new EvtBTo4piCP );
modelist.registerModel( new EvtBTo3piCP );
modelist.registerModel( new EvtCBTo3piP00 );
modelist.registerModel( new EvtCBTo3piMPP );
modelist.registerModel( new EvtBToKpipiCP );
modelist.registerModel( new EvtRareLbToLll );
modelist.registerModel( new EvtHypNonLepton );
modelist.registerModel( new EvtSVVHelCPMix );
modelist.registerModel( new EvtSVPHelCPMix );
modelist.registerModel( new EvtLNuGamma );
modelist.registerModel( new EvtVub );
modelist.registerModel( new EvtVubHybrid );
modelist.registerModel( new EvtVubNLO );
modelist.registerModel( new EvtVubBLNP );
modelist.registerModel( new EvtVubBLNPHybrid );
modelist.registerModel( new EvtPto3P );
modelist.registerModel( new EvtBtoKD3P );
modelist.registerModel( new EvtKKLambdaC );
modelist.registerModel( new EvtDMix );
modelist.registerModel( new EvtD0mixDalitz );
modelist.registerModel( new EvtD0gammaDalitz );
modelist.registerModel( new EvtbTosllAli );
modelist.registerModel( new EvtBaryonPCR );
modelist.registerModel( new EvtBToDDalitzCPK );
modelist.registerModel( new EvtPVVCPLH );
modelist.registerModel( new EvtSSD_DirectCP );
modelist.registerModel( new EvtBcToNPi );
modelist.registerModel( new EvtBcPsiNPi );
modelist.registerModel( new EvtBcBsNPi );
modelist.registerModel( new EvtBcBsStarNPi );
modelist.registerModel( new EvtBcSMuNu );
modelist.registerModel( new EvtBcVMuNu );
modelist.registerModel( new EvtBcTMuNu );
modelist.registerModel( new EvtBcVNpi );
modelist.registerModel( new EvtSVP );
modelist.registerModel( new EvtTVP );
modelist.registerModel( new EvtXPsiGamma );
- modelist.registerModel( new EvtbsToLLLL );
- modelist.registerModel( new EvtbsToLLLLHyperCP );
modelist.registerModel( new EvtBLLNuL );
modelist.registerModel( new EvtKStopizmumu );
modelist.registerModel( new EvtVtoSll );
modelist.registerModel( new EvtBsMuMuKK );
modelist.registerModel( new EvtGenericDalitz );
modelist.registerModel( new EvtBcVHad );
modelist.registerModel( new EvtBcVPPHad );
modelist.registerModel( new Evtbs2llGammaMNT );
modelist.registerModel( new Evtbs2llGammaISRFSR );
modelist.registerModel( new EvtbTosllMS );
modelist.registerModel( new EvtbTosllMSExt );
modelist.registerModel( new EvtLb2plnuLQCD );
modelist.registerModel( new EvtLb2plnuLCSR );
modelist.registerModel( new EvtLb2Baryonlnu );
modelist.registerModel( new EvtBToDiBaryonlnupQCD );
modelist.registerModel( new EvtFlatSqDalitz );
modelist.registerModel( new EvtPhspFlatLifetime );
modelist.registerModel( new EvtLambdacPHH );
modelist.registerModel( new EvtDToKpienu );
modelist.registerModel( new EvtPsi2JpsiPiPi );
modelist.registerModel( new EvtThreeBodyPhsp );
modelist.registerModel( new EvtFourBodyPhsp );
modelist.registerModel( new EvtEtaLLPiPi );
modelist.registerModel( new EvtBToXElNu );
}
diff --git a/src/EvtGenModels/EvtbsToLLLL.cpp b/src/EvtGenModels/EvtbsToLLLL.cpp
deleted file mode 100644
index ac0e458..0000000
--- a/src/EvtGenModels/EvtbsToLLLL.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#include "EvtGenModels/EvtbsToLLLL.hh"
-
-#include "EvtGenBase/EvtGenKine.hh"
-#include "EvtGenBase/EvtPDL.hh"
-#include "EvtGenBase/EvtParticle.hh"
-#include "EvtGenBase/EvtReport.hh"
-
-#include "EvtGenModels/EvtbTosllWilsCoeffNLO.hh"
-#include "EvtGenModels/Evtbs2llGammaFFMNT.hh"
-#include "EvtGenModels/EvtbsToLLLLAmp.hh"
-
-#include <stdlib.h>
-#include <string.h>
-
-EvtbsToLLLL::~EvtbsToLLLL()
-{
- delete _mntffmodel;
- if ( _calcamp )
- delete _calcamp;
-}
-
-// The module name specification
-std::string EvtbsToLLLL::getName()
-{
- return "BQTOLLLL";
-}
-
-// The implementation of the clone() method
-EvtDecayBase* EvtbsToLLLL::clone()
-{
- return new EvtbsToLLLL;
-}
-
-// The inicialization of the decay model
-//
-// Tn the our model we have are following 4 arguments:
-//
-// mu - the scale parameter, GeV;
-// Nf - number of "effective" flavors (for b-quark Nf=5);
-// res_swch - resonant switching parametr:
-// = 0 the resonant contribution switched OFF,
-// = 1 the resonant contribution switched ON;
-// ias - switching parametr for \alpha_s(M_Z) value:
-// = 0 PDG 1sigma minimal alpha_s(M_Z),
-// = 1 PDG average value alpha_s(M_Z),
-// = 2 PDG 1sigma maximal alpha_s(M_Z).
-// Wolfenstein parameterization for CKM matrix
-// CKM_A, CKM_lambda, CKM_barrho, CKM_bareta
-//
-void EvtbsToLLLL::init()
-{
- // check that there are 8 arguments
- checkNArg( 8 );
- // check that there are 4 daughteres
- checkNDaug( 4 );
-
- // We expect that the parent to be a scalar (B-meson)
- // and the daughters to be l^+, l^-, l^+ and l^-
- checkSpinParent( EvtSpinType::SCALAR );
-
- // We expect that the all daughters are the ell+ or ell- == DIRAC
- checkSpinDaughter( 0, EvtSpinType::DIRAC );
- checkSpinDaughter( 1, EvtSpinType::DIRAC );
- checkSpinDaughter( 2, EvtSpinType::DIRAC );
- checkSpinDaughter( 3, EvtSpinType::DIRAC );
-
- _mntffmodel = new Evtbs2llGammaFFMNT();
- _wilscoeff = new EvtbTosllWilsCoeffNLO();
- _calcamp = new EvtbsToLLLLAmp();
-}
-
-// Set the maximum probability of the decay
-void EvtbsToLLLL::initProbMax()
-{
- double mymaxprob = -10.0; // maximum of the probability
-
- // EvtId parnum, l1num, l2num, l3num, l4num;
-
- // parnum = getParentId();
- // l1num = getDaug(0);
- // l2num = getDaug(1);
- // l3num = getDaug(2);
- // l4num = getDaug(3);
-
- // EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0));
-
- // double mu = getArg(0); // the scale parameter
- // int Nf = (int) getArg(1); // number of "effective" flavors
- // int res_swch = (int) getArg(2); // resonant switching parametr
- // int ias = (int) getArg(3); // switching parametr for \alpha_s(M_Z)
- // double CKM_A = getArg(4);
- // double CKM_lambda = getArg(5);
- // double CKM_barrho = getArg(6);
- // double CKM_bareta = getArg(7);
-
- mymaxprob = _calcamp->CalcMaxProb(
- // parnum, l1num,l2num, l3num,l4num,
- // _mntffmodel, _wilscoeff,
- // mu, Nf, res_swch, ias,
- // CKM_A,CKM_lambda,CKM_barrho,CKM_bareta
- );
-
- if ( mymaxprob <= 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "The function void EvtbsToLLLL::initProbMax()"
- << "\n Unexpected value of the probability maximum!"
- << "\n mymaxprob = " << mymaxprob << std::endl;
- ::abort();
- }
-
- setProbMax( mymaxprob );
-}
-
-void EvtbsToLLLL::decay( EvtParticle* p )
-{
- double mu = getArg( 0 ); // the scale parameter
- int Nf = (int)getArg( 1 ); // number of "effective" flavors
- int res_swch = (int)getArg( 2 ); // resonant switching parametr
- int ias = (int)getArg( 3 ); // switching parametr for \alpha_s(M_Z)
- double CKM_A = getArg( 4 );
- double CKM_lambda = getArg( 5 );
- double CKM_barrho = getArg( 6 );
- double CKM_bareta = getArg( 7 );
-
- p->initializePhaseSpace( getNDaug(), getDaugs() );
-
- _calcamp->CalcAmp( p, _amp2, _mntffmodel, _wilscoeff, mu, Nf, res_swch, ias,
- CKM_A, CKM_lambda, CKM_barrho, CKM_bareta );
-
- // EvtGenReport(EVTGEN_NOTICE,"EvtGen") << "\n The function EvtbTosllMSExt::decay(...) passed with arguments:"
- // << "\n mu = " << mu << " Nf =" << Nf
- // << " res_swch = " << res_swch
- // << " ias = " << ias
- // << " CKM_A = " << CKM_A
- // << " CKM_lambda = " << CKM_lambda
- // << " CKM_barrho = " << CKM_barrho
- // << " CKM_bareta = " << CKM_bareta
- // << " ReA7 = " << ReA7
- // << " ImA7 = " << ImA7
- // << " ReA10 = " << ReA10
- // << " ImA10 = " << ImA10 << std::endl;
-}
diff --git a/src/EvtGenModels/EvtbsToLLLLAmp.cpp b/src/EvtGenModels/EvtbsToLLLLAmp.cpp
deleted file mode 100644
index 9f9b115..0000000
--- a/src/EvtGenModels/EvtbsToLLLLAmp.cpp
+++ /dev/null
@@ -1,822 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#include "EvtGenModels/EvtbsToLLLLAmp.hh"
-
-#include "EvtGenBase/EvtAmp.hh"
-#include "EvtGenBase/EvtComplex.hh"
-#include "EvtGenBase/EvtDiracSpinor.hh"
-#include "EvtGenBase/EvtGenKine.hh"
-#include "EvtGenBase/EvtId.hh"
-#include "EvtGenBase/EvtIdSet.hh"
-#include "EvtGenBase/EvtPDL.hh"
-#include "EvtGenBase/EvtParticle.hh"
-#include "EvtGenBase/EvtPatches.hh"
-#include "EvtGenBase/EvtReport.hh"
-#include "EvtGenBase/EvtScalarParticle.hh"
-#include "EvtGenBase/EvtTensor4C.hh"
-#include "EvtGenBase/EvtVector4C.hh"
-
-#include "EvtGenModels/EvtbTosllWilsCoeffNLO.hh"
-#include "EvtGenModels/Evtbs2llGammaFFMNT.hh"
-
-#include <cstdlib>
-
-// input: *parent - the pointer to the parent particle (B-meson, the
-// object of the EvtParticle class);
-// *formFactors - the pointer to instance of EvtbTosllGammaFF class object;
-// *WilsCoeff - the pointer to the Standart Model Wilson Coefficients class;
-// mu - the scale parameter, GeV;
-// Nf - number of "effective" flavors (for b-quark Nf=5);
-// res_swch - resonant switching parameter:
-// = 0 the resonant contribution switched OFF,
-// = 1 the resonant contribution switched ON;
-// ias - switching parameter for \alpha_s(M_Z) value:
-// = 0 PDG 1sigma minimal alpha_s(M_Z),
-// = 1 PDG average value alpha_s(M_Z),
-// = 2 PDG 1sigma maximal alpha_s(M_Z).
-// Wolfenstein parameterization for CKM matrix
-// CKM_A, CKM_lambda, CKM_barrho, CKM_bareta
-
-void EvtbsToLLLLAmp::CalcAmp( EvtParticle* parent, EvtAmp& amp,
- Evtbs2llGammaFF* formFactors,
- EvtbTosllWilsCoeffNLO* WilsCoeff, double mu,
- int Nf, int res_swch, int ias, double CKM_A,
- double CKM_lambda, double CKM_barrho,
- double CKM_bareta )
-{
- // FILE *mytest;
-
- int il1 = 0, il2 = 1, il3 = 2,
- il4 = 3; // leptons are the first, second, thirds
- // and fourth daughter particles
-
- EvtComplex unit1( 1.0, 0.0 ); // real unit
- EvtComplex uniti( 0.0, 1.0 ); // imaginary unit
-
- double M1 = parent->mass(); // B - meson mass, GeV
- double ml = parent->getDaug( il1 )->mass(); // leptonic mass, GeV
- double mq = 0.0; // light quark mass from the dispersion QM, GeV
- double mc = formFactors->getQuarkMass(
- 4 ); // m_c mass from the dispersion QM, GeV
- double mb = formFactors->getQuarkMass(
- 5 ); // m_b mass from the dispersion QM, GeV
- double Mw = 80.403; // GeV W-boson mass, GeV
- double mt = 174.2; // GeV t-quark mass, GeV
- double fb = 0.0; // leptonic decay constant of B-meson, Gev
-
- EvtComplex Vtb, Vtq, Vub, Vuq, Vcb,
- Vcq; // V_{tb}, V_{tq}, V_{ub}, V_{uq}, V_{cb}, V_{cq}
- EvtComplex CKM_factor; // V^*_{tq}*V_{tb}, where q={d,s}
- EvtComplex lambda_qu; // V^*_{uq}*V_{ub}/V^*_{tq}*V_{tb}, where q={d,s}
- EvtComplex lambda_qc; // V^*_{cq}*V_{cb}/V^*_{tq}*V_{tb}, where q={d,s}
- double Relambda_qu, Imlambda_qu;
-
- //
- // Setting of the mq and CKM matrix elements for different Bq-mesons tipes
- //
- EvtId idparent = parent->getId(); // Bq-meson Id
- EvtId IdMu1, IdMu2, IdMu3, IdMu4;
-
- if ( idparent == EvtPDL::getId( std::string( "B_s0" ) ) ||
- idparent == EvtPDL::getId( std::string( "anti-B_s0" ) ) ) {
- mq = formFactors->getQuarkMass( 3 ); // m_s mass from the dispersion QM
- fb = 0.24; // leptonic decay constant
- // V_{ts}
- Vtq = unit1 * ( 1.0 - 0.5 * pow( CKM_lambda, 2.0 ) ) +
- pow( CKM_lambda, 2.0 ) *
- ( CKM_barrho * unit1 + CKM_bareta * uniti ) /
- sqrt( 1.0 - pow( CKM_lambda, 2.0 ) );
- Vtq = -CKM_A * pow( CKM_lambda, 2.0 ) * Vtq;
- // V_{us}
- Vuq = CKM_lambda * unit1;
- // V_{cs}
- Vcq = unit1 - 0.5 * pow( CKM_lambda, 2.0 ) -
- 0.125 * pow( CKM_lambda, 4.0 ) * ( 1.0 + 4.0 * pow( CKM_A, 2.0 ) );
- }
-
- if ( idparent == EvtPDL::getId( std::string( "B0" ) ) ||
- idparent == EvtPDL::getId( std::string( "anti-B0" ) ) ) {
- mq = formFactors->getQuarkMass( 2 ); // m_d mass from the dispersion QM
- fb = 0.20; // leptonic decay constant
- // V_{td}
- Vtq = unit1 - ( 1.0 - 0.5 * pow( CKM_lambda, 2.0 ) ) *
- ( CKM_barrho * unit1 + CKM_bareta * uniti ) /
- sqrt( 1.0 - pow( CKM_lambda, 2.0 ) );
- Vtq = CKM_A * pow( CKM_lambda, 3.0 ) * Vtq;
- // V_{ud}
- Vuq = unit1 * ( 1.0 - 0.5 * pow( CKM_lambda, 2.0 ) -
- 0.125 * pow( CKM_lambda, 4.0 ) );
- // V_{cd}
- Vcq = unit1 *
- ( -CKM_lambda +
- 0.5 * pow( CKM_A, 2.0 ) * pow( CKM_lambda, 5.0 ) *
- ( 1.0 - 2.0 * ( CKM_barrho * unit1 + CKM_bareta * uniti ) /
- sqrt( 1.0 - pow( CKM_lambda, 2.0 ) ) ) );
- }
-
- if ( mq < 0.001 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)"
- << "\n Error in the mq setting!"
- << "\n mq = " << mq << "< 0.001"
- << "\n idparent = " << idparent << std::endl;
- ::abort();
- }
-
- Vtb = unit1 * ( 1.0 - 0.5 * pow( CKM_A * CKM_lambda * CKM_lambda,
- 2.0 ) ); // V_{tb}
- Vub = CKM_A * pow( CKM_lambda, 3.0 ) *
- ( CKM_barrho * unit1 - CKM_bareta * uniti ) /
- sqrt( 1.0 - pow( CKM_lambda, 2.0 ) ); // V_{ub}
- Vcb = unit1 * CKM_A * pow( CKM_lambda, 2.0 ); // V_{cb}
-
- CKM_factor = conj( Vtq ) * Vtb; // V^*_{tq}*V_{tb}
-
- lambda_qu = conj( Vuq ) * Vub /
- CKM_factor; // V^*_{uq}*V_{ub}/V^*_{tq}*V_{tb}
- Relambda_qu = real( lambda_qu );
- Imlambda_qu = imag( lambda_qu );
-
- lambda_qc = conj( Vcq ) * Vcb /
- CKM_factor; // V^*_{cq}*V_{cb}/V^*_{tq}*V_{tb}
-
- //
- // Setting the leptonic kinematical properties
- //
-
- // to find charges of ell^+ and ell^- in the B-meson daughters
- int charge1 = ( EvtPDL::chg3( parent->getDaug( il1 )->getId() ) ) / 3;
- int charge2 = ( EvtPDL::chg3( parent->getDaug( il2 )->getId() ) ) / 3;
- int charge3 = ( EvtPDL::chg3( parent->getDaug( il3 )->getId() ) ) / 3;
- int charge4 = ( EvtPDL::chg3( parent->getDaug( il4 )->getId() ) ) / 3;
- if ( ( abs( charge1 ) != 1 ) || ( abs( charge2 ) != 1 ) ||
- ( abs( charge3 ) != 1 ) || ( abs( charge4 ) != 1 ) ||
- ( charge1 + charge2 + charge3 + charge4 != 0 ) ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)"
- << "\n Error in the leptonic charge definition!"
- << "\n charge1 =" << charge1
- << "\n charge2 =" << charge2
- << "\n charge3 =" << charge3
- << "\n charge4 =" << charge4
- << "\n number of daughters =" << parent->getNDaug() << std::endl;
- ::abort();
- }
-
- EvtParticle* lep1Plus = nullptr;
- EvtParticle* lep1Minus = nullptr;
- EvtParticle* lep2Plus = nullptr;
- EvtParticle* lep2Minus = nullptr;
-
- EvtVector4R p; // B-meson momentum in the B-rest frame
- EvtVector4R q; // first transition 4-momentum in the B-rest frame
- EvtVector4R k; // second transition 4-momentum in the B-rest frame
-
- double q2; // Mandelstam variable s=q^2
-
- // Nondimentional 4-momentums
- EvtVector4R hatp;
- EvtVector4R hatq;
- EvtVector4R hatk;
-
- EvtVector4R qsecond; // first transition 4-momentum in the B-rest frame
- EvtVector4R ksecond; // second transition 4-momentum in the B-rest frame
-
- double q2second; // Mandelstam variable s=q^2
-
- // Nondimentional 4-momentums
- EvtVector4R hatpsecond;
- EvtVector4R hatqsecond;
- EvtVector4R hatksecond;
-
- EvtVector4R k_1; // 4-momentum of ell^+ in the B-rest frame
- EvtVector4R k_2; // 4-momentum of ell^- in the B-rest frame
- EvtVector4R k_3; // 4-momentum of ell^+ in the B-rest frame
- EvtVector4R k_4; // 4-momentum of ell^- in the B-rest frame
-
- k_1.set( 0.0, 0.0, 0.0, 0.0 );
- k_2.set( 0.0, 0.0, 0.0, 0.0 );
- k_3.set( 0.0, 0.0, 0.0, 0.0 );
- k_4.set( 0.0, 0.0, 0.0, 0.0 );
-
- if ( ( charge1 + charge2 == 0 ) && ( charge3 + charge4 == 0 ) ) {
- // positive charged lepton 1
- lep1Plus = ( charge1 > charge2 ) ? parent->getDaug( il1 )
- : parent->getDaug( il2 );
- // negative charged lepton 1
- lep1Minus = ( charge1 < charge2 ) ? parent->getDaug( il1 )
- : parent->getDaug( il2 );
- if ( charge1 > charge2 ) {
- k_1 = parent->getDaug( il1 )->getP4();
- k_2 = parent->getDaug( il2 )->getP4();
- IdMu1 = parent->getDaug( il1 )->getId();
- IdMu2 = parent->getDaug( il2 )->getId();
- } else {
- k_1 = parent->getDaug( il2 )->getP4();
- k_2 = parent->getDaug( il1 )->getP4();
- IdMu1 = parent->getDaug( il2 )->getId();
- IdMu2 = parent->getDaug( il1 )->getId();
- }
- // positive charged lepton 2
- lep2Plus = ( charge3 > charge4 ) ? parent->getDaug( il3 )
- : parent->getDaug( il4 );
- // negative charged lepton 2
- lep2Minus = ( charge3 < charge4 ) ? parent->getDaug( il3 )
- : parent->getDaug( il4 );
- if ( charge3 > charge4 ) {
- k_3 = parent->getDaug( il3 )->getP4();
- k_4 = parent->getDaug( il4 )->getP4();
- IdMu3 = parent->getDaug( il3 )->getId();
- IdMu4 = parent->getDaug( il4 )->getId();
- } else {
- k_3 = parent->getDaug( il4 )->getP4();
- k_4 = parent->getDaug( il3 )->getP4();
- IdMu3 = parent->getDaug( il4 )->getId();
- IdMu4 = parent->getDaug( il3 )->getId();
- }
- }
- if ( ( charge1 + charge3 == 0 ) && ( charge2 + charge4 == 0 ) ) {
- // positive charged lepton 1
- lep1Plus = ( charge1 > charge3 ) ? parent->getDaug( il1 )
- : parent->getDaug( il3 );
- // negative charged lepton 1
- lep1Minus = ( charge1 < charge3 ) ? parent->getDaug( il1 )
- : parent->getDaug( il3 );
- if ( charge1 > charge3 ) {
- k_1 = parent->getDaug( il1 )->getP4();
- k_2 = parent->getDaug( il3 )->getP4();
- IdMu1 = parent->getDaug( il1 )->getId();
- IdMu2 = parent->getDaug( il3 )->getId();
- } else {
- k_1 = parent->getDaug( il3 )->getP4();
- k_2 = parent->getDaug( il1 )->getP4();
- IdMu1 = parent->getDaug( il3 )->getId();
- IdMu2 = parent->getDaug( il1 )->getId();
- }
- // positive charged lepton 2
- lep2Plus = ( charge2 > charge4 ) ? parent->getDaug( il2 )
- : parent->getDaug( il4 );
- // negative charged lepton 2
- lep2Minus = ( charge2 < charge4 ) ? parent->getDaug( il2 )
- : parent->getDaug( il4 );
- if ( charge2 > charge4 ) {
- k_3 = parent->getDaug( il2 )->getP4();
- k_4 = parent->getDaug( il4 )->getP4();
- IdMu3 = parent->getDaug( il2 )->getId();
- IdMu4 = parent->getDaug( il4 )->getId();
- } else {
- k_3 = parent->getDaug( il4 )->getP4();
- k_4 = parent->getDaug( il2 )->getP4();
- IdMu3 = parent->getDaug( il4 )->getId();
- IdMu4 = parent->getDaug( il2 )->getId();
- }
- }
-
- p = parent->getP4Restframe();
- hatp = p / M1;
-
- //
- // The calculation of the FIRST part of the amplitude
- //
-
- q = k_1 + k_2;
- k = k_3 + k_4;
- q2 = q.mass2(); // Mandelstam variable s=q^2
- hatq = q / M1;
- hatk = k / M1;
-
- // The Wilson Coefficients preparation according to the paper
- // A.J.Buras, M.Munz, Phys.Rev.D52, p.189 (1995)
- double c1, c2;
- EvtComplex a1, c7gam, c9eff_b2q, c9eff_barb2barq, c10a;
-
- // Excluded of the J/psi and psi' resonant area
- if ( ( res_swch == 1 ) && ( q2 >= 9.199 ) && ( q2 <= 15.333 ) ) {
- c1 = 0.0;
- c2 = 0.0;
- a1 = unit1 * 0.0;
- c7gam = unit1 * 0.0;
- c9eff_b2q = unit1 * 0.0;
- c9eff_barb2barq = unit1 * 0.0;
- c10a = unit1 * 0.0;
- } else {
- c1 = WilsCoeff->C1( mu, Mw, Nf, ias );
- c2 = WilsCoeff->C2( mu, Mw, Nf, ias );
- a1 = unit1 * ( c1 + c2 / 3.0 );
- c7gam = WilsCoeff->GetC7Eff( mu, Mw, mt, Nf, ias );
- c9eff_b2q = WilsCoeff->GetC9Eff( 0, res_swch, ias, Nf, q2, mb, mq, mc, mu,
- mt, Mw, ml, Relambda_qu, Imlambda_qu );
- c9eff_barb2barq = WilsCoeff->GetC9Eff( 1, res_swch, ias, Nf, q2, mb, mq,
- mc, mu, mt, Mw, ml, Relambda_qu,
- Imlambda_qu );
- c10a = WilsCoeff->GetC10Eff( mt, Mw );
- }
-
- EvtComplex Fv,
- Fa; // The change of the sign is included in the amplitudes definition!
- EvtComplex Ftv_b2q, Ftv_barb2barq;
- EvtComplex Fta_b2q, Fta_barb2barq;
-
- // Excluded of the J/psi and psi' resonant area
- if ( ( res_swch == 1 ) && ( q2 >= 9.199 ) && ( q2 <= 15.333 ) ) {
- fb = 0.0;
- Fa = unit1 * 0.0;
- Fv = unit1 * 0.0;
- Fta_b2q = unit1 * 0.0;
- Fta_barb2barq = unit1 * 0.0;
- Ftv_b2q = unit1 * 0.0;
- Ftv_barb2barq = unit1 * 0.0;
- } else {
- if ( fb < 0.01 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)"
- << "\n Leptonic decay constant fb is not uninitialized in this function!"
- << " fb = " << fb << std::endl;
- ::abort();
- }
-
- // For \bar B^0_q -> l^+ l^- gamma
- formFactors->getPhotonFF( 0, fb, parent->getId(), q2, M1, mb, mq, c7gam,
- a1, lambda_qu, lambda_qc, Fv, Fa, Ftv_b2q,
- Fta_b2q );
-
- // For B^0_q -> l^+ l^- gamma
- formFactors->getPhotonFF( 1, fb, parent->getId(), q2, M1, mb, mq, c7gam,
- a1, lambda_qu, lambda_qc, Fv, Fa,
- Ftv_barb2barq, Fta_barb2barq );
- }
-
- // The functions for the hadronic matrix element calculation
- EvtComplex a_b2q, a_barb2barq, b_b2q, b_barb2barq, c_b2q, c_barb2barq;
- EvtComplex e_b2q, e_barb2barq, f_b2q, f_barb2barq, g_b2q, g_barb2barq;
-
- a_b2q = c9eff_b2q * Fv + 2.0 * c7gam * Ftv_b2q * mb * M1 / q2;
- a_barb2barq = c9eff_barb2barq * Fv +
- 2.0 * c7gam * Ftv_barb2barq * mb * M1 / q2;
-
- b_b2q = ( c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2 ) *
- ( hatp * hatk );
- b_barb2barq = ( c9eff_barb2barq * Fa +
- 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2 ) *
- ( hatp * hatk );
-
- c_b2q = c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2;
- c_barb2barq = c9eff_barb2barq * Fa +
- 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2;
-
- e_b2q = c10a * Fv;
- e_barb2barq = e_b2q;
-
- f_b2q = c10a * Fa * ( hatp * hatk );
- f_barb2barq = f_b2q;
-
- g_b2q = c10a * Fa;
- g_barb2barq = g_b2q;
-
- //
- // The calculation of the SECOND part of the amplitude
- //
-
- qsecond = k_1 + k_4;
- ksecond = k_3 + k_2;
- q2second = qsecond.mass2(); // Mandelstam variable s=q^2
- hatqsecond = qsecond / M1;
- hatksecond = ksecond / M1;
-
- // Excluded of the J/psi and psi' resonant area
- if ( ( res_swch == 1 ) && ( q2second >= 9.199 ) && ( q2second <= 15.333 ) ) {
- c1 = 0.0;
- c2 = 0.0;
- a1 = unit1 * 0.0;
- c7gam = unit1 * 0.0;
- c9eff_b2q = unit1 * 0.0;
- c9eff_barb2barq = unit1 * 0.0;
- c10a = unit1 * 0.0;
- } else {
- c1 = WilsCoeff->C1( mu, Mw, Nf, ias );
- c2 = WilsCoeff->C2( mu, Mw, Nf, ias );
- a1 = unit1 * ( c1 + c2 / 3.0 );
- c7gam = WilsCoeff->GetC7Eff( mu, Mw, mt, Nf, ias );
- c9eff_b2q = WilsCoeff->GetC9Eff( 0, res_swch, ias, Nf, q2second, mb, mq,
- mc, mu, mt, Mw, ml, Relambda_qu,
- Imlambda_qu );
- c9eff_barb2barq = WilsCoeff->GetC9Eff( 1, res_swch, ias, Nf, q2second,
- mb, mq, mc, mu, mt, Mw, ml,
- Relambda_qu, Imlambda_qu );
- c10a = WilsCoeff->GetC10Eff( mt, Mw );
- }
-
- // Excluded of the J/psi and psi' resonant area
- if ( ( res_swch == 1 ) && ( q2second >= 9.199 ) && ( q2second <= 15.333 ) ) {
- fb = 0.0;
- Fa = unit1 * 0.0;
- Fv = unit1 * 0.0;
- Fta_b2q = unit1 * 0.0;
- Fta_barb2barq = unit1 * 0.0;
- Ftv_b2q = unit1 * 0.0;
- Ftv_barb2barq = unit1 * 0.0;
- } else {
- if ( fb < 0.01 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)"
- << "\n Leptonic decay constant fb is not uninitialized in this function!"
- << " fb = " << fb << std::endl;
- ::abort();
- }
-
- // For \bar B^0_q -> l^+ l^- gamma
- formFactors->getPhotonFF( 0, fb, parent->getId(), q2second, M1, mb, mq,
- c7gam, a1, lambda_qu, lambda_qc, Fv, Fa,
- Ftv_b2q, Fta_b2q );
-
- // For B^0_q -> l^+ l^- gamma
- formFactors->getPhotonFF( 1, fb, parent->getId(), q2second, M1, mb, mq,
- c7gam, a1, lambda_qu, lambda_qc, Fv, Fa,
- Ftv_barb2barq, Fta_barb2barq );
- }
-
- // The functions for the hadronic matrix element calculation
- EvtComplex a_b2qsecond, a_barb2barqsecond, b_b2qsecond, b_barb2barqsecond,
- c_b2qsecond, c_barb2barqsecond;
- EvtComplex e_b2qsecond, e_barb2barqsecond, f_b2qsecond, f_barb2barqsecond,
- g_b2qsecond, g_barb2barqsecond;
-
- a_b2qsecond = c9eff_b2q * Fv + 2.0 * c7gam * Ftv_b2q * mb * M1 / q2second;
- a_barb2barqsecond = c9eff_barb2barq * Fv +
- 2.0 * c7gam * Ftv_barb2barq * mb * M1 / q2second;
-
- b_b2qsecond = ( c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2second ) *
- ( hatpsecond * hatksecond );
- b_barb2barqsecond = ( c9eff_barb2barq * Fa +
- 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2second ) *
- ( hatpsecond * hatksecond );
-
- c_b2qsecond = c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2second;
- c_barb2barqsecond = c9eff_barb2barq * Fa +
- 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2second;
-
- e_b2qsecond = c10a * Fv;
- e_barb2barqsecond = e_b2qsecond;
-
- f_b2qsecond = c10a * Fa * ( hatpsecond * hatksecond );
- f_barb2barqsecond = f_b2qsecond;
-
- g_b2qsecond = c10a * Fa;
- g_barb2barqsecond = g_b2qsecond;
-
- EvtTensor4C T1, T2; // Tensor structures for
- EvtTensor4C T1second,
- T2second; // the hadronic matrix element calculation
-
- // B - and barB - mesons descriptors
- static EvtIdSet bmesons{ "anti-B0", "anti-B_s0" };
- static EvtIdSet bbarmesons{ "B0", "B_s0" };
-
- EvtId parentID = parent->getId();
-
- if ( bmesons.contains( parentID ) ) {
- // The amplitude for the decay barB -> gamma ell^+ ell^- or
- // b \bar q -> gamma ell^+ ell^-
-
- T1 = a_b2q * unit1 * dual( EvtGenFunctions::directProd( hatq, hatk ) ) -
- b_b2q * uniti * EvtTensor4C::g() +
- c_b2q * uniti * EvtGenFunctions::directProd( hatk, hatq );
-
- T2 = e_b2q * unit1 * dual( EvtGenFunctions::directProd( hatp, hatk ) ) -
- f_b2q * uniti * EvtTensor4C::g() +
- g_b2q * uniti * EvtGenFunctions::directProd( hatk, hatq );
-
- T1second = a_b2qsecond * unit1 *
- dual( EvtGenFunctions::directProd( hatqsecond,
- hatksecond ) ) -
- b_b2qsecond * uniti * EvtTensor4C::g() +
- c_b2qsecond * uniti *
- EvtGenFunctions::directProd( hatksecond, hatqsecond );
-
- T2second = e_b2qsecond * unit1 *
- dual( EvtGenFunctions::directProd( hatpsecond,
- hatksecond ) ) -
- f_b2qsecond * uniti * EvtTensor4C::g() +
- g_b2qsecond * uniti *
- EvtGenFunctions::directProd( hatksecond, hatqsecond );
-
- int i1, i2, i3, i4; // leptonic spin structures counters
- int leptonicspin[4]; // array for the saving of the leptonic spin configuration
-
- // Tables for correspondings
- // l^+(k_1) && lep1Plus && k_1 && i1
- // l^-(k_2) && lep1Minus && k_2 && i2
- // l^+(k_3) && lep2Plus && k_3 && i3
- // l^-(k_4) && lep2Minus && k_4 && i4
-
- for ( i2 = 0; i2 < 2; i2++ ) {
- leptonicspin[0] = i2;
- for ( i1 = 0; i1 < 2; i1++ ) {
- leptonicspin[1] = i1;
- for ( i4 = 0; i4 < 2; i4++ ) {
- leptonicspin[2] = i4;
- for ( i3 = 0; i3 < 2; i3++ ) {
- leptonicspin[3] = i3;
- EvtVector4C VL2L1, AL2L1, VL4L3;
- EvtVector4C E1, E2;
- EvtVector4C VL2L1second, AL2L1second, VL4L3second;
- EvtVector4C E1second, E2second;
-
- VL2L1 = EvtLeptonVCurrent( lep1Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- AL2L1 = EvtLeptonACurrent( lep1Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- VL4L3 = EvtLeptonVCurrent( lep2Minus->spParent( i4 ),
- lep2Plus->spParent( i3 ) );
- E1 = T1.cont2( VL4L3 );
- E2 = T2.cont2( VL4L3 );
-
- VL2L1second = EvtLeptonVCurrent(
- lep2Minus->spParent( i2 ), lep1Plus->spParent( i1 ) );
- AL2L1second = EvtLeptonACurrent(
- lep2Minus->spParent( i2 ), lep1Plus->spParent( i1 ) );
- VL4L3second = EvtLeptonVCurrent(
- lep1Minus->spParent( i4 ), lep2Plus->spParent( i3 ) );
- E1second = T1second.cont2( VL4L3second );
- E2second = T2second.cont2( VL4L3second );
-
- amp.vertex( leptonicspin,
- CKM_factor * ( VL2L1 * E1 + AL2L1 * E2 +
- VL2L1second * E1second +
- AL2L1second * E2second ) );
-
- // EvtGenReport(EVTGEN_ERROR,"EvtGen")
- // << "\n\n ============================================================================"
- // << "\n The matrix element (first + second) = "
- // << CKM_factor*(VL2L1*E1+AL2L1*E2+VL2L1second*E1second+AL2L1second*E2second)
- // << "\n The matrix element (only first) = "
- // << CKM_factor*(VL2L1*E1+AL2L1*E2)
- // << "============================================================================\n\n"
- // << std::endl;
- }
- }
- }
- }
-
- // EvtGenReport(EVTGEN_ERROR,"EvtGen") << "\n The function EvtbsToLLLLAmp::CalcAmp(...) passed with arguments:"
- // << "\n ============================================================================"
- // << "\n Input parameters:"
- // << "\n mu = " << mu
- // << "\n Nf =" << Nf
- // << "\n res_swch = " << res_swch
- // << "\n ias = " << ias
- // << "\n CKM_A = " << CKM_A
- // << "\n CKM_lambda = " << CKM_lambda
- // << "\n CKM_barrho = " << CKM_barrho
- // << "\n CKM_bareta = " << CKM_bareta
- // << "\n CKM_factor = " << CKM_factor
- // << "\n ============================================================================"
- // << "\n Kinematics:"
- // << "\n k_1 = " << k_1
- // << "\n m_ell_1 =" << parent->getDaug(il1)->mass()
- // << "\n k_2 = " << k_2
- // << "\n m_ell_2 =" << parent->getDaug(il2)->mass()
- // << "\n k_3 = " << k_3
- // << "\n m_ell_3 =" << parent->getDaug(il3)->mass()
- // << "\n k_4 = " << k_4
- // << "\n m_ell_4 =" << parent->getDaug(il4)->mass()
- // << "\n p = " << p
- // << "\n q = " << q
- // << "\n k = " << k
- // << "\n ============================================================================"
- // << "\n Form-factors"
- // << "\n Fv = " << Fv
- // << "\n Fa = " << Fa
- // << "\n Ftv_b2q = " << Ftv_b2q
- // << "\n Fta_b2q = " << Fta_b2q
- // << "\n Ftv_barb2barq = " << Ftv_barb2barq
- // << "\n Fta_barb2barq = " << Fta_barb2barq
- // << "\n fb = " << fb
- // << "\n ============================================================================"
- // << "\n Wilson Coefficients:"
- // << "\n Re(c7gam) = " << real(c7gam)
- // << " Im(c7gam) = " << imag(c7gam)
- // << "\n Re(c9eff_b2q) = " << real(c9eff_b2q)
- // << " Im(c9eff_b2q) = " << imag(c9eff_b2q)
- // << "\n Re(c9eff_barb2barq) = " << real(c9eff_barb2barq)
- // << " Im(c9eff_barb2barq) = " << imag(c9eff_barb2barq)
- // << "\n Re(c10a) = " << real(c10a)
- // << " Im(c10a) = " << imag(c10a)
- // << "\n ============================================================================"
- // << "\n Functions in the matrix element:"
- // << "\n a_b2q = " << a_b2q
- // << "\n b_b2q = " << b_b2q
- // << "\n c_b2q = " << c_b2q
- // << "\n e_b2q = " << e_b2q
- // << "\n f_b2q = " << f_b2q
- // << "\n g_b2q = " << g_b2q
- // << "\n ============================================================================"
- // << "\n Partical Properties:"
- // << "\n IdB = " << idparent << " == " << EvtPDL::getId(std::string("anti-B_s0"))
- // << "\n IdMu1 = " << IdMu1 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu2 = " << IdMu2 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n IdMu3 = " << IdMu3 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu4 = " << IdMu4 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n\n\n\n"
- // << std::endl;
-
- } else {
- if ( bbarmesons.contains( parentID ) ) {
- // The amplitude for the decay B -> gamma ell^+ ell^- or
- // q bar b -> gamma ell^+ ell^-
-
- T1 = -a_barb2barq * unit1 *
- dual( EvtGenFunctions::directProd( hatq, hatk ) ) -
- b_barb2barq * uniti * EvtTensor4C::g() +
- c_barb2barq * uniti * EvtGenFunctions::directProd( hatk, hatq );
-
- T2 = -e_barb2barq * unit1 *
- dual( EvtGenFunctions::directProd( hatq, hatk ) ) -
- f_barb2barq * uniti * EvtTensor4C::g() +
- g_barb2barq * uniti * EvtGenFunctions::directProd( hatk, hatq );
-
- T1second = -a_barb2barqsecond * unit1 *
- dual( EvtGenFunctions::directProd( hatqsecond,
- hatksecond ) ) -
- b_barb2barqsecond * uniti * EvtTensor4C::g() +
- c_barb2barqsecond * uniti *
- EvtGenFunctions::directProd( hatksecond, hatqsecond );
-
- T2second = -e_barb2barqsecond * unit1 *
- dual( EvtGenFunctions::directProd( hatpsecond,
- hatksecond ) ) -
- f_barb2barqsecond * uniti * EvtTensor4C::g() +
- g_barb2barqsecond * uniti *
- EvtGenFunctions::directProd( hatksecond, hatqsecond );
-
- int i1, i2, i3, i4; // leptonic spin structures counters
- int leptonicspin[4]; // array for the saving of the leptonic spin configuration
-
- // Tables for correspondings
- // l^+(k_1) && lep1Plus && k_1 && i1
- // l^-(k_2) && lep1Minus && k_2 && i2
- // l^+(k_3) && lep2Plus && k_3 && i3
- // l^-(k_4) && lep2Minus && k_4 && i4
-
- for ( i2 = 1; i2 > -1; i2-- ) {
- leptonicspin[0] = i2;
- for ( i1 = 1; i1 > -1; i1-- ) {
- leptonicspin[1] = i1;
- for ( i4 = 1; i4 > -1; i4-- ) {
- leptonicspin[2] = i4;
- for ( i3 = 1; i3 > -1; i3-- ) {
- leptonicspin[3] = i3;
- EvtVector4C VL2L1, AL2L1, VL4L3;
- EvtVector4C E1, E2;
- EvtVector4C VL2L1second, AL2L1second, VL4L3second;
- EvtVector4C E1second, E2second;
-
- VL2L1 = EvtLeptonVCurrent( lep1Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- AL2L1 = EvtLeptonACurrent( lep1Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- VL4L3 = EvtLeptonVCurrent( lep2Minus->spParent( i4 ),
- lep2Plus->spParent( i3 ) );
- E1 = T1.cont2( VL4L3 );
- E2 = T2.cont2( VL4L3 );
-
- VL2L1second =
- EvtLeptonVCurrent( lep2Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- AL2L1second =
- EvtLeptonACurrent( lep2Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- VL4L3second =
- EvtLeptonVCurrent( lep1Minus->spParent( i4 ),
- lep2Plus->spParent( i3 ) );
- E1second = T1second.cont2( VL4L3second );
- E2second = T2second.cont2( VL4L3second );
-
- amp.vertex( leptonicspin,
- conj( CKM_factor ) *
- ( VL2L1 * E1 + AL2L1 * E2 +
- VL2L1second * E1second +
- AL2L1second * E2second ) );
- }
- }
- }
- }
-
- // EvtGenReport(EVTGEN_ERROR,"EvtGen") << "\n The function EvtbsToLLLLAmp::CalcAmp(...) passed with arguments:"
- // << "\n ============================================================================"
- // << "\n Input parameters:"
- // << "\n mu = " << mu
- // << "\n Nf =" << Nf
- // << "\n res_swch = " << res_swch
- // << "\n ias = " << ias
- // << "\n CKM_A = " << CKM_A
- // << "\n CKM_lambda = " << CKM_lambda
- // << "\n CKM_barrho = " << CKM_barrho
- // << "\n CKM_bareta = " << CKM_bareta
- // << "\n CKM_factor = " << CKM_factor
- // << "\n ============================================================================"
- // << "\n Kinematics:"
- // << "\n k_1 = " << k_1
- // << "\n m_ell_1 =" << parent->getDaug(il1)->mass()
- // << "\n k_2 = " << k_2
- // << "\n m_ell_2 =" << parent->getDaug(il2)->mass()
- // << "\n k_3 = " << k_3
- // << "\n m_ell_3 =" << parent->getDaug(il3)->mass()
- // << "\n k_4 = " << k_4
- // << "\n m_ell_4 =" << parent->getDaug(il4)->mass()
- // << "\n p = " << p
- // << "\n q = " << q
- // << "\n k = " << k
- // << "\n ============================================================================"
- // << "\n Form-factors"
- // << "\n Fv = " << Fv
- // << "\n Fa = " << Fa
- // << "\n Ftv_b2q = " << Ftv_b2q
- // << "\n Fta_b2q = " << Fta_b2q
- // << "\n Ftv_barb2barq = " << Ftv_barb2barq
- // << "\n Fta_barb2barq = " << Fta_barb2barq
- // << "\n fb = " << fb
- // << "\n ============================================================================"
- // << "\n Wilson Coefficients:"
- // << "\n Re(c7gam) = " << real(c7gam)
- // << " Im(c7gam) = " << imag(c7gam)
- // << "\n Re(c9eff_b2q) = " << real(c9eff_b2q)
- // << " Im(c9eff_b2q) = " << imag(c9eff_b2q)
- // << "\n Re(c9eff_barb2barq) = " << real(c9eff_barb2barq)
- // << " Im(c9eff_barb2barq) = " << imag(c9eff_barb2barq)
- // << "\n Re(c10a) = " << real(c10a)
- // << " Im(c10a) = " << imag(c10a)
- // << "\n ============================================================================"
- // << "\n Functions in the matrix element:"
- // << "\n a_barb2barq = " << a_barb2barq
- // << "\n b_barb2barq = " << b_barb2barq
- // << "\n c_barb2barq = " << c_barb2barq
- // << "\n e_barb2barq = " << e_barb2barq
- // << "\n f_barb2barq = " << f_barb2barq
- // << "\n g_barb2barq = " << g_barb2barq
- // << "\n ============================================================================"
- // << "\n Partical Properties:"
- // << "\n IdB = " << idparent << " == " << EvtPDL::getId(std::string("B_s0"))
- // << "\n IdMu1 = " << IdMu1 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu2 = " << IdMu2 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n IdMu3 = " << IdMu3 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu4 = " << IdMu4 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n\n\n\n"
- // << std::endl;
- } else {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)"
- << "\n Wrong Bq-meson number" << std::endl;
- ::abort();
- }
- }
-}
-
-//
-// The decays Bq -> ell^+ ell^- ell^+ ell^- maximum probability calculation
-//
-double EvtbsToLLLLAmp::CalcMaxProb(
- // EvtId parnum,
- // EvtId l1num, EvtId l2num,
- // EvtId l3num, EvtId l4num,
- // Evtbs2llGammaFF *formFactors,
- // EvtbTosllWilsCoeffNLO *WilsCoeff,
- // double mu, int Nf,
- // int res_swch, int ias,
- // double CKM_A, double CKM_lambda,
- // double CKM_barrho, double CKM_bareta
-)
-{
- double maxfoundprob = 10.0; // maximum of the probability
-
- return maxfoundprob;
-}
-
-// Triangular function
-double EvtbsToLLLLAmp::lambda( double a, double b, double c )
-{
- double l;
-
- l = pow( a, 2.0 ) + pow( b, 2.0 ) + pow( c, 2.0 ) - 2.0 * a * b -
- 2.0 * a * c - 2.0 * b * c;
-
- return l;
-}
diff --git a/src/EvtGenModels/EvtbsToLLLLHyperCP.cpp b/src/EvtGenModels/EvtbsToLLLLHyperCP.cpp
deleted file mode 100644
index 3ae6896..0000000
--- a/src/EvtGenModels/EvtbsToLLLLHyperCP.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#include "EvtGenModels/EvtbsToLLLLHyperCP.hh"
-
-#include "EvtGenBase/EvtGenKine.hh"
-#include "EvtGenBase/EvtPDL.hh"
-#include "EvtGenBase/EvtParticle.hh"
-#include "EvtGenBase/EvtReport.hh"
-
-#include "EvtGenModels/EvtbsToLLLLHyperCPAmp.hh"
-
-#include <stdlib.h>
-#include <string.h>
-
-EvtbsToLLLLHyperCP::~EvtbsToLLLLHyperCP()
-{
- if ( _calcamp )
- delete _calcamp;
-}
-
-// The module name specification
-std::string EvtbsToLLLLHyperCP::getName()
-{
- return "BQTOLLLLHYPERCP";
-}
-
-// The implementation of the clone() method
-EvtDecayBase* EvtbsToLLLLHyperCP::clone()
-{
- return new EvtbsToLLLLHyperCP;
-}
-
-// The inicialization of the decay model
-//
-// Tn the our model we have are following 14 arguments:
-//
-// mS - the mass of the scalar sgoldstino "S" (GeV);
-// mP - the mass of the pseudoscalar sgoldstino "P" (GeV);
-// gammaS - the decay width of the scalar sgoldstino "S" (GeV);
-// gammaP - the decay width of the pseudoscalar sgoldstino "P" (GeV);
-// mLiiLR -
-// Fc - coupling constant (GeV);
-// mDijLL(RR) - parameters for \bar Bq-decays
-// mDjiLL(RR) - parameters for Bq-decays (i <-> j!)
-// d==1, s==2, b==3
-//
-void EvtbsToLLLLHyperCP::init()
-{
- // check that there are 14 arguments
- checkNArg( 14 );
- // check that there are 4 daughteres
- checkNDaug( 4 );
-
- // We expect that the parent to be a scalar (B-meson)
- // and the daughters to be l^+, l^-, l^+ and l^-
- checkSpinParent( EvtSpinType::SCALAR );
-
- // We expect that the all daughters are the ell+ or ell- == DIRAC
- checkSpinDaughter( 0, EvtSpinType::DIRAC );
- checkSpinDaughter( 1, EvtSpinType::DIRAC );
- checkSpinDaughter( 2, EvtSpinType::DIRAC );
- checkSpinDaughter( 3, EvtSpinType::DIRAC );
-
- _calcamp = new EvtbsToLLLLHyperCPAmp();
-}
-
-// Set the maximum probability of the decay
-void EvtbsToLLLLHyperCP::initProbMax()
-{
- double mymaxprob = -10.0; // maximum of the probability
-
- EvtId parnum, l1num, l2num, l3num, l4num;
-
- parnum = getParentId();
- l1num = getDaug( 0 );
- l2num = getDaug( 1 );
- l3num = getDaug( 2 );
- l4num = getDaug( 3 );
-
- double mS = getArg( 0 );
- double mP = getArg( 1 );
- double gammaS = getArg( 2 );
- double gammaP = getArg( 3 );
- double mLiiLR = getArg( 4 );
- double Fc = getArg( 5 );
- double mD23LL = getArg( 6 );
- double mD23RR = getArg( 7 );
- double mD32LL = getArg( 8 );
- double mD32RR = getArg( 9 );
- double mD13LL = getArg( 10 );
- double mD13RR = getArg( 11 );
- double mD31LL = getArg( 12 );
- double mD31RR = getArg( 13 );
-
- mymaxprob = _calcamp->CalcMaxProb( parnum, l1num, l2num, l3num, l4num, mS,
- mP, gammaS, gammaP, mLiiLR, Fc, mD23LL,
- mD23RR, mD32LL, mD32RR, mD13LL, mD13RR,
- mD31LL, mD31RR );
-
- if ( mymaxprob <= 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "The function void EvtbsToLLLLHyperCP::initProbMax()"
- << "\n Unexpected value of the probability maximum!"
- << "\n mymaxprob = " << mymaxprob << std::endl;
- ::abort();
- }
-
- setProbMax( mymaxprob );
-}
-
-void EvtbsToLLLLHyperCP::decay( EvtParticle* p )
-{
- double mS = getArg( 0 );
- double mP = getArg( 1 );
- double gammaS = getArg( 2 );
- double gammaP = getArg( 3 );
- double mLiiLR = getArg( 4 );
- double Fc = getArg( 5 );
- double mD23LL = getArg( 6 );
- double mD23RR = getArg( 7 );
- double mD32LL = getArg( 8 );
- double mD32RR = getArg( 9 );
- double mD13LL = getArg( 10 );
- double mD13RR = getArg( 11 );
- double mD31LL = getArg( 12 );
- double mD31RR = getArg( 13 );
-
- p->initializePhaseSpace( getNDaug(), getDaugs() );
-
- _calcamp->CalcAmp( p, _amp2, mS, mP, gammaS, gammaP, mLiiLR, Fc, mD23LL,
- mD23RR, mD32LL, mD32RR, mD13LL, mD13RR, mD31LL, mD31RR );
-
- // EvtGenReport(EVTGEN_NOTICE,"EvtGen") << "\n The function EvtbsToLLLLHyperCP::decay(...) passed with arguments:"
- // << "\n mS = " << mS
- // << "\n mP = " << mP
- // << "\n gammaS = " << gammaS
- // << "\n gammaP = " << gammaP
- // << "\n mLiiLR = " << mLiiLR
- // << "\n Fc = " << Fc
- // << "\n mD23LL = " << mD23LL
- // << "\n mD23RR = " << mD23RR
- // << "\n mD32LL = " << mD32LL
- // << "\n mD32RR = " << mD32RR
- // << "\n mD13LL = " << mD13LL
- // << "\n mD13RR = " << mD13RR
- // << "\n mD31LL = " << mD31LL
- // << "\n mD31RR = " << mD31RR
- // << std::endl;
-}
diff --git a/src/EvtGenModels/EvtbsToLLLLHyperCPAmp.cpp b/src/EvtGenModels/EvtbsToLLLLHyperCPAmp.cpp
deleted file mode 100644
index 95977fd..0000000
--- a/src/EvtGenModels/EvtbsToLLLLHyperCPAmp.cpp
+++ /dev/null
@@ -1,605 +0,0 @@
-
-/***********************************************************************
-* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
-* *
-* This file is part of EvtGen. *
-* *
-* EvtGen is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* EvtGen is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
-***********************************************************************/
-
-#include "EvtGenModels/EvtbsToLLLLHyperCPAmp.hh"
-
-#include "EvtGenBase/EvtAmp.hh"
-#include "EvtGenBase/EvtComplex.hh"
-#include "EvtGenBase/EvtDiracSpinor.hh"
-#include "EvtGenBase/EvtGenKine.hh"
-#include "EvtGenBase/EvtId.hh"
-#include "EvtGenBase/EvtIdSet.hh"
-#include "EvtGenBase/EvtPDL.hh"
-#include "EvtGenBase/EvtParticle.hh"
-#include "EvtGenBase/EvtPatches.hh"
-#include "EvtGenBase/EvtReport.hh"
-#include "EvtGenBase/EvtScalarParticle.hh"
-#include "EvtGenBase/EvtTensor4C.hh"
-#include "EvtGenBase/EvtVector4C.hh"
-
-#include <cstdlib>
-
-// input: *parent - the pointer to the parent particle (B-meson, the
-// object of the EvtParticle class);
-// mS - the mass of the scalar sgoldstino "S" (GeV);
-// mP - the mass of the pseudoscalar sgoldstino "P" (GeV);
-// gammaS - the decay width of the scalar sgoldstino "S" (GeV);
-// gammaP - the decay width of the pseudoscalar sgoldstino "P" (GeV);
-// mLiiLR -
-// Fc - coupling constant (GeV^2);
-// mDijLL(RR) - parameters for \bar Bq-decays
-// mDjiLL(RR) - parameters for Bq-decays (i <-> j!)
-// d==1, s==2, b==3
-//
-void EvtbsToLLLLHyperCPAmp::CalcAmp( EvtParticle* parent, EvtAmp& amp,
- double mS, double mP, double gammaS,
- double gammaP, double mLiiLR, double Fc,
- double mD23LL, double mD23RR, double mD32LL,
- double mD32RR, double mD13LL, double mD13RR,
- double mD31LL, double mD31RR )
-{
- // FILE *mytest;
-
- int il1 = 0, il2 = 1, il3 = 2,
- il4 = 3; // leptons are the first, second, thirds
- // and fourth daughter particles
-
- EvtComplex unit1( 1.0, 0.0 ); // real unit
- EvtComplex uniti( 0.0, 1.0 ); // imaginary unit
-
- parent->mass(); // B - meson mass, GeV
- double fb = 0.0; // leptonic decay constant of B-meson, GeV
-
- double Cl = 0.0; // LPL and LSL - vertexes
- if ( Fc != 0.0 ) {
- Cl = mLiiLR * mLiiLR / ( sqrt( 2 ) * Fc );
- }
- if ( Cl == 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)"
- << "\n Error in the Cl setting!"
- << "\n Cl = " << Cl << "\n mLiiLR = " << mLiiLR
- << "\n Fc = " << Fc << std::endl;
- ::abort();
- }
-
- EvtComplex MS = unit1 * mS -
- uniti * gammaS /
- 2.0; // complex mass of the scalar sgoldstino
- EvtComplex MP = unit1 * mP -
- uniti * gammaP /
- 2.0; // complex mass of the pseudoscalar sgoldstino
-
- //
- // Setting of the different Bq-mesons tipes
- //
- EvtId idparent = parent->getId(); // Bq-meson Id
- EvtId IdMu1, IdMu2, IdMu3, IdMu4;
-
- double CB = 0.0;
-
- if ( idparent == EvtPDL::getId( std::string( "B_s0" ) ) ) {
- fb = 0.24; // leptonic decay constant
- CB = mD32LL * mD32LL + mD32RR * mD32RR;
- }
-
- if ( idparent == EvtPDL::getId( std::string( "anti-B_s0" ) ) ) {
- fb = 0.24; // leptonic decay constant
- CB = mD23LL * mD23LL + mD23RR * mD23RR;
- }
-
- if ( idparent == EvtPDL::getId( std::string( "B0" ) ) ) {
- fb = 0.20; // leptonic decay constant
- CB = mD31LL * mD31LL + mD31RR * mD31RR;
- }
-
- if ( idparent == EvtPDL::getId( std::string( "anti-B0" ) ) ) {
- fb = 0.20; // leptonic decay constant
- CB = mD13LL * mD13LL + mD13RR * mD13RR;
- }
-
- if ( CB == 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)"
- << "\n Error in the CB setting!"
- << "\n CB = " << CB << "\n mD32LL = " << mD32LL
- << "\n mD32RR = " << mD32RR << "\n mD23LL = " << mD23LL
- << "\n mD23RR = " << mD23RR << "\n mD31LL = " << mD31LL
- << "\n mD31RR = " << mD31RR << "\n mD13LL = " << mD13LL
- << "\n mD13RR = " << mD13RR << "\n idparent = " << idparent
- << std::endl;
- ::abort();
- }
-
- //
- // Setting the leptonic kinematical properties
- //
-
- // to find charges of ell^+ and ell^- in the B-meson daughters
- int charge1 = ( EvtPDL::chg3( parent->getDaug( il1 )->getId() ) ) / 3;
- int charge2 = ( EvtPDL::chg3( parent->getDaug( il2 )->getId() ) ) / 3;
- int charge3 = ( EvtPDL::chg3( parent->getDaug( il3 )->getId() ) ) / 3;
- int charge4 = ( EvtPDL::chg3( parent->getDaug( il4 )->getId() ) ) / 3;
- if ( ( abs( charge1 ) != 1 ) || ( abs( charge2 ) != 1 ) ||
- ( abs( charge3 ) != 1 ) || ( abs( charge4 ) != 1 ) ||
- ( charge1 + charge2 + charge3 + charge4 != 0 ) ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)"
- << "\n Error in the leptonic charge definition!"
- << "\n charge1 =" << charge1
- << "\n charge2 =" << charge2
- << "\n charge3 =" << charge3
- << "\n charge4 =" << charge4
- << "\n number of daughters =" << parent->getNDaug() << std::endl;
- ::abort();
- }
-
- EvtParticle* lep1Plus = nullptr;
- EvtParticle* lep1Minus = nullptr;
- EvtParticle* lep2Plus = nullptr;
- EvtParticle* lep2Minus = nullptr;
-
- EvtVector4R p; // B-meson momentum in the B-rest frame
-
- EvtVector4R q; // first transition 4-momentum in the B-rest frame
- EvtVector4R k; // second transition 4-momentum in the B-rest frame
- double q2; // Mandelstam variable s=q^2
- double k2; // Mandelstam variable t=k^2
-
- EvtVector4R qsecond; // first transition 4-momentum in the B-rest frame
- EvtVector4R ksecond; // second transition 4-momentum in the B-rest frame
- double q2second; // Mandelstam variable s=q^2
- double k2second; // Mandelstam variable t=k^2
-
- EvtVector4R k_1; // 4-momentum of ell^+ in the B-rest frame
- EvtVector4R k_2; // 4-momentum of ell^- in the B-rest frame
- EvtVector4R k_3; // 4-momentum of ell^+ in the B-rest frame
- EvtVector4R k_4; // 4-momentum of ell^- in the B-rest frame
-
- k_1.set( 0.0, 0.0, 0.0, 0.0 );
- k_2.set( 0.0, 0.0, 0.0, 0.0 );
- k_3.set( 0.0, 0.0, 0.0, 0.0 );
- k_4.set( 0.0, 0.0, 0.0, 0.0 );
-
- if ( ( charge1 + charge2 == 0 ) && ( charge3 + charge4 == 0 ) ) {
- // positive charged lepton 1
- lep1Plus = ( charge1 > charge2 ) ? parent->getDaug( il1 )
- : parent->getDaug( il2 );
- // negative charged lepton 1
- lep1Minus = ( charge1 < charge2 ) ? parent->getDaug( il1 )
- : parent->getDaug( il2 );
- if ( charge1 > charge2 ) {
- k_1 = parent->getDaug( il1 )->getP4();
- k_2 = parent->getDaug( il2 )->getP4();
- IdMu1 = parent->getDaug( il1 )->getId();
- IdMu2 = parent->getDaug( il2 )->getId();
- } else {
- k_1 = parent->getDaug( il2 )->getP4();
- k_2 = parent->getDaug( il1 )->getP4();
- IdMu1 = parent->getDaug( il2 )->getId();
- IdMu2 = parent->getDaug( il1 )->getId();
- }
- // positive charged lepton 2
- lep2Plus = ( charge3 > charge4 ) ? parent->getDaug( il3 )
- : parent->getDaug( il4 );
- // negative charged lepton 2
- lep2Minus = ( charge3 < charge4 ) ? parent->getDaug( il3 )
- : parent->getDaug( il4 );
- if ( charge3 > charge4 ) {
- k_3 = parent->getDaug( il3 )->getP4();
- k_4 = parent->getDaug( il4 )->getP4();
- IdMu3 = parent->getDaug( il3 )->getId();
- IdMu4 = parent->getDaug( il4 )->getId();
- } else {
- k_3 = parent->getDaug( il4 )->getP4();
- k_4 = parent->getDaug( il3 )->getP4();
- IdMu3 = parent->getDaug( il4 )->getId();
- IdMu4 = parent->getDaug( il3 )->getId();
- }
- }
- if ( ( charge1 + charge3 == 0 ) && ( charge2 + charge4 == 0 ) ) {
- // positive charged lepton 1
- lep1Plus = ( charge1 > charge3 ) ? parent->getDaug( il1 )
- : parent->getDaug( il3 );
- // negative charged lepton 1
- lep1Minus = ( charge1 < charge3 ) ? parent->getDaug( il1 )
- : parent->getDaug( il3 );
- if ( charge1 > charge3 ) {
- k_1 = parent->getDaug( il1 )->getP4();
- k_2 = parent->getDaug( il3 )->getP4();
- IdMu1 = parent->getDaug( il1 )->getId();
- IdMu2 = parent->getDaug( il3 )->getId();
- } else {
- k_1 = parent->getDaug( il3 )->getP4();
- k_2 = parent->getDaug( il1 )->getP4();
- IdMu1 = parent->getDaug( il3 )->getId();
- IdMu2 = parent->getDaug( il1 )->getId();
- }
- // positive charged lepton 2
- lep2Plus = ( charge2 > charge4 ) ? parent->getDaug( il2 )
- : parent->getDaug( il4 );
- // negative charged lepton 2
- lep2Minus = ( charge2 < charge4 ) ? parent->getDaug( il2 )
- : parent->getDaug( il4 );
- if ( charge2 > charge4 ) {
- k_3 = parent->getDaug( il2 )->getP4();
- k_4 = parent->getDaug( il4 )->getP4();
- IdMu3 = parent->getDaug( il2 )->getId();
- IdMu4 = parent->getDaug( il4 )->getId();
- } else {
- k_3 = parent->getDaug( il4 )->getP4();
- k_4 = parent->getDaug( il2 )->getP4();
- IdMu3 = parent->getDaug( il4 )->getId();
- IdMu4 = parent->getDaug( il2 )->getId();
- }
- }
-
- p = parent->getP4Restframe();
-
- //
- // The calculation of the FIRST part of the amplitude
- //
-
- q = k_1 + k_2;
- k = k_3 + k_4;
- q2 = q.mass2(); // Mandelstam variable s=q^2
- k2 = k.mass2(); // Mandelstam variable t=k^2
-
- //
- // The calculation of the SECOND part of the amplitude
- //
-
- qsecond = k_1 + k_4;
- ksecond = k_3 + k_2;
- q2second = qsecond.mass2(); // Mandelstam variable s=q^2
- k2second = ksecond.mass2(); // Mandelstam variable t=k^2
-
- // B - and barB - mesons descriptors
- static EvtIdSet bmesons{ "anti-B0", "anti-B_s0" };
- static EvtIdSet bbarmesons{ "B0", "B_s0" };
-
- EvtId parentID = parent->getId();
-
- if ( bmesons.contains( parentID ) ) {
- // The amplitude for the decay barB -> ell^+ ell^- ell^+ ell^- or
- // b \bar q -> ell^+ ell^- ell^+ ell^-
-
- int i1, i2, i3, i4; // leptonic spin structures counters
- int leptonicspin[4]; // array for the saving of the leptonic spin configuration
-
- // Tables for correspondings
- // l^+(k_1) && lep1Plus && k_1 && i1
- // l^-(k_2) && lep1Minus && k_2 && i2
- // l^+(k_3) && lep2Plus && k_3 && i3
- // l^-(k_4) && lep2Minus && k_4 && i4
-
- for ( i2 = 0; i2 < 2; i2++ ) {
- leptonicspin[0] = i2;
- for ( i1 = 0; i1 < 2; i1++ ) {
- leptonicspin[1] = i1;
- for ( i4 = 0; i4 < 2; i4++ ) {
- leptonicspin[2] = i4;
- for ( i3 = 0; i3 < 2; i3++ ) {
- leptonicspin[3] = i3;
-
- EvtComplex SL2L1, PL4L3;
- EvtComplex SL2L1second, PL4L3second;
-
- SL2L1 = EvtLeptonSCurrent( lep1Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- PL4L3 = EvtLeptonPCurrent( lep2Minus->spParent( i4 ),
- lep2Plus->spParent( i3 ) );
-
- SL2L1second = EvtLeptonSCurrent(
- lep2Minus->spParent( i2 ), lep1Plus->spParent( i1 ) );
- PL4L3second = EvtLeptonPCurrent(
- lep1Minus->spParent( i4 ), lep2Plus->spParent( i3 ) );
-
- amp.vertex(
- leptonicspin,
- Cl * Cl * CB * fb *
- ( SL2L1 * PL4L3 * ( q2 - k2 ) /
- ( ( q2 - MS * MS ) * ( k2 - MP * MP ) ) -
- SL2L1second * PL4L3second *
- ( q2second - k2second ) /
- ( ( q2second - MS * MS ) *
- ( k2second - MP * MP ) ) ) /
- ( 4.0 * Fc * Fc ) );
- }
- }
- }
- }
-
- // EvtGenReport(EVTGEN_ERROR,"EvtGen") << "\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...) passed with arguments:"
- // << "\n ============================================================================"
- // << "\n Input parameters:"
- // << "\n mS = " << mS
- // << "\n mP = " << mP
- // << "\n gammaS = " << gammaS
- // << "\n gammaP = " << gammaP
- // << "\n mLiiLR = " << mLiiLR
- // << "\n Fc = " << Fc
- // << "\n mD23LL = " << mD23LL
- // << "\n mD23RR = " << mD23RR
- // << "\n mD32LL = " << mD32LL
- // << "\n mD32RR = " << mD32RR
- // << "\n mD13LL = " << mD13LL
- // << "\n mD13RR = " << mD13RR
- // << "\n mD31LL = " << mD31LL
- // << "\n mD31RR = " << mD31RR
- // << "\n ============================================================================"
- // << "\n Kinematics:"
- // << "\n k_1 = " << k_1
- // << "\n m_ell_1 =" << parent->getDaug(il1)->mass()
- // << "\n k_2 = " << k_2
- // << "\n m_ell_2 =" << parent->getDaug(il2)->mass()
- // << "\n k_3 = " << k_3
- // << "\n m_ell_3 =" << parent->getDaug(il3)->mass()
- // << "\n k_4 = " << k_4
- // << "\n m_ell_4 =" << parent->getDaug(il4)->mass()
- // << "\n p = " << p
- // << "\n q = " << q
- // << "\n k = " << k
- // << "\n qsecond = " << qsecond
- // << "\n ksecond = " << ksecond
- // << "\n ============================================================================"
- // << "\n Form-factors"
- // << "\n fb = " << fb
- // << "\n ============================================================================"
- // << "\n Coefficients:"
- // << "\n Cl = " << Cl
- // << "\n CB = " << CB
- // << "\n ============================================================================"
- // << "\n Partical Properties:"
- // << "\n IdB = " << idparent << " == " << EvtPDL::getId(std::string("anti-B_s0"))
- // << "\n IdMu1 = " << IdMu1 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu2 = " << IdMu2 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n IdMu3 = " << IdMu3 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu4 = " << IdMu4 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n\n\n\n"
- // << std::endl;
-
- } else {
- if ( bbarmesons.contains( parentID ) ) {
- // The amplitude for the decay B -> ell^+ ell^- ell^+ ell^- or
- // q bar b -> ell^+ ell^- ell^+ ell^-
-
- int i1, i2, i3, i4; // leptonic spin structures counters
- int leptonicspin[4]; // array for the saving of the leptonic spin configuration
-
- // Tables for correspondings
- // l^+(k_1) && lep1Plus && k_1 && i1
- // l^-(k_2) && lep1Minus && k_2 && i2
- // l^+(k_3) && lep2Plus && k_3 && i3
- // l^-(k_4) && lep2Minus && k_4 && i4
-
- for ( i2 = 1; i2 > -1; i2-- ) {
- leptonicspin[0] = i2;
- for ( i1 = 1; i1 > -1; i1-- ) {
- leptonicspin[1] = i1;
- for ( i4 = 1; i4 > -1; i4-- ) {
- leptonicspin[2] = i4;
- for ( i3 = 1; i3 > -1; i3-- ) {
- leptonicspin[3] = i3;
-
- EvtComplex SL2L1, PL4L3;
- EvtComplex SL2L1second, PL4L3second;
-
- SL2L1 = EvtLeptonSCurrent( lep1Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- PL4L3 = EvtLeptonPCurrent( lep2Minus->spParent( i4 ),
- lep2Plus->spParent( i3 ) );
-
- SL2L1second =
- EvtLeptonSCurrent( lep2Minus->spParent( i2 ),
- lep1Plus->spParent( i1 ) );
- PL4L3second =
- EvtLeptonPCurrent( lep1Minus->spParent( i4 ),
- lep2Plus->spParent( i3 ) );
-
- amp.vertex( leptonicspin,
- Cl * Cl * CB * fb *
- ( SL2L1 * PL4L3 * ( q2 - k2 ) /
- ( ( q2 - MS * MS ) *
- ( k2 - MP * MP ) ) -
- SL2L1second * PL4L3second *
- ( q2second - k2second ) /
- ( ( q2second - MS * MS ) *
- ( k2second - MP * MP ) ) ) /
- ( 4.0 * Fc * Fc ) );
- }
- }
- }
- }
-
- // EvtGenReport(EVTGEN_ERROR,"EvtGen") << "\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...) passed with arguments:"
- // << "\n ============================================================================"
- // << "\n Input parameters:"
- // << "\n mS = " << mS
- // << "\n mP = " << mP
- // << "\n gammaS = " << gammaS
- // << "\n gammaP = " << gammaP
- // << "\n mLiiLR = " << mLiiLR
- // << "\n Fc = " << Fc
- // << "\n mD23LL = " << mD23LL
- // << "\n mD23RR = " << mD23RR
- // << "\n mD32LL = " << mD32LL
- // << "\n mD32RR = " << mD32RR
- // << "\n mD13LL = " << mD13LL
- // << "\n mD13RR = " << mD13RR
- // << "\n mD31LL = " << mD31LL
- // << "\n mD31RR = " << mD31RR
- // << "\n ============================================================================"
- // << "\n Kinematics:"
- // << "\n k_1 = " << k_1
- // << "\n m_ell_1 =" << parent->getDaug(il1)->mass()
- // << "\n k_2 = " << k_2
- // << "\n m_ell_2 =" << parent->getDaug(il2)->mass()
- // << "\n k_3 = " << k_3
- // << "\n m_ell_3 =" << parent->getDaug(il3)->mass()
- // << "\n k_4 = " << k_4
- // << "\n m_ell_4 =" << parent->getDaug(il4)->mass()
- // << "\n p = " << p
- // << "\n q = " << q
- // << "\n k = " << k
- // << "\n qsecond = " << qsecond
- // << "\n ksecond = " << ksecond
- // << "\n ============================================================================"
- // << "\n Form-factors"
- // << "\n fb = " << fb
- // << "\n ============================================================================"
- // << "\n Coefficients:"
- // << "\n Cl = " << Cl
- // << "\n CB = " << CB
- // << "\n ============================================================================"
- // << "\n Partical Properties:"
- // << "\n IdB = " << idparent << " == " << EvtPDL::getId(std::string("anti-B_s0"))
- // << "\n IdMu1 = " << IdMu1 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu2 = " << IdMu2 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n IdMu3 = " << IdMu3 << " == " << EvtPDL::getId(std::string("mu+"))
- // << "\n IdMu4 = " << IdMu4 << " == " << EvtPDL::getId(std::string("mu-"))
- // << "\n\n\n\n"
- // << std::endl;
-
- } else {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)"
- << "\n Wrong Bq-meson number" << std::endl;
- ::abort();
- }
- }
-}
-
-//
-// The decays Bq -> ell^+ ell^- ell^+ ell^- maximum probability calculation
-//
-double EvtbsToLLLLHyperCPAmp::CalcMaxProb(
- EvtId parnum, EvtId l1num, EvtId /*l2num*/, EvtId /*l3num*/,
- EvtId /*l4num*/, double mS, double mP, double gammaS, double gammaP,
- double mLiiLR, double Fc, double mD23LL, double mD23RR, double mD32LL,
- double mD32RR, double mD13LL, double mD13RR, double mD31LL, double mD31RR )
-{
- if ( Fc == 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcMaxProb"
- << "\n Error in the Fc setting!"
- << "\n Fc = " << Fc << "\n mD32LL = " << mD32LL
- << "\n mD32RR = " << mD32RR << "\n mD23LL = " << mD23LL
- << "\n mD23RR = " << mD23RR << "\n mD31LL = " << mD31LL
- << "\n mD31RR = " << mD31RR << "\n mD13LL = " << mD13LL
- << "\n mD13RR = " << mD13RR << "\n parnum = " << parnum
- << std::endl;
- ::abort();
- }
-
- double Cl = 0.0; // LPL and LSL - vertexes
- if ( Fc != 0.0 ) {
- Cl = mLiiLR * mLiiLR / ( sqrt( 2 ) * Fc );
- }
- if ( Cl == 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcMaxProb"
- << "\n Error in the Cl setting!"
- << "\n Cl = " << Cl << "\n mLiiLR = " << mLiiLR
- << "\n Fc = " << Fc << std::endl;
- ::abort();
- }
-
- //
- // Setting of the different Bq-mesons tipes
- //
-
- double fb = 0.0;
- double CB = 0.0;
-
- if ( parnum == EvtPDL::getId( std::string( "B_s0" ) ) ) {
- fb = 0.24; // leptonic decay constant
- CB = mD32LL * mD32LL + mD32RR * mD32RR;
- }
-
- if ( parnum == EvtPDL::getId( std::string( "anti-B_s0" ) ) ) {
- fb = 0.24; // leptonic decay constant
- CB = mD23LL * mD23LL + mD23RR * mD23RR;
- }
-
- if ( parnum == EvtPDL::getId( std::string( "B0" ) ) ) {
- fb = 0.20; // leptonic decay constant
- CB = mD31LL * mD31LL + mD31RR * mD31RR;
- }
-
- if ( parnum == EvtPDL::getId( std::string( "anti-B0" ) ) ) {
- fb = 0.20; // leptonic decay constant
- CB = mD13LL * mD13LL + mD13RR * mD13RR;
- }
-
- if ( CB == 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcMaxProb"
- << "\n Error in the CB setting!"
- << "\n CB = " << CB << "\n mD32LL = " << mD32LL
- << "\n mD32RR = " << mD32RR << "\n mD23LL = " << mD23LL
- << "\n mD23RR = " << mD23RR << "\n mD31LL = " << mD31LL
- << "\n mD31RR = " << mD31RR << "\n mD13LL = " << mD13LL
- << "\n mD13RR = " << mD13RR << "\n parnum = " << parnum
- << std::endl;
- ::abort();
- }
-
- double M1 = EvtPDL::getMeanMass( parnum ); // B - meson mass
- EvtPDL::getMeanMass( l1num ); // leptonic mass
-
- // We find the maximum amplitude probability
- double maxfoundprob = Cl * Cl * CB * fb *
- fabs( mS * mS + mP * mP + M1 * M1 ) * 10000000.0 /
- ( 4.0 * Fc * Fc * mS * gammaS * mP * gammaP );
-
- if ( maxfoundprob <= 0.0 ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << "\n\n In the function EvtbsToLLLLHyperCPAmp::CalcMaxProb"
- << "\n maxfoundprob = " << maxfoundprob << " < 0 or =0!"
- << "\n mS = " << mS << "\n mP = " << mP
- << "\n gammaS = " << gammaS << "\n gammaP = " << gammaP
- << "\n mLiiLR = " << mLiiLR << "\n Fc = " << Fc
- << "\n mD32LL = " << mD32LL << "\n mD32RR = " << mD32RR
- << "\n mD23LL = " << mD23LL << "\n mD23RR = " << mD23RR
- << "\n mD31LL = " << mD31LL << "\n mD31RR = " << mD31RR
- << "\n mD13LL = " << mD13LL << "\n mD13RR = " << mD13RR
- << "\n parnum = " << parnum << std::endl;
- ::abort();
- }
-
- EvtGenReport( EVTGEN_NOTICE, "EvtGen" )
- << "\n maxfoundprob (...) = " << maxfoundprob << std::endl;
-
- maxfoundprob *= 1.01;
-
- return maxfoundprob;
-}
-
-// Triangular function
-double EvtbsToLLLLHyperCPAmp::lambda( double a, double b, double c )
-{
- double l;
-
- l = pow( a, 2.0 ) + pow( b, 2.0 ) + pow( c, 2.0 ) - 2.0 * a * b -
- 2.0 * a * c - 2.0 * b * c;
-
- return l;
-}
diff --git a/test/jsonFiles/BQTOLLLLHYPERCP__Bd_mumumumu.json b/test/jsonFiles/BQTOLLLLHYPERCP__Bd_mumumumu.json
deleted file mode 100644
index 43fa99e..0000000
--- a/test/jsonFiles/BQTOLLLLHYPERCP__Bd_mumumumu.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "parent" : "anti-B0",
- "daughters" : ["mu+", "mu-", "mu+", "mu-"],
- "models" : ["BQTOLLLLHYPERCP"],
- "parameters" : [["2.5", "0.214", "0.01", "0.01", "1.0", "1.0", "450.0", "0.0", "450.0", "0.0", "380.0", "0.0", "380.0", "0.0"]],
- "extras" : ["Define dm_incohMix_B0 0", "noPhotos"],
- "events" : 10000,
- "histograms" : [
- {"variable" : "prob", "title" : "Prob", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 100.0},
- {"variable" : "mass", "title" : "m(mu1+mu1-)", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.1, "xmax" : 5.0},
- {"variable" : "mass", "title" : "m(mu1+mu2+)", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : 0.0, "xmax" : 5.0},
- {"variable" : "mass", "title" : "m(mu1- mu2+)", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : 0.0, "xmax" : 5.0},
- {"variable" : "mass", "title" : "m(mu2+ mu2-)", "d1" : 3, "d2" : 4, "nbins" : 100, "xmin" : 0.0, "xmax" : 5.0},
- {"variable" : "pSumSq", "title" : "qSq(mu1+mu1-)", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.0, "xmax" : 25.0},
- {"variable" : "pSumSq", "title" : "qSq(mu2+mu2-)", "d1" : 3, "d2" : 4, "nbins" : 100, "xmin" : 0.0, "xmax" : 25.0},
- {"variable" : "p", "title" : "p(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "p", "title" : "p(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "p", "title" : "p(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "p", "title" : "p(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "cosHel", "title" : "cosHel(mu1+,mu1-)", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosHel", "title" : "cosHel(mu2+,mu2-)", "d1" : 3, "d2" : 4, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosHel", "title" : "cosHel(mu1-,mu2+)", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosHel", "title" : "cosHel(mu1+,mu2+)", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "phi", "title" : "phi(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180},
- {"variable" : "phi", "title" : "phi(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180},
- {"variable" : "phi", "title" : "phi(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180},
- {"variable" : "phi", "title" : "phi(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180}
- ],
- "outfile" : "BQTOLLLLHYPERCP__Bd_mumumumu.root",
- "reference" : "RefBQTOLLLLHYPERCP__Bd_mumumumu.root"
-}
diff --git a/test/jsonFiles/BQTOLLLL__Bs_mumumumu.json b/test/jsonFiles/BQTOLLLL__Bs_mumumumu.json
deleted file mode 100644
index 66ad2af..0000000
--- a/test/jsonFiles/BQTOLLLL__Bs_mumumumu.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "parent" : "anti-B_s0",
- "daughters" : ["mu+", "mu-", "mu+", "mu-"],
- "models" : ["BQTOLLLL"],
- "parameters" : [["5.0", "5", "0", "1", "0.88", "0.227", "0.22", "0.34"]],
- "do_conjugate_decay" : [true],
- "extras" : ["Define dm_incohMix_B_s0 0", "noPhotos"],
- "events" : 10000,
- "histograms" : [
- {"variable" : "prob", "title" : "Prob", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 10.0},
- {"variable" : "mass", "title" : "m(mu1+mu1-)", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.1, "xmax" : 5.0},
- {"variable" : "mass", "title" : "m(mu1+mu2+)", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : 0.0, "xmax" : 5.0},
- {"variable" : "mass", "title" : "m(mu1- mu2+)", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : 0.0, "xmax" : 5.0},
- {"variable" : "mass", "title" : "m(mu2+ mu2-)", "d1" : 3, "d2" : 4, "nbins" : 100, "xmin" : 0.0, "xmax" : 5.0},
- {"variable" : "pSumSq", "title" : "qSq(mu1+mu1-)", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.0, "xmax" : 25.0},
- {"variable" : "pSumSq", "title" : "qSq(mu2+mu2-)", "d1" : 3, "d2" : 4, "nbins" : 100, "xmin" : 0.0, "xmax" : 25.0},
- {"variable" : "p", "title" : "p(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "p", "title" : "p(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "p", "title" : "p(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "p", "title" : "p(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 3.0},
- {"variable" : "pz", "title" : "pz(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : -3.0, "xmax" : 3.0},
- {"variable" : "cosHel", "title" : "cosHel(mu1+,mu1-)", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosHel", "title" : "cosHel(mu2+,mu2-)", "d1" : 3, "d2" : 4, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosHel", "title" : "cosHel(mu1-,mu2+)", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosHel", "title" : "cosHel(mu1+,mu2+)", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "cosTheta", "title" : "cosTheta(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "phi", "title" : "phi(mu1+)", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180},
- {"variable" : "phi", "title" : "phi(mu1-)", "d1" : 2, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180},
- {"variable" : "phi", "title" : "phi(mu2+)", "d1" : 3, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180},
- {"variable" : "phi", "title" : "phi(mu2-)", "d1" : 4, "d2" : 0, "nbins" : 100, "xmin" : -180.0, "xmax" : 180}
- ],
- "outfile" : "BQTOLLLL__Bs_mumumumu.root",
- "reference" : "RefBQTOLLLL__Bs_mumumumu.root"
-}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Dec 21, 6:35 PM (39 m, 57 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4023831
Default Alt Text
(111 KB)

Event Timeline