/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenModels/EvtSLPoleFF.cc

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 //
00003 // Environment:
00004 //      This software is part of the EvtGen package developed jointly
00005 //      for the BaBar and CLEO collaborations.  If you use all or part
00006 //      of it, please give an appropriate acknowledgement.
00007 //
00008 // Copyright Information: See EvtGen/COPYRIGHT
00009 //      Copyright (C) 1998      Caltech, UCSB
00010 //
00011 // Module: EvtSLPoleFF.cc
00012 //
00013 // Description: Routine to implement semileptonic form factors
00014 //              according to the model SLPoles
00015 //
00016 // Modification history:
00017 //
00018 //    DJL       April 17,1998       Module created
00019 //
00020 //------------------------------------------------------------------------
00021 // 
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include "EvtGenBase/EvtPatches.hh"
00024 #include "EvtGenBase/EvtReport.hh"
00025 #include "EvtGenModels/EvtSLPoleFF.hh"
00026 #include <string>
00027 #include "EvtGenBase/EvtPDL.hh"
00028 #include <math.h>
00029 
00030 EvtSLPoleFF::EvtSLPoleFF(int numarg, double *arglist) {
00031    numSLPoleargs = numarg;
00032    for (int i=0; i<numarg; i++) {
00033      SLPoleargs[i] = arglist[i]; }
00034 
00035    return;
00036 }
00037 
00038 
00039 void EvtSLPoleFF::getscalarff(EvtId parent,EvtId daught,
00040                        double t, double mass, double *fpf,
00041                             double *f0f ) {
00042 
00043 // Form factors have a general form, with parameters passed in
00044 // from the arguements.
00045 
00046    if ( numSLPoleargs !=8 ) {
00047      report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getscalarff\n";
00048      report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00049    }
00050 
00051   double mb=EvtPDL::getMeanMass(parent);
00052   double mb2 = mb*mb;
00053 
00054   double f0,af,bf,powf;
00055 
00056   f0 = SLPoleargs[0];
00057   af = SLPoleargs[1];
00058   bf = SLPoleargs[2];
00059   powf = SLPoleargs[3];
00060   *fpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00061 
00062   f0 = SLPoleargs[4];
00063   af = SLPoleargs[5];
00064   bf = SLPoleargs[6];
00065   powf = SLPoleargs[7];
00066 
00067   *f0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); 
00068 
00069   return;
00070 }
00071 
00072  void EvtSLPoleFF::getvectorff(EvtId parent,EvtId daught,
00073                        double t, double mass, double *a1f,
00074                              double *a2f, double *vf, double *a0f ){
00075 
00076   if ( numSLPoleargs !=16 ) {
00077      report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getvectorff\n";
00078      report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00079      report(ERROR,"EvtGen") << numSLPoleargs<<"\n";
00080   }
00081 
00082   double mb=EvtPDL::getMeanMass(parent);
00083   double mb2 = mb*mb;
00084 
00085   double f0,af,bf,powf;
00086 
00087   f0 = SLPoleargs[0];
00088   af = SLPoleargs[1];
00089   bf = SLPoleargs[2];
00090   powf = SLPoleargs[3];
00091   *a1f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00092 
00093   f0 = SLPoleargs[4];
00094   af = SLPoleargs[5];
00095   bf = SLPoleargs[6];
00096   powf = SLPoleargs[7];
00097 
00098   *a2f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00099 
00100   f0 = SLPoleargs[8];
00101   af = SLPoleargs[9];
00102   bf = SLPoleargs[10];
00103   powf = SLPoleargs[11];
00104 
00105   *vf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00106 
00107   f0 = SLPoleargs[12];
00108   af = SLPoleargs[13];
00109   bf = SLPoleargs[14];
00110   powf = SLPoleargs[15];
00111 
00112   *a0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00113   return;
00114  }
00115 
00116 
00117 
00118  void EvtSLPoleFF::gettensorff(EvtId parent,EvtId daught,
00119                        double t, double mass, double *hf,
00120                              double *kf, double *bpf, double *bmf ){
00121 
00122   if ( numSLPoleargs !=16 ) {
00123      report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::gettensorff\n";
00124      report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00125   }
00126 
00127   double mb=EvtPDL::getMeanMass(parent);
00128   double mb2 = mb*mb;
00129 
00130   double f0,af,bf,powf;
00131 
00132   f0 = SLPoleargs[0];
00133   af = SLPoleargs[1];
00134   bf = SLPoleargs[2];
00135   powf = SLPoleargs[3];
00136   *hf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00137 
00138   f0 = SLPoleargs[4];
00139   af = SLPoleargs[5];
00140   bf = SLPoleargs[6];
00141   powf = SLPoleargs[7];
00142 
00143   *kf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00144 
00145   f0 = SLPoleargs[8];
00146   af = SLPoleargs[9];
00147   bf = SLPoleargs[10];
00148   powf = SLPoleargs[11];
00149 
00150   *bpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00151 
00152   f0 = SLPoleargs[12];
00153   af = SLPoleargs[13];
00154   bf = SLPoleargs[14];
00155   powf = SLPoleargs[15];
00156 
00157   *bmf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00158   return;
00159  }
00160 

Generated on Tue Nov 29 23:12:22 2016 for BOSS_7.0.2 by  doxygen 1.4.7