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 <https://www.gnu.org/licenses/>.     *
-***********************************************************************/
-
-#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 <https://www.gnu.org/licenses/>.     *
-***********************************************************************/
-
-#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 <stdio.h>
-#include <string.h>
-
-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( &amp, 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 )
-{
-    // <u|sigma^munu*gamma^5|v>
-
-    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 <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/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 <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 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"
-}