Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F8310471
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
111 KB
Subscribers
None
View Options
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
Details
Attached
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)
Attached To
rEVTGEN evtgen
Event Timeline
Log In to Comment