diff --git a/EvtGenModels/EvtLb2Lll.hh b/EvtGenModels/EvtLb2Lll.hh
deleted file mode 100644
index dd0a42f..0000000
--- a/EvtGenModels/EvtLb2Lll.hh
+++ /dev/null
@@ -1,63 +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 . *
-***********************************************************************/
-
-#ifndef EVTLB2LLL_HH
-#define EVTLB2LLL_HH
-
-#include "EvtGenBase/EvtDecayAmp.hh"
-#include "EvtGenBase/EvtDiracSpinor.hh"
-#include "EvtGenBase/EvtTensor4C.hh"
-
-#include "EvtGenModels/EvtWilsonCoefficients.hh"
-
-// Desription: Routine to implement Lambda_b0 -> Lambda_0 l+ l- decays accroding to
-// several models: Chen. Geng.
-// Aliev. Ozpineci. Savci.
-
-class EvtLb2Lll : public EvtDecayAmp {
- public:
- std::string getName() override;
- EvtDecayBase* clone() override;
-
- void decay( EvtParticle* p ) override;
- void init() override;
- void initProbMax() override;
- void calcAmp( EvtAmp* amp, EvtParticle* parent );
-
- EvtTensor4C EvtLeptonTG5Current( const EvtDiracSpinor& d,
- const EvtDiracSpinor& dp );
-
- private:
- double m_polarizationLambdab0;
- double m_maxProbability;
- double m_poleSize;
- long m_noTries;
- double m_omega;
-
- std::string m_decayName;
- std::string m_polarizationIntroduction;
- std::string m_HEPmodel;
- std::string m_FFtype;
- std::string m_effectContribution;
-
- EvtWilsonCoefficients m_WC;
-};
-
-#endif
diff --git a/src/EvtGenModels/EvtLb2Lll.cpp b/src/EvtGenModels/EvtLb2Lll.cpp
deleted file mode 100644
index 860a16d..0000000
--- a/src/EvtGenModels/EvtLb2Lll.cpp
+++ /dev/null
@@ -1,909 +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 . *
-***********************************************************************/
-
-#include "EvtGenModels/EvtLb2Lll.hh"
-
-#include "EvtGenBase/EvtComplex.hh"
-#include "EvtGenBase/EvtDiracParticle.hh"
-#include "EvtGenBase/EvtDiracSpinor.hh"
-#include "EvtGenBase/EvtGammaMatrix.hh"
-#include "EvtGenBase/EvtPDL.hh"
-#include "EvtGenBase/EvtParticle.hh"
-#include "EvtGenBase/EvtTensor4C.hh"
-#include "EvtGenBase/EvtVector4C.hh"
-#include "EvtGenBase/EvtVector4R.hh"
-
-#include
-#include
-
-EvtDecayBase* EvtLb2Lll::clone()
-{
- return new EvtLb2Lll;
-}
-
-std::string EvtLb2Lll::getName()
-{
- return "Lb2Lll";
-}
-
-void EvtLb2Lll::init()
-{
- if ( getNArg() > 8 ) { // Decay parameters
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll generator expected max. 8 arguments but found: "
- << getNArg() << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 1. Lambda_b0 polarization - zero is default" << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 2. Model type - \"SM\" for Standard Model is default"
- << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 3. Form-Factors - \"HQET\" is used by default" << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 4. How to set polarization - \"ModifiedSpinors\" is default"
- << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 5. Include long distance (LD) effects - \"SD\" (no) is default"
- << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 6. NonFactorizable contribution (omega) to b->sg decay at q2=0 "
- << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 7. Note on every x-th decay" << std::endl;
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " 8. Maximum probability - automatic by default" << std::endl;
- ::abort();
- }
-
- if ( getNDaug() != 3 ) { // Check that there are 3 daughters only
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll generator expected 3 daughters but found: "
- << getNDaug() << std::endl;
- ::abort();
- }
-
- EvtId LbID = EvtPDL::getId( std::string( "Lambda_b0" ) );
- EvtId aLbID = EvtPDL::getId( std::string( "anti-Lambda_b0" ) );
- EvtId eID = EvtPDL::getId( std::string( "e-" ) );
- EvtId aeID = EvtPDL::getId( std::string( "e+" ) );
- EvtId muID = EvtPDL::getId( std::string( "mu-" ) );
- EvtId amuID = EvtPDL::getId( std::string( "mu+" ) );
- EvtId tauID = EvtPDL::getId( std::string( "tau-" ) );
- EvtId atauID = EvtPDL::getId( std::string( "tau+" ) );
-
- // TODO: better check based on spin and falvour is needed to allow usage of aliases !
- if ( getParentId() == LbID ) { // Check daughters of Lambda_b0
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found Lambda_b0" << std::endl;
- //if(EvtPDL::name(getDaug(0))!="Lambda0"){
- // EvtGenReport(EVTGEN_ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected Lambda0 daughter but found: " << EvtPDL::name(getDaug(0)) << std::endl;
- // ::abort();
- //}
- if ( getDaug( 1 ) == eID && getDaug( 2 ) == aeID ) {
- m_decayName = "Lambda_b0 -> Lambda0 e- e+";
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found decay: Lambda_b0 -> Lambda0 e- e+"
- << std::endl;
- } else if ( getDaug( 1 ) == muID && getDaug( 2 ) == amuID ) {
- m_decayName = "Lambda_b0 -> Lambda0 mu- mu+";
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found decay: Lambda_b0 -> Lambda0 mu- mu+"
- << std::endl;
- } else if ( getDaug( 1 ) == tauID && getDaug( 2 ) == atauID ) {
- m_decayName = "Lambda_b0 -> Lambda0 tau- tau+";
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found decay: Lambda_b0 -> Lambda0 tau- tau+"
- << std::endl;
- } else {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll generator expected lepton pair daughters but found: "
- << EvtPDL::name( getDaug( 1 ) ) << " "
- << EvtPDL::name( getDaug( 2 ) ) << std::endl;
- ::abort();
- }
- //TODO: The model is known not to work correctly for anti-Lambda_b0 (A_FB does not change its sign)
- } else if ( getParentId() == aLbID ) { // Check daughters of anti-Lambda_b0
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found anti-Lambda_b0" << std::endl;
- //if(EvtPDL::name(getDaug(0))!="anti-Lambda0"){
- // EvtGenReport(EVTGEN_ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected anti-Lambda0 daughter but found: " << EvtPDL::name(getDaug(0)) << std::endl;
- // ::abort();
- //}
- if ( getDaug( 1 ) == aeID && getDaug( 2 ) == eID ) {
- m_decayName = "anti-Lambda_b0 -> anti-Lambda0 e+ e-";
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found decay: anti-Lambda_b0 -> anti-Lambda0 e+ e-"
- << std::endl;
- } else if ( getDaug( 1 ) == amuID && getDaug( 2 ) == muID ) {
- m_decayName = "anti-Lambda_b0 -> anti-Lambda0 mu+ mu-";
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found decay: anti-Lambda_b0 -> anti-Lambda0 mu+ mu-"
- << std::endl;
- } else if ( getDaug( 1 ) == atauID && getDaug( 2 ) == tauID ) {
- m_decayName = "anti-Lambda_b0 -> anti-Lambda0 tau+ tau-";
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll generator found decay: anti-Lambda_b0 -> anti-Lambda0 tau+ tau-"
- << std::endl;
- } else {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll generator expected lepton pair daughters but found: "
- << EvtPDL::name( getDaug( 1 ) ) << " "
- << EvtPDL::name( getDaug( 2 ) ) << std::endl;
- ::abort();
- }
- } else { // This model is not intended for decay of anything else than (anti-)Lambda_b0
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll generator expected (anti-)Lambda_b0 parent but found: "
- << EvtPDL::name( getParentId() ) << std::endl;
- ::abort();
- }
-
- // Read and check all parameters
- if ( getNArg() > 0 ) {
- if ( getArg( 0 ) > 1. || getArg( 0 ) < -1. ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll expects polarization to be in interval <-1,1>, not "
- << getArg( 0 ) << std::endl;
- ::abort();
- }
- m_polarizationLambdab0 = getArg( 0 );
- } else {
- m_polarizationLambdab0 = 0;
- }
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll set Lambda_b0 polarization to " << m_polarizationLambdab0
- << std::endl;
-
- if ( getNArg() > 1 ) {
- if ( getArgStr( 1 ).substr( 1, getArgStr( 1 ).size() - 2 ) != "SM" &&
- getArgStr( 1 ).substr( 1, getArgStr( 1 ).size() - 2 ) != "-C7_SM" &&
- getArgStr( 1 ).substr( 1, getArgStr( 1 ).size() - 2 ) !=
- "SUSY-ChenGeng" ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll doesn't know this physics model: "
- << getArgStr( 1 ) << std::endl;
- ::abort();
- }
- m_HEPmodel = getArgStr( 1 ).substr( 1, getArgStr( 1 ).size() - 2 );
- } else {
- m_HEPmodel = "SM";
- }
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll will use this physics model: " << m_HEPmodel << std::endl;
-
- if ( getNArg() > 2 ) {
- if ( getArgStr( 2 ).substr( 1, getArgStr( 2 ).size() - 2 ) != "HQET" &&
- getArgStr( 2 ).substr( 1, getArgStr( 2 ).size() - 2 ) != "HQET-noF2" &&
- getArgStr( 2 ).substr( 1, 11 ) != "HQET-delta=" ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll doesn't know this Form-Factors model: "
- << getArgStr( 2 ) << std::endl;
- ::abort();
- }
- m_FFtype = getArgStr( 2 ).substr( 1, getArgStr( 2 ).size() - 2 );
- } else {
- m_FFtype = "HQET";
- }
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll will use this Form-Factors model: " << m_FFtype
- << std::endl;
-
- if ( getNArg() > 3 ) {
- if ( getArgStr( 3 ).substr( 1, getArgStr( 3 ).size() - 2 ) !=
- "Unpolarized" ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll doesn't know kind of introducing polarization: "
- << getArgStr( 3 ) << std::endl;
- ::abort();
- }
- m_polarizationIntroduction =
- getArgStr( 3 ).substr( 1, getArgStr( 3 ).size() - 2 );
- } else {
- m_polarizationIntroduction = "Unpolarized";
- }
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll will use this kind of introducing polarization: "
- << m_polarizationIntroduction << std::endl;
-
- if ( getNArg() > 4 ) {
- if ( getArgStr( 4 ).substr( 1, getArgStr( 4 ).size() - 2 ) != "SD" &&
- getArgStr( 4 ).substr( 1, getArgStr( 4 ).size() - 2 ) != "LD" ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll didn't find SD or LD parameter: "
- << getArgStr( 4 ) << std::endl;
- ::abort();
- }
- m_effectContribution = getArgStr( 5 ).substr( 1, getArgStr( 4 ).size() -
- 2 );
- } else {
- m_effectContribution = "SD";
- }
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll will include contribution from these effects: "
- << m_effectContribution << std::endl;
-
- if ( getNArg() > 5 ) {
- if ( fabs( getArg( 5 ) ) > 0.15 ) {
- EvtGenReport( EVTGEN_WARNING, "EvtGen" )
- << " WARNING: EvtLb2Lll found very high contribution to b->sg decay at q2=0: "
- << getArg( 5 ) << std::endl;
- }
- m_omega = getArg( 5 );
- } else {
- m_omega = 0;
- }
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll will use this contribution to b->sg decay at q2=0: "
- << m_omega << std::endl;
-
- if ( getNArg() > 6 )
- m_noTries = (long)( getArg( 6 ) );
- else
- m_noTries = 0;
-
- if ( getNArg() > 7 ) {
- if ( getArg( 7 ) < 0. ) {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll expects positive maximum probability not : "
- << getArg( 7 ) << std::endl;
- ::abort();
- }
- m_maxProbability = getArg( 7 );
- } else {
- m_maxProbability = 0.;
- }
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll maximum probability was set to " << m_maxProbability
- << std::endl;
- m_poleSize = 0;
-
- // Initialize Wilson coefficients by Buras and Munz
- // TODO: should have common W.C. source for all decays in EvtGen
- m_WC.CalculateAllCoefficients();
-}
-
-void EvtLb2Lll::initProbMax()
-{
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll is finding maximum probability ... " << std::endl;
-
- if ( m_maxProbability < 1e-10 ) {
- EvtDiracParticle* parent = new EvtDiracParticle;
- parent->noLifeTime();
- parent->init( getParentId(),
- EvtVector4R( EvtPDL::getMass( getParentId() ), 0, 0, 0 ) );
- parent->setDiagonalSpinDensity();
-
- EvtAmp amp;
- EvtId daughters[3] = { getDaug( 0 ), getDaug( 1 ), getDaug( 2 ) };
- amp.init( getParentId(), 3, daughters );
- parent->makeDaughters( 3, daughters );
- EvtParticle* lambda = parent->getDaug( 0 );
- EvtParticle* lep1 = parent->getDaug( 1 );
- EvtParticle* lep2 = parent->getDaug( 2 );
- lambda->noLifeTime();
- lep1->noLifeTime();
- lep2->noLifeTime();
-
- EvtSpinDensity rho;
- rho.setDiag( parent->getSpinStates() );
-
- double M0 = EvtPDL::getMass( getParentId() );
- double mL = EvtPDL::getMass( getDaug( 0 ) );
- double m1 = EvtPDL::getMass( getDaug( 1 ) );
- double m2 = EvtPDL::getMass( getDaug( 2 ) );
-
- double q2, pstar, elambda, theta;
- double q2min = ( m1 + m2 ) * ( m1 + m2 );
- double q2max = ( M0 - mL ) * ( M0 - mL );
-
- EvtVector4R p4lambda, p4lep1, p4lep2, boost;
-
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll is probing whole phase space ..." << std::endl;
-
- int i, j;
- double prob = 0;
- for ( i = 0; i <= 100; i++ ) {
- q2 = q2min + i * ( q2max - q2min ) / 100.;
- elambda = ( M0 * M0 + mL * mL - q2 ) / 2 / M0;
- if ( i == 0 )
- pstar = 0;
- else
- pstar = sqrt( q2 - ( m1 + m2 ) * ( m1 + m2 ) ) *
- sqrt( q2 - ( m1 - m2 ) * ( m1 - m2 ) ) / 2 / sqrt( q2 );
- boost.set( M0 - elambda, 0, 0, +sqrt( elambda * elambda - mL * mL ) );
- if ( i != 100 ) {
- p4lambda.set( elambda, 0, 0,
- -sqrt( elambda * elambda - mL * mL ) );
- } else {
- p4lambda.set( mL, 0, 0, 0 );
- }
- for ( j = 0; j <= 45; j++ ) {
- theta = j * EvtConst::pi / 45;
- p4lep1.set( sqrt( pstar * pstar + m1 * m1 ), 0,
- +pstar * sin( theta ), +pstar * cos( theta ) );
- p4lep2.set( sqrt( pstar * pstar + m2 * m2 ), 0,
- -pstar * sin( theta ), -pstar * cos( theta ) );
- if ( i != 100 ) // At maximal q2 we are already in correct frame as Lambda and W/Zvirtual are at rest
- {
- p4lep1 = boostTo( p4lep1, boost );
- p4lep2 = boostTo( p4lep2, boost );
- }
- calcAmp( &, parent );
- prob = rho.normalizedProb( amp.getSpinDensity() );
- //std::cout << "q2: " << q2 << " \t theta: " << theta << " \t prob: " << prob << std::endl;
- //std::cout << "p1: " << p4lep1 << " p2: " << p4lep2 << " q2-q2min: " << q2-(m1+m2)*(m1+m2) << std::endl;
- if ( prob > m_maxProbability ) {
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " - probability " << prob << " found at q2 = " << q2
- << " (" << 100 * ( q2 - q2min ) / ( q2max - q2min )
- << " %) and theta = " << theta * 180 / EvtConst::pi
- << std::endl;
- m_maxProbability = prob;
- }
- }
- //::abort();
- }
-
- //m_poleSize = 0.04*q2min;
- m_maxProbability *= 1.2;
- delete parent;
- }
-
- if ( m_maxProbability < 1e-10 ) {
- EvtGenReport( EVTGEN_INFO, "EvtLb2Lll" )
- << "EvtLb2Lll found zero max prob, setting to 1.5e6" << std::endl;
- m_maxProbability = 1.5e6;
- }
-
- setProbMax( m_maxProbability );
- EvtGenReport( EVTGEN_INFO, "EvtGen" )
- << " EvtLb2Lll set up maximum probability to " << m_maxProbability
- << std::endl;
-}
-
-void EvtLb2Lll::decay( EvtParticle* parent )
-{
- //setWeight(parent->initializePhaseSpace(getNDaug(),getDaugs(),m_poleSize,1,2));
- parent->initializePhaseSpace( getNDaug(), getDaugs() );
- calcAmp( &_amp2, parent );
-}
-
-void EvtLb2Lll::calcAmp( EvtAmp* amp, EvtParticle* parent )
-{
- static long noTries = 0;
- static double delta = 0;
-
- EvtComplex Matrix[2][2][2][2];
-
- EvtComplex i1( 0, 1 );
-
- int i, j, spins[4];
- char ch;
-
- double r, M_L, M_Lb, M_s, M_c, M_b, q2, alpha, M_W, M_t;
- double M_psi[2] = { 0, 0 }, Gamma_psi[2] = { 0, 0 }, k_psi[2] = { 0, 0 };
- double F0_1, F0_2, a_F1, a_F2, b_F1, b_F2, F1, F2;
- double f_1, f_2, f_3, g_1, g_2, g_3, f_1T, f_2T, f_3T, g_1T, g_2T, g_3T,
- f_TV, f_TS, g_TV( 0.0 ), g_TS, f_T, g_T;
- EvtComplex A1, A2, A3, B1, B2, B3, D1, D2, D3, E1, E2, E3, N1, N2, H1, H2;
- EvtComplex C_SL, C_BR, C_LLtot, C_LRtot, C_LL, C_LR, C_RL, C_RR, C_LRLR,
- C_RLLR, C_LRRL, C_RLRL, C_T, C_TE;
- EvtComplex Yld, C_7eff, C_9eff;
- EvtComplex V_ts, V_tb;
-
- EvtVector4C lbar_Gmu_l[2][2], lbar_GmuG5_l[2][2], hbar_GmuPlusG5_h[2][2],
- hbar_GmuMinusG5_h[2][2], hbar_Gmu_h[2][2];
- EvtComplex lbar_l[2][2], lbar_G5_l[2][2], hbar_1PlusG5_h[2][2],
- hbar_1MinusG5_h[2][2], hbar_G5_h[2][2], hbar_h[2][2];
- EvtTensor4C lbar_Smunu_l[2][2], lbar_ESmunu_l[2][2],
- hbar_SmunuPlusG5_h[2][2], hbar_SmunuMinusG5_h[2][2], hbar_Smunu_h[2][2];
- EvtVector4R q_mu, P_mu;
-
- EvtDiracSpinor parent__spParent[2];
-
- M_Lb = parent->mass();
- M_L = parent->getDaug( 0 )->mass();
- M_s = 0.13;
- M_c = 1.35;
- M_b = 4.8;
- alpha = 1. / 137.036;
- M_W = 80.425;
- M_t = 174.3;
- M_psi[0] = 3.096916;
- M_psi[1] = 3.686093;
- if ( m_decayName == "Lambda_b0 -> Lambda0 e- e+" ||
- m_decayName == "anti-Lambda_b0 -> anti-Lambda0 e+ e-" ) {
- Gamma_psi[0] = 5.40;
- Gamma_psi[1] = 2.12;
- }
- if ( m_decayName == "Lambda_b0 -> Lambda0 mu- mu+" ||
- m_decayName == "anti-Lambda_b0 -> anti-Lambda0 mu+ mu-" ) {
- Gamma_psi[0] = 5.35;
- Gamma_psi[1] = 2.05;
- }
- if ( m_decayName == "Lambda_b0 -> Lambda0 tau- tau+" ||
- m_decayName == "anti-Lambda_b0 -> anti-Lambda0 tau+ tau-" ) {
- Gamma_psi[0] = 0.00;
- Gamma_psi[1] = 0.79;
- }
- if ( m_effectContribution == "LD" ) {
- k_psi[0] = 1.65;
- k_psi[1] = 1.65;
- }
- //G_F = 1.16637e-5;
- //V_tb = sqrt(1-pow(0.0413,2))*sqrt(1-pow(0.0037,2));
- //V_ts = -sqrt(1-pow(0.2243,2))*0.0413-0.2243*sqrt(1-pow(0.0413,2))*0.0037*(cos(60*EvtConst::pi/180)+i1*sin(60*EvtConst::pi/180));
-
- P_mu = parent->getP4Restframe() + parent->getDaug( 0 )->getP4();
- q_mu = parent->getP4Restframe() - parent->getDaug( 0 )->getP4();
- q2 = q_mu.mass2();
-
- if ( m_noTries > 0 )
- if ( !( ( ++noTries ) % m_noTries ) )
- EvtGenReport( EVTGEN_DEBUG, "EvtGen" )
- << " EvtLb2Lll already finished " << noTries
- << " matrix element calculations" << std::endl;
-
- if ( m_FFtype == "HQET" ) {
- r = M_L * M_L / M_Lb / M_Lb;
- F0_1 = +0.462;
- F0_2 = -0.077;
- a_F1 = -0.0182;
- a_F2 = -0.0685;
- b_F1 = -0.000176;
- b_F2 = +0.001460;
- F1 = F0_1 / ( 1.0 - ( q2 / M_Lb / M_Lb ) *
- ( a_F1 - b_F1 * ( q2 / M_Lb / M_Lb ) ) );
- F2 = F0_2 / ( 1.0 - ( q2 / M_Lb / M_Lb ) *
- ( a_F2 - b_F2 * ( q2 / M_Lb / M_Lb ) ) );
- g_1 = f_1 = f_2T = g_2T = F1 + sqrt( r ) * F2;
- //std::cout << " F1: " << F1 << " F2: " << F2 << " r: " << r << " M_L: " << M_L << " M_Lb: " << M_Lb << std::endl;
- //std::cout << " sqrt(q2): " << sqrt(q2) << " q2: " << q2 << " M_Lb^2" << M_Lb*M_Lb << std::endl;
- g_2 = f_2 = g_3 = f_3 = g_TV = f_TV = F2 / M_Lb;
- g_TS = f_TS = 0;
- g_1T = f_1T = F2 / M_Lb * q2;
- g_3T = +F2 / M_Lb * ( M_Lb + M_L );
- f_3T = -F2 / M_Lb * ( M_Lb - M_L );
- f_T = f_2T - f_TS * q2;
- g_T = g_2T - g_TS * q2;
- } else if ( strstr( m_FFtype.c_str(), "HQET-delta=" ) == m_FFtype.c_str() ) {
- //EvtGenReport(EVTGEN_WARNING,"EvtGen") << " WARNING: HQET-delta FF model should be checked for correctness" << std::endl;
- if ( delta == 0 )
- sscanf( m_FFtype.c_str(), "%c%c%c%c%c%c%c%c%c%c%c%lf", &ch, &ch,
- &ch, &ch, &ch, &ch, &ch, &ch, &ch, &ch, &ch, &delta );
- r = M_L * M_L / M_Lb / M_Lb;
- F0_1 = +0.462;
- F0_2 = -0.077;
- a_F1 = -0.0182;
- a_F2 = -0.0685;
- b_F1 = -0.000176;
- b_F2 = +0.001460;
- F1 = F0_1 / ( 1.0 - ( q2 / M_Lb / M_Lb ) *
- ( a_F1 - b_F1 * ( q2 / M_Lb / M_Lb ) ) );
- F2 = F0_2 / ( 1.0 - ( q2 / M_Lb / M_Lb ) *
- ( a_F2 - b_F2 * ( q2 / M_Lb / M_Lb ) ) );
- g_1 = f_1 = f_2T = g_2T = F1 + sqrt( r ) * F2;
- g_1 += delta * g_1;
- f_1 -= delta * f_1;
- g_2 = f_2 = g_3 = f_3 = g_TV = f_TV = F2 / M_Lb;
- g_TS = f_TS = 0;
- g_1T = f_1T = F2 / M_Lb * q2;
- g_3T = +F2 / M_Lb * ( M_Lb + M_L );
- f_3T = -F2 / M_Lb * ( M_Lb - M_L );
- f_T = f_2T - f_TS * q2;
- g_T = g_2T - g_TS * q2;
- } else if ( m_FFtype == "HQET-noF2" ) {
- //EvtGenReport(EVTGEN_WARNING,"EvtGen") << " WARNING: HQET-noF2 FF model should be checked for correctness" << std::endl;
- r = M_L * M_L / M_Lb / M_Lb;
- F0_1 = +0.462;
- a_F1 = -0.0182;
- b_F1 = -0.000176;
- F1 = F0_1 / ( 1.0 - ( q2 / M_Lb / M_Lb ) *
- ( a_F1 - b_F1 * ( q2 / M_Lb / M_Lb ) ) );
- g_1 = f_1 = f_2T = g_2T = F1;
- g_2 = f_2 = g_3 = f_3 = g_TV = f_TV = 0;
- g_TS = f_TS = 0;
- g_1T = f_1T = 0;
- g_3T = 0;
- f_3T = 0;
- f_T = f_2T - f_TS * q2;
- g_T = g_2T - g_TS * q2;
- } else { // general relations for Form-Factors
- f_1 = f_2 = f_3 = g_1 = g_2 = g_3 = f_3T = g_3T = f_TS = g_TS = f_T =
- g_T = f_TV = 0;
- f_2T = f_T + f_TS * q2;
- f_1T = ( f_TV + f_TS * ( M_L + M_Lb ) ) * q2;
- f_1T = -q2 / ( M_Lb - M_L ) * f_3T;
- g_2T = g_T + g_TS * q2;
- g_1T = ( g_TV - g_TS * ( M_L - M_Lb ) ) * q2;
- g_1T = +q2 / ( M_Lb + M_L ) * g_3T;
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll - unknown Form-Factors model: " << m_FFtype
- << " - this should never happen !" << std::endl;
- ::abort();
- }
-
- if ( m_HEPmodel == "SM" ) {
- C_LL = C_LR = C_RL = C_RR = C_LRLR = C_RLLR = C_LRRL = C_RLRL = C_T =
- C_TE = EvtComplex( 0, 0 );
- Yld = m_WC.Yld( q2, k_psi, Gamma_psi, M_psi, 2, m_WC.GetC1(),
- m_WC.GetC2(), m_WC.GetC3(), m_WC.GetC4(), m_WC.GetC5(),
- m_WC.GetC6(), 1. / alpha );
- C_7eff = m_WC.GetC7eff0() +
- m_WC.C7b2sg( m_WC.GetStrongCouplingConst(), m_WC.GetEta(),
- m_WC.GetC2(), M_t, M_W ) +
- m_omega *
- ( m_WC.hzs( M_c / M_b, q2 / M_b / M_b, M_b, M_b ) + Yld );
- C_9eff = Yld +
- m_WC.C9efftilda( M_c / M_b, q2 / M_b / M_b,
- m_WC.GetStrongCouplingConst(), m_WC.GetC1(),
- m_WC.GetC2(), m_WC.GetC3(), m_WC.GetC4(),
- m_WC.GetC5(), m_WC.GetC6(), m_WC.GetC9tilda(),
- m_WC.GetRenormSchemePar() );
- C_SL = -2 * M_s * C_7eff;
- C_BR = -2 * M_b * C_7eff;
- C_LLtot = C_9eff - m_WC.GetC10tilda() + C_LL;
- C_LRtot = C_9eff + m_WC.GetC10tilda() + C_LR;
- //std::cout << "Yld: " << Yld << " C7eff: " << C_7eff << " C_9eff: " << C_9eff << " Diff7: " << C_7eff-m_WC.GetC7eff0() << " Diff9: " << C_9eff-m_WC.GetC9tilda() << std::endl;
- } else if ( m_HEPmodel == "-C7_SM" ) {
- C_LL = C_LR = C_RL = C_RR = C_LRLR = C_RLLR = C_LRRL = C_RLRL = C_T =
- C_TE = EvtComplex( 0, 0 );
- Yld = m_WC.Yld( q2, k_psi, Gamma_psi, M_psi, 2, m_WC.GetC1(),
- m_WC.GetC2(), m_WC.GetC3(), m_WC.GetC4(), m_WC.GetC5(),
- m_WC.GetC6(), 1. / alpha );
- C_7eff = m_WC.GetC7eff0() +
- m_WC.C7b2sg( m_WC.GetStrongCouplingConst(), m_WC.GetEta(),
- m_WC.GetC2(), M_t, M_W ) +
- m_omega *
- ( m_WC.hzs( M_c / M_b, q2 / M_b / M_b, M_b, M_b ) + Yld );
- C_9eff = Yld +
- m_WC.C9efftilda( M_c / M_b, q2 / M_b / M_b,
- m_WC.GetStrongCouplingConst(), m_WC.GetC1(),
- m_WC.GetC2(), m_WC.GetC3(), m_WC.GetC4(),
- m_WC.GetC5(), m_WC.GetC6(), m_WC.GetC9tilda(),
- m_WC.GetRenormSchemePar() );
- C_SL = +2 * M_s * C_7eff;
- C_BR = +2 * M_b * C_7eff;
- C_LLtot = C_9eff - m_WC.GetC10tilda() + C_LL;
- C_LRtot = C_9eff + m_WC.GetC10tilda() + C_LR;
- //std::cout << "Yld: " << Yld << " C7eff: " << C_7eff << " C_9eff: " << C_9eff << " Diff7: " << C_7eff-m_WC.GetC7eff0() << " Diff9: " << C_9eff-m_WC.GetC9tilda() << std::endl;
- } else if ( m_HEPmodel == "SUSY-ChenGeng" ) {
- //EvtGenReport(EVTGEN_WARNING,"EvtGen") << " WARNING: SUSY-ChenGeng model should be checked for correctness" << std::endl;
- C_LL = C_LR = C_RL = C_RR = C_LRLR = C_RLLR = C_LRRL = C_RLRL = C_T =
- C_TE = EvtComplex( 0, 0 );
- EvtComplex d_u23LL = 0.1;
- EvtComplex d_u33RL = 0.65;
- EvtComplex d_d23LR = 0.03 * exp( i1 * EvtConst::pi * 2 / 5 );
- EvtComplex d_u23LR = -0.8 * exp( i1 * EvtConst::pi / 4 );
- EvtComplex C_7susy = -1.75 * d_u23LL - 0.25 * d_u23LR - 10.3 * d_d23LR;
- EvtComplex C_9susy = 0.82 * d_u23LR;
- EvtComplex C_10susy = -9.37 * d_u23LR + 1.4 * d_u23LR * d_u33RL +
- 2.7 * d_u23LL;
- Yld = m_WC.Yld( q2, k_psi, Gamma_psi, M_psi, 2, m_WC.GetC1(),
- m_WC.GetC2(), m_WC.GetC3(), m_WC.GetC4(), m_WC.GetC5(),
- m_WC.GetC6(), 1. / alpha );
- C_7eff = m_WC.GetC7eff0() + C_7susy * pow( m_WC.GetEta(), 16. / 23. ) +
- m_WC.C7b2sg( m_WC.GetStrongCouplingConst(), m_WC.GetEta(),
- m_WC.GetC2(), M_t, M_W ) +
- m_omega *
- ( m_WC.hzs( M_c / M_b, q2 / M_b / M_b, M_b, M_b ) + Yld );
- C_9eff = Yld + m_WC.C9efftilda( M_c / M_b, q2 / M_b / M_b,
- m_WC.GetStrongCouplingConst(),
- m_WC.GetC1(), m_WC.GetC2(), m_WC.GetC3(),
- m_WC.GetC4(), m_WC.GetC5(), m_WC.GetC6(),
- m_WC.GetC9tilda() + C_9susy,
- m_WC.GetRenormSchemePar() );
- C_SL = -2 * M_s * C_7eff;
- C_BR = -2 * M_b * C_7eff;
- C_LLtot = C_9eff - m_WC.GetC10tilda() - C_10susy + C_LL;
- C_LRtot = C_9eff + m_WC.GetC10tilda() + C_10susy + C_LR;
- //std::cout << "Yld: " << Yld << " C7eff: " << C_7eff << " C_9eff: " << C_9eff << " Diff7: " << C_7eff-m_WC.GetC7eff0() << " Diff9: " << C_9eff-m_WC.GetC9tilda() << std::endl;
- } else {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll - unknown physics model: " << m_HEPmodel
- << " - this should never happen !" << std::endl;
- ::abort();
- }
-
- A1 = ( f_1T - g_1T ) * C_SL / q2 + ( f_1T + g_1T ) * C_BR / q2 +
- 0.5 * ( f_1 - g_1 ) * ( C_LLtot + C_LRtot ) +
- 0.5 * ( f_1 + g_1 ) * ( C_RL + C_RR );
- //std::cout << "f_1T: " << f_1T << " g_1T: " << g_1T << " C_SL: " << C_SL << " C_BR: " << C_BR << " f_1: " << f_1 << " g_1: " << g_1 << " C_LLtot: " << C_LLtot << " C_LRtot: " << C_LRtot << " C_RL: " << C_RL << " C_RR: " << C_RR << std::endl;
- A2 = ( f_2T - g_2T ) * C_SL / q2 + ( f_2T + g_2T ) * C_BR / q2 +
- 0.5 * ( f_2 - g_2 ) * ( C_LLtot + C_LRtot ) +
- 0.5 * ( f_2 + g_2 ) * ( C_RL + C_RR );
- A3 = ( f_3T - g_3T ) * C_SL / q2 + ( f_3T + g_3T ) * C_BR / q2 +
- 0.5 * ( f_3 - g_3 ) * ( C_LLtot + C_LRtot ) +
- 0.5 * ( f_3 + g_3 ) * ( C_RL + C_RR );
-
- B1 = ( f_1T + g_1T ) * C_SL / q2 + ( f_1T - g_1T ) * C_BR / q2 +
- 0.5 * ( f_1 + g_1 ) * ( C_LLtot + C_LRtot ) +
- 0.5 * ( f_1 - g_1 ) * ( C_RL + C_RR );
- B2 = ( f_2T + g_2T ) * C_SL / q2 + ( f_2T - g_2T ) * C_BR / q2 +
- 0.5 * ( f_2 + g_2 ) * ( C_LLtot + C_LRtot ) +
- 0.5 * ( f_2 - g_2 ) * ( C_RL + C_RR );
- B3 = ( f_3T + g_3T ) * C_SL / q2 + ( f_3T - g_3T ) * C_BR / q2 +
- 0.5 * ( f_3 + g_3 ) * ( C_LLtot + C_LRtot ) +
- 0.5 * ( f_3 - g_3 ) * ( C_RL + C_RR );
-
- D1 = 0.5 * ( C_RR - C_RL ) * ( f_1 + g_1 ) +
- 0.5 * ( C_LRtot - C_LLtot ) * ( f_1 - g_1 );
- D2 = 0.5 * ( C_RR - C_RL ) * ( f_2 + g_2 ) +
- 0.5 * ( C_LRtot - C_LLtot ) * ( f_2 - g_2 );
- D3 = 0.5 * ( C_RR - C_RL ) * ( f_3 + g_3 ) +
- 0.5 * ( C_LRtot - C_LLtot ) * ( f_3 - g_3 );
-
- E1 = 0.5 * ( C_RR - C_RL ) * ( f_1 - g_1 ) +
- 0.5 * ( C_LRtot - C_LLtot ) * ( f_1 + g_1 );
- E2 = 0.5 * ( C_RR - C_RL ) * ( f_2 - g_2 ) +
- 0.5 * ( C_LRtot - C_LLtot ) * ( f_2 + g_2 );
- E3 = 0.5 * ( C_RR - C_RL ) * ( f_3 - g_3 ) +
- 0.5 * ( C_LRtot - C_LLtot ) * ( f_3 + g_3 );
-
- N1 = ( f_1 * ( M_Lb - M_L ) + f_3 * q2 ) / M_b *
- ( C_LRLR + C_RLLR + C_LRRL + C_RLRL ); // Should be mLb - mL
- N2 = ( f_1 * ( M_Lb - M_L ) + f_3 * q2 ) / M_b *
- ( C_LRLR + C_RLLR - C_LRRL - C_RLRL );
-
- H1 = ( g_1 * ( M_Lb + M_L ) - g_3 * q2 ) / M_b *
- ( C_LRLR - C_RLLR + C_LRRL - C_RLRL );
- H2 = ( g_1 * ( M_Lb + M_L ) - g_3 * q2 ) / M_b *
- ( C_LRLR - C_RLLR - C_LRRL + C_RLRL );
-
- for ( i = 0; i < 4; i++ ) {
- lbar_Gmu_l[i / 2][i % 2] =
- EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( i / 2 ),
- parent->getDaug( 2 )->spParent( i % 2 ) );
- lbar_GmuG5_l[i / 2][i % 2] =
- EvtLeptonACurrent( parent->getDaug( 1 )->spParent( i / 2 ),
- parent->getDaug( 2 )->spParent( i % 2 ) );
- lbar_l[i / 2][i % 2] =
- EvtLeptonSCurrent( parent->getDaug( 1 )->spParent( i / 2 ),
- parent->getDaug( 2 )->spParent( i % 2 ) );
- lbar_G5_l[i / 2][i % 2] =
- EvtLeptonPCurrent( parent->getDaug( 1 )->spParent( i / 2 ),
- parent->getDaug( 2 )->spParent( i % 2 ) );
- lbar_Smunu_l[i / 2][i % 2] =
- EvtLeptonTCurrent( parent->getDaug( 1 )->spParent( i / 2 ),
- parent->getDaug( 2 )->spParent( i % 2 ) );
- lbar_ESmunu_l[i / 2][i % 2] = dual(
- EvtLeptonTCurrent( parent->getDaug( 1 )->spParent( i / 2 ),
- parent->getDaug( 2 )->spParent( i % 2 ) ) );
- }
-
- // TODO: polarization not yet introduced
- if ( m_polarizationIntroduction == "SpinDensityMatrix" ) {
- //parent->setSpinDensityForward();
- parent__spParent[0] = parent->sp( 0 );
- parent__spParent[1] = parent->sp( 1 );
- } else if ( m_polarizationIntroduction == "ModifiedSpinors" ) {
- parent__spParent[0] = parent->sp( 0 );
- parent__spParent[1] = parent->sp( 1 );
- } else if ( m_polarizationIntroduction == "Unpolarized" ) {
- parent__spParent[0] = parent->sp( 0 );
- parent__spParent[1] = parent->sp( 1 );
- } else {
- EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " ERROR: EvtLb2Lll - unknown polarization: "
- << m_polarizationIntroduction << " - this should never happen !"
- << std::endl;
- ::abort();
- }
-
- for ( i = 0; i < 4; i++ ) {
- hbar_GmuPlusG5_h[i / 2][i % 2] =
- EvtLeptonVCurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] ) +
- EvtLeptonACurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] );
- hbar_GmuMinusG5_h[i / 2][i % 2] = EvtLeptonVACurrent(
- parent->getDaug( 0 )->spParent( i / 2 ), parent__spParent[i % 2] );
- hbar_SmunuPlusG5_h[i / 2][i % 2] =
- EvtLeptonTCurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] ) +
- EvtLeptonTG5Current( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] );
- hbar_SmunuMinusG5_h[i / 2][i % 2] =
- EvtLeptonTCurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] ) -
- EvtLeptonTG5Current( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] );
- hbar_1PlusG5_h[i / 2][i % 2] =
- EvtLeptonSCurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] ) +
- EvtLeptonPCurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] );
- hbar_1MinusG5_h[i / 2][i % 2] =
- EvtLeptonSCurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] ) -
- EvtLeptonPCurrent( parent->getDaug( 0 )->spParent( i / 2 ),
- parent__spParent[i % 2] );
- hbar_G5_h[i / 2][i % 2] = EvtLeptonPCurrent(
- parent->getDaug( 0 )->spParent( i / 2 ), parent__spParent[i % 2] );
- hbar_h[i / 2][i % 2] = EvtLeptonSCurrent(
- parent->getDaug( 0 )->spParent( i / 2 ), parent__spParent[i % 2] );
- hbar_Smunu_h[i / 2][i % 2] = EvtLeptonTCurrent(
- parent->getDaug( 0 )->spParent( i / 2 ), parent__spParent[i % 2] );
- hbar_Gmu_h[i / 2][i % 2] = EvtLeptonVCurrent(
- parent->getDaug( 0 )->spParent( i / 2 ), parent__spParent[i % 2] );
- }
-
- for ( i = 0; i < 4; i++ )
- for ( j = 0; j < 4; j++ ) {
- //std::cout << "--------------------------------------------------" << std::endl;
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_Gmu_l[i / 2][i % 2] *
- ( A1 * hbar_GmuPlusG5_h[j / 2][j % 2] +
- B1 * hbar_GmuMinusG5_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- //std::cout << "A1: " << A1 << " B1: " << B1 << " lbar_Gmu_l: " << lbar_Gmu_l[i/2][i%2] <<
- // " hbar_GmuPlusG5_h: " << hbar_GmuPlusG5_h[j/2][j%2] << " hbar_GmuMinusG5_h: " << hbar_GmuMinusG5_h[j/2][j%2] <<
- // " sp1: " << parent->getDaug(1)->spParent(i/2) << " sp2: " << parent->getDaug(1)->spParent(i%2) << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_Gmu_l[i / 2][i % 2] *
- ( i1 * A2 * ( hbar_SmunuPlusG5_h[j / 2][j % 2].cont2( q_mu ) ) +
- B2 * ( hbar_SmunuMinusG5_h[j / 2][j % 2].cont2( q_mu ) ) );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_Gmu_l[i / 2][i % 2] *
- ( ( A3 * hbar_1PlusG5_h[j / 2][j % 2] +
- B3 * hbar_1MinusG5_h[j / 2][j % 2] ) *
- q_mu );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_GmuG5_l[i / 2][i % 2] *
- ( D1 * hbar_GmuPlusG5_h[j / 2][j % 2] +
- E1 * hbar_GmuMinusG5_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_GmuG5_l[i / 2][i % 2] *
- ( i1 * D2 * ( hbar_SmunuPlusG5_h[j / 2][j % 2].cont2( q_mu ) ) +
- E2 * ( hbar_SmunuMinusG5_h[j / 2][j % 2].cont2( q_mu ) ) );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_GmuG5_l[i / 2][i % 2] *
- ( ( D3 * hbar_1PlusG5_h[j / 2][j % 2] +
- E3 * hbar_1MinusG5_h[j / 2][j % 2] ) *
- q_mu );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_l[i / 2][i % 2] *
- ( N1 * hbar_h[j / 2][j % 2] + H1 * hbar_G5_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- lbar_G5_l[i / 2][i % 2] *
- ( N2 * hbar_h[j / 2][j % 2] + H2 * hbar_G5_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- cont( lbar_Smunu_l[i / 2][i % 2],
- 4 * C_T * f_T * hbar_Smunu_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] += cont(
- lbar_Smunu_l[i / 2][i % 2],
- -4 * C_T * f_TV * i1 *
- ( EvtGenFunctions::directProd( q_mu, hbar_Gmu_h[j / 2][j % 2] ) -
- EvtGenFunctions::directProd( hbar_Gmu_h[j / 2][j % 2],
- q_mu ) ) );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- cont( lbar_Smunu_l[i / 2][i % 2],
- -4 * C_T * f_TS * i1 *
- ( EvtGenFunctions::directProd( P_mu, q_mu ) -
- EvtGenFunctions::directProd( q_mu, P_mu ) ) *
- hbar_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- cont( lbar_ESmunu_l[i / 2][i % 2],
- 4 * C_TE * f_T * i1 * hbar_Smunu_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] += cont(
- lbar_ESmunu_l[i / 2][i % 2],
- 4 * C_TE * f_TV *
- ( EvtGenFunctions::directProd( q_mu, hbar_Gmu_h[j / 2][j % 2] ) -
- EvtGenFunctions::directProd( hbar_Gmu_h[j / 2][j % 2],
- q_mu ) ) );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- Matrix[j / 2][j % 2][i / 2][i % 2] +=
- cont( lbar_ESmunu_l[i / 2][i % 2],
- 4 * C_TE * f_TS *
- ( EvtGenFunctions::directProd( P_mu, q_mu ) -
- EvtGenFunctions::directProd( q_mu, P_mu ) ) *
- hbar_h[j / 2][j % 2] );
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- //Matrix[j/2][j%2][i/2][i%2] *= G_F*alpha/4/sqrt(2)/EvtConst::pi*V_tb*conj(V_ts);
- //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl;
- //std::cout << "--------------------------------------------------" << std::endl;
- spins[0] = j % 2;
- spins[1] = j / 2;
- spins[2] = i / 2;
- spins[3] = i % 2;
- amp->vertex( spins, Matrix[j / 2][j % 2][i / 2][i % 2] );
- }
-
- //std::cout << "==================================================" << std::endl;
- //std::cout << "Lambda_b0: " << parent->getP4Restframe() << std::endl;
- //std::cout << "Lambda0: " << parent->getDaug(0)->getP4() << std::endl;
- //std::cout << "mu-: " << parent->getDaug(1)->getP4() << std::endl;
- //std::cout << "mu+: " << parent->getDaug(2)->getP4() << std::endl;
- //std::cout << "P_mu: " << P_mu << std::endl;
- //std::cout << "q_mu: " << q_mu << std::endl;
- //std::cout << "q2: " << q2 << std::endl;
- //std::cout << "==================================================" << std::endl;
-
- return;
-}
-
-EvtTensor4C EvtLb2Lll::EvtLeptonTG5Current( const EvtDiracSpinor& d,
- const EvtDiracSpinor& dp )
-{
- //
-
- EvtTensor4C temp;
- temp.zero();
- EvtComplex i2( 0, 0.5 );
-
- static EvtGammaMatrix mat01 = EvtGammaMatrix::g0() *
- ( EvtGammaMatrix::g0() * EvtGammaMatrix::g1() -
- EvtGammaMatrix::g1() * EvtGammaMatrix::g0() ) *
- EvtGammaMatrix::g5();
- static EvtGammaMatrix mat02 = EvtGammaMatrix::g0() *
- ( EvtGammaMatrix::g0() * EvtGammaMatrix::g2() -
- EvtGammaMatrix::g2() * EvtGammaMatrix::g0() ) *
- EvtGammaMatrix::g5();
- static EvtGammaMatrix mat03 = EvtGammaMatrix::g0() *
- ( EvtGammaMatrix::g0() * EvtGammaMatrix::g3() -
- EvtGammaMatrix::g3() * EvtGammaMatrix::g0() ) *
- EvtGammaMatrix::g5();
- static EvtGammaMatrix mat12 = EvtGammaMatrix::g0() *
- ( EvtGammaMatrix::g1() * EvtGammaMatrix::g2() -
- EvtGammaMatrix::g2() * EvtGammaMatrix::g1() ) *
- EvtGammaMatrix::g5();
- static EvtGammaMatrix mat13 = EvtGammaMatrix::g0() *
- ( EvtGammaMatrix::g1() * EvtGammaMatrix::g3() -
- EvtGammaMatrix::g3() * EvtGammaMatrix::g1() ) *
- EvtGammaMatrix::g5();
- static EvtGammaMatrix mat23 = EvtGammaMatrix::g0() *
- ( EvtGammaMatrix::g2() * EvtGammaMatrix::g3() -
- EvtGammaMatrix::g3() * EvtGammaMatrix::g2() ) *
- EvtGammaMatrix::g5();
-
- temp.set( 0, 1, i2 * ( d * ( mat01 * dp ) ) );
- temp.set( 1, 0, -temp.get( 0, 1 ) );
-
- temp.set( 0, 2, i2 * ( d * ( mat02 * dp ) ) );
- temp.set( 2, 0, -temp.get( 0, 2 ) );
-
- temp.set( 0, 3, i2 * ( d * ( mat03 * dp ) ) );
- temp.set( 3, 0, -temp.get( 0, 3 ) );
-
- temp.set( 1, 2, i2 * ( d * ( mat12 * dp ) ) );
- temp.set( 2, 1, -temp.get( 1, 2 ) );
-
- temp.set( 1, 3, i2 * ( d * ( mat13 * dp ) ) );
- temp.set( 3, 1, -temp.get( 1, 3 ) );
-
- temp.set( 2, 3, i2 * ( d * ( mat23 * dp ) ) );
- temp.set( 3, 2, -temp.get( 2, 3 ) );
-
- return temp;
-}
diff --git a/src/EvtGenModels/EvtModelReg.cpp b/src/EvtGenModels/EvtModelReg.cpp
index 1eeacc3..733f8ee 100644
--- a/src/EvtGenModels/EvtModelReg.cpp
+++ b/src/EvtGenModels/EvtModelReg.cpp
@@ -1,347 +1,345 @@
/***********************************************************************
* 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 . *
***********************************************************************/
#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/EvtKstarstargamma.hh"
#include "EvtGenModels/EvtLNuGamma.hh"
#include "EvtGenModels/EvtLambdaB2LambdaV.hh"
#include "EvtGenModels/EvtLambdaP_BarGamma.hh"
#include "EvtGenModels/EvtLambdacPHH.hh"
#include "EvtGenModels/EvtLb2Baryonlnu.hh"
-#include "EvtGenModels/EvtLb2Lll.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
#include
#include
#include
#include
#include
using std::cout;
using std::endl;
using std::fstream;
EvtModelReg::EvtModelReg( const std::list* extraModels )
{
EvtModel& modelist = EvtModel::instance();
if ( extraModels ) {
for ( std::list::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 EvtLb2Lll );
modelist.registerModel( new EvtRareLbToLll );
modelist.registerModel( new EvtHypNonLepton );
modelist.registerModel( new EvtSVVHelCPMix );
modelist.registerModel( new EvtSVPHelCPMix );
modelist.registerModel( new EvtLNuGamma );
modelist.registerModel( new EvtKstarstargamma );
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 EvtLambdaB2LambdaV );
modelist.registerModel( new EvtLambda2PPiForLambdaB2LambdaV );
modelist.registerModel( new EvtV2VpVmForLambdaB2LambdaV );
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/test/jsonFiles/Lb2Lll=HELAMP__Lambdab0_Lambda0mumu_ppi.json b/test/jsonFiles/Lb2Lll=HELAMP__Lambdab0_Lambda0mumu_ppi.json
deleted file mode 100644
index 433eb43..0000000
--- a/test/jsonFiles/Lb2Lll=HELAMP__Lambdab0_Lambda0mumu_ppi.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "parent" : "Lambda_b0",
- "daughters" : ["Lambda0", "mu-", "mu+"],
- "grand_daughters" : [["p+","pi-"], [], []],
- "models" : ["Lb2Lll", "HELAMP", ""],
- "parameters" : [[], ["0.936", "0.0", "0.351", "0.0"]],
- "extras" : ["noPhotos"],
- "events" : 10000,
- "histograms" : [
- {"variable" : "prob", "title" : "Prob(Lb2Lll)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 1.0},
- {"variable" : "prob_daug1", "title" : "Prob(HELAMP)", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 0.0, "xmax" : 1.0},
- {"variable" : "parMass", "title" : "m(#Lambda^{0}_{b})", "d1" : 0, "d2" : 0, "nbins" : 100, "xmin" : 5.0, "xmax" : 6.0},
- {"variable" : "mass", "title" : "m(#Lambda^{0})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : 1.0, "xmax" : 1.2},
- {"variable" : "mass", "title" : "m(#Lambda^{0} #mu^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.0, "xmax" : 6.0},
- {"variable" : "mass", "title" : "m(#Lambda^{0} #mu^{+})", "d1" : 1, "d2" : 3, "nbins" : 100, "xmin" : 0.0, "xmax" : 6.0},
- {"variable" : "pSumSq", "title" : "q^{2}(#mu^{-} #mu^{+})", "d1" : 2, "d2" : 3, "nbins" : 100, "xmin" : 0.0, "xmax" : 21.0},
- {"variable" : "cosHel", "title" : "cosHel(p,#Lambda^{0})", "d1" : 1, "d2" : 0, "nbins" : 100, "xmin" : -1.0, "xmax" : 1.0},
- {"variable" : "decayangle_daug1", "title" : "decayAngle(#Lambda^{0},p,#pi^{-})", "d1" : 1, "d2" : 2, "nbins" : 100, "xmin" : 0.0, "xmax" : 180.0}
- ],
- "outfile" : "Lb2Lll=HELAMP__Lambdab0_Lambda0mumu_ppi.root",
- "reference" : "RefLb2Lll=HELAMP__Lambdab0_Lambda0mumu_ppi.root"
-}