LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenModels - EvtBaryonPCRFF.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 100 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 6 0.0 %

          Line data    Source code
       1             : //--------------------------------------------------------------------------
       2             : //
       3             : // Environment:
       4             : //      This software is part of the EvtGen package developed jointly
       5             : //      for the BaBar and CLEO collaborations.  If you use all or part
       6             : //      of it, please give an appropriate acknowledgement.
       7             : //
       8             : // Copyright Information:
       9             : //      Copyright (C) 1998      Caltech, UCSB
      10             : //
      11             : // Module: EvtBaryonVminusAFF.cc
      12             : //
      13             : // Description: Routine to implement semileptonic form factors
      14             : //              according to the model BaryonVminusA
      15             : //
      16             : // Modification history:
      17             : //
      18             : //    R.J. Tesarek     May 28, 2004     Module created
      19             : //    Karen Gibson     1/20/2006        Module updated for 1/2+->1/2+,
      20             : //                                      1/2+->1/2-, 1/2+->3/2- Lambda decays
      21             : //
      22             : //--------------------------------------------------------------------------
      23             : #include "EvtGenBase/EvtPatches.hh"
      24             : #include "EvtGenBase/EvtReport.hh"
      25             : #include "EvtGenModels/EvtBaryonPCRFF.hh"
      26             : #include "EvtGenBase/EvtPDL.hh"
      27             : #include "EvtGenBase/EvtId.hh"
      28             : #include "EvtGenBase/EvtIdSet.hh"
      29             : #include "EvtGenBase/EvtConst.hh"
      30             : #include <string>
      31             : #include <math.h>
      32             : #include <stdlib.h>
      33             : using std::endl;
      34             : 
      35             : void EvtBaryonPCRFF::getdiracff(EvtId parent, EvtId daught,
      36             :                                 double q2, double /* mass */ , 
      37             :                                 double *f1, double *f2, double *f3, 
      38             :                                 double *g1, double *g2, double *g3 ) {
      39             : 
      40             :   // Baryons (partial list 5/28/04)
      41           0 :   static EvtId LAMCP=EvtPDL::getId("Lambda_c+");
      42           0 :   static EvtId LAMCM=EvtPDL::getId("anti-Lambda_c-");
      43           0 :   static EvtId LAMC1P=EvtPDL::getId("Lambda_c(2593)+");
      44           0 :   static EvtId LAMC1M=EvtPDL::getId("anti-Lambda_c(2593)-");
      45           0 :   static EvtId LAMB=EvtPDL::getId("Lambda_b0");
      46           0 :   static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0");
      47             : 
      48             :   double F1, F2, F3, G1, G2, G3;
      49             : 
      50           0 :   if( parent==LAMB || parent==LAMBB ) {
      51             :     // Implement constituent quark model form factors predicted 
      52             :     // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005)
      53             : 
      54           0 :     if( daught==LAMCP|| daught==LAMCM ) {
      55             :       
      56             :       //  Parameters needed in the calculation;
      57             :       double mQ = 5.28; 
      58             :       double mq = 1.89;
      59             :       double md = 0.40;
      60           0 :       double MLamB = EvtPDL::getMass(parent);
      61           0 :       double MLamC = EvtPDL::getMass(daught);
      62             :       
      63             :       double aL  = 0.59;
      64             :       double aLp = 0.55;
      65             :       
      66             :       double aL2  = aL*aL;
      67             :       double aLp2 = aLp*aLp;
      68             :       double aLLp2 = 0.5*(aL2+aLp2);
      69             :       
      70             :       // relativistic correction factor
      71             :       double k2 = 1.0;
      72           0 :       double rho2 = 3.*md*md/(2.*k2*aLLp2);  
      73             :       
      74             :       // w = scalar product of the 4 velocities of the Lb and Lc.
      75           0 :       double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC;
      76             : 
      77           0 :       double I = pow(aL*aLp/aLLp2, 1.5)*exp(-rho2*(w*w-1.));
      78             : 
      79             :       // Calculate the form factors
      80           0 :       F1 = I*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) );
      81           0 :       F2 = -I*( (md/mq)*(aLp2/aLLp2) - aL2*aLp2/(4.*aLLp2*mq*mQ) );
      82           0 :       F3 = -I*md*aL2/(mQ*aLLp2);
      83             : 
      84           0 :       G1 = I*( 1.0 - (aL2*aLp2)/(12.*aLLp2*mq*mQ) );
      85           0 :       G2 = -I*( md*aLp2/(mq*aLLp2) 
      86           0 :                 + (aL2*aLp2)/(12.*aLLp2*mq*mQ)*(1.+12.*md*md/aLLp2) );
      87           0 :       G3 = I*( md*aL2/(mQ*aLLp2) + md*md*aL2*aLp2/(mq*mQ*aLLp2*aLLp2) );
      88             :        
      89             :       // Set form factors to be passed to the amplitude calc.
      90           0 :       *f1 = F1;
      91           0 :       *f2 = F2;
      92           0 :       *f3 = F3;
      93           0 :       *g1 = G1;
      94           0 :       *g2 = G2;
      95           0 :       *g3 = G3;
      96             : 
      97           0 :     }
      98             : 
      99           0 :     else if( daught==LAMC1P || daught==LAMC1M ) {
     100             : 
     101             :       double mQ = 5.28; 
     102             :       double mq = 1.89;
     103             :       double md = 0.40;
     104           0 :       double MLamB = EvtPDL::getMass(parent);
     105           0 :       double MLamC = EvtPDL::getMass(daught);
     106             :       
     107             :       double aL  = 0.59;
     108             :       double aLp = 0.47;
     109             :       
     110             :       double aL2  = aL*aL;
     111             :       double aLp2 = aLp*aLp;
     112             :       double aLLp2 = 0.5*(aL2+aLp2);
     113             :       
     114             :       // relativistic correction factor
     115             :       double k2 = 1.0;
     116           0 :       double rho2 = 3.*md*md/(2.*k2*aLLp2);  
     117             : 
     118             :       // w = scalar product of the 4 velocities of the Lb and Lc.
     119           0 :       double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC;
     120             :       
     121           0 :       double I = pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.));
     122             : 
     123             :       // Calculate the form factors
     124           0 :       F1 = I*aL/6.0*( 3.0/mq - 1.0/mQ );
     125           0 :       F2 = -I*( 2.0*md/aL - aL/(2.0*mq) + 2.*md*md*aL/(mQ*aLLp2) 
     126           0 :                 - (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2));
     127           0 :       F3 = I*2.*md*md*aL/(mQ*aLLp2);
     128             : 
     129           0 :       G1 = I*( 2.0*md/aL - aL/(6.*mQ) 
     130           0 :                + (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2));
     131           0 :       G2 = I*( -2.*md/aL + aL/(2.*mq) + aL/(3.*mQ) );
     132           0 :       G3 = I*aL/(3.*mQ)*( 1.0 - (md/(2.*mq*aLLp2))*( 3.*aL2 - 2.*aLp2));
     133             :        
     134             :       // Set form factors to be passed to the amplitude calc.
     135           0 :       *f1 = F1;
     136           0 :       *f2 = F2;
     137           0 :       *f3 = F3;
     138           0 :       *g1 = G1;
     139           0 :       *g2 = G2;
     140           0 :       *g3 = G3;
     141           0 :     }
     142             :   }
     143             : 
     144             :   else {
     145           0 :     *f1 = 1.0;
     146           0 :     *f2 = 1.0;
     147           0 :     *f3 = 0.0;
     148           0 :     *g1 = 1.0;
     149           0 :     *g2 = 1.0;
     150           0 :     *g3 = 0.0;
     151             :   }
     152             : 
     153             :   return ;
     154           0 : }
     155             : 
     156             : 
     157             : void EvtBaryonPCRFF::getraritaff( EvtId parent, EvtId daught,
     158             :                                   double q2, double /* mass */, 
     159             :                                   double *f1, double *f2, double *f3, double *f4, 
     160             :                                   double *g1, double *g2, double *g3, double *g4 ) {
     161             : 
     162             :   // Baryons (partial list 5/28/04)
     163           0 :   static EvtId LAMB=EvtPDL::getId("Lambda_b0");
     164           0 :   static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0");
     165           0 :   static EvtId LAMC2P=EvtPDL::getId("Lambda_c(2625)+");
     166           0 :   static EvtId LAMC2M=EvtPDL::getId("anti-Lambda_c(2625)-");
     167             : 
     168             :   double F1, F2, F3, F4, G1, G2, G3, G4;
     169             : 
     170           0 :   if( parent==LAMB || parent==LAMBB ) {
     171             :     // Implement constituent quark model form factors predicted 
     172             :     // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005)
     173             : 
     174           0 :     if( daught==LAMC2P|| daught==LAMC2M ) {
     175             :       
     176             :       double mQ = 5.28; 
     177             :       double mq = 1.89;
     178             :       double md = 0.40;
     179           0 :       double MLamB = EvtPDL::getMass(parent);
     180           0 :       double MLamC = EvtPDL::getMass(daught);
     181             :       
     182             :       double aL  = 0.59;
     183             :       double aLp = 0.47;
     184             :       
     185             :       double aL2  = aL*aL;
     186             :       double aLp2 = aLp*aLp;
     187             :       double aLLp2 = 0.5*(aL2+aLp2);
     188             :       
     189             :       // relativistic correction factor
     190             :       double k2 = 1.0;
     191           0 :       double rho2 = 3.*md*md/(2.*k2*aLLp2);  
     192             : 
     193             :       // w = scalar product of the 4 velocities of the Lb and Lc.
     194           0 :       double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC;
     195             :       
     196           0 :       double I = -(1./sqrt(3.))*pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.));
     197             :     
     198             :       // Calculate the form factors
     199           0 :       F1 = I*3.0*md/aL*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) );
     200           0 :       F2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL2)) - 5.*aL*aLp2*md/(4.*aLLp2*mq*mQ) );
     201           0 :       F3 = -I*( 3.*md*md*aL/(mQ*aLLp2) + aL/(2.*mQ) );
     202           0 :       F4 = I*aL/mQ;
     203             : 
     204           0 :       G1 = I*( 3.0*md/aL - (aL/(2.*mQ))*(1. + 3.*md*aLp2/(2.*aLLp2*mq) ) );
     205           0 :       G2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL)) + aL*aLp2*md/(4.*aLLp2*aLLp2*mq*mQ)*(aLLp2+12.*md*md) );
     206           0 :       G3 = I*aL/(mQ*aLLp2)*( aLLp2/2. + 3.*md*md + aLp2*md/(mq*aLLp2)*(aLLp2+6.*md*md) );
     207           0 :       G4 = -I*( aL/mQ + md/(mq*mQ)*aLp2*aL/aLLp2 );
     208             :        
     209             :       // Set form factors to be passed to the amplitude calc.
     210           0 :       *f1 = F1;
     211           0 :       *f2 = F2;
     212           0 :       *f3 = F3;
     213           0 :       *f4 = F4;
     214           0 :       *g1 = G1;
     215           0 :       *g2 = G2;
     216           0 :       *g3 = G3;
     217           0 :       *g4 = G4;
     218           0 :     }
     219             :   }
     220             :   
     221             :   else {
     222           0 :     *f1 = 1.0;
     223           0 :     *f2 = 1.0;
     224           0 :     *f3 = 0.0;
     225           0 :     *f4 = 0.0;
     226           0 :     *g1 = 1.0;
     227           0 :     *g2 = 1.0;
     228           0 :     *g3 = 0.0;
     229           0 :     *g4 = 0.0;
     230             : 
     231             :   }
     232             : 
     233             :   return ;
     234             : 
     235             : 
     236           0 : }
     237             : 
     238             : void EvtBaryonPCRFF::getscalarff(EvtId, EvtId, double, double, double*, double*) {
     239             : 
     240           0 :   report(Severity::Error,"EvtGen") << "Not implemented :getscalarff in EvtBaryonPCRFF.\n";  
     241           0 :   ::abort();
     242             : 
     243             : }
     244             : 
     245             : void EvtBaryonPCRFF::getvectorff(EvtId, EvtId, double, double, double*, double*,
     246             :                                  double*, double*) {
     247             : 
     248           0 :   report(Severity::Error,"EvtGen") << "Not implemented :getvectorff in EvtBaryonPCRFF.\n";  
     249           0 :   ::abort();
     250             : 
     251             : }
     252             : 
     253             : void EvtBaryonPCRFF::gettensorff(EvtId, EvtId, double, double, double*, double*,
     254             :                                  double*, double*) {
     255             : 
     256           0 :   report(Severity::Error,"EvtGen") << "Not implemented :gettensorff in EvtBaryonPCRFF.\n";  
     257           0 :   ::abort();
     258             : 
     259             : }
     260             : 
     261             : void EvtBaryonPCRFF::getbaryonff(EvtId, EvtId, double, double, double*, 
     262             :                                  double*, double*, double*){
     263             :   
     264           0 :   report(Severity::Error,"EvtGen") << "Not implemented :getbaryonff in EvtBaryonPCRFF.\n";  
     265           0 :   ::abort();
     266             : 
     267             : }

Generated by: LCOV version 1.11