EvtSLBKPoleFF Class Reference

#include <EvtSLBKPoleFF.hh>

Inheritance diagram for EvtSLBKPoleFF:

EvtSemiLeptonicFF List of all members.

Public Member Functions

 EvtSLBKPoleFF (int numarg, double *arglist)
void getscalarff (EvtId parent, EvtId daught, double t, double mass, double *fpf, double *f0f)
void getvectorff (EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f)
void gettensorff (EvtId parent, EvtId daught, double t, double mass, double *hf, double *kf, double *bp, double *bm)
void getbaryonff (EvtId, EvtId, double, double, double *, double *, double *, double *)

Private Attributes

int numSLBKPoleargs
double SLBKPoleargs [16]

Detailed Description

Definition at line 28 of file EvtSLBKPoleFF.hh.


Constructor & Destructor Documentation

EvtSLBKPoleFF::EvtSLBKPoleFF ( int  numarg,
double *  arglist 
)

Definition at line 30 of file EvtSLBKPoleFF.cc.

References genRecEmupikp::i, numSLBKPoleargs, and SLBKPoleargs.

00030                                                         {//modified
00031    numSLBKPoleargs = numarg;//modified
00032    for (int i=0; i<numarg; i++) {
00033       SLBKPoleargs[i] = arglist[i]; }//modified
00034 
00035    return;
00036 }


Member Function Documentation

void EvtSLBKPoleFF::getbaryonff ( EvtId  ,
EvtId  ,
double  ,
double  ,
double *  ,
double *  ,
double *  ,
double *   
) [virtual]

Reimplemented from EvtSemiLeptonicFF.

Definition at line 224 of file EvtSLBKPoleFF.cc.

References calibUtil::ERROR, and report().

00225                                                           {
00226   
00227   report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtSLBKPoleFF.\n";  
00228   ::abort();
00229 
00230 }

void EvtSLBKPoleFF::getscalarff ( EvtId  parent,
EvtId  daught,
double  t,
double  mass,
double *  fpf,
double *  f0f 
) [virtual]

Reimplemented from EvtSemiLeptonicFF.

Definition at line 39 of file EvtSLBKPoleFF.cc.

References calibUtil::ERROR, EvtPDL::name(), numSLBKPoleargs, report(), and SLBKPoleargs.

00041                                           {
00042 
00043 // Form factors have a general form, with parameters passed in
00044 // from the arguments.
00045 
00046    if ( numSLBKPoleargs != 4 ) {//modified
00047      report(ERROR,"EvtGen") << "Problem in EvtSLBKPoleFF::getscalarff\n";
00048      report(ERROR,"EvtGen") << "wrong number of arguments!\n";
00049      report(ERROR,"EvtGen") << "number args:"<<numSLBKPoleargs<<" (expected 4)\n";
00050      report(ERROR,"EvtGen") << "Parent:"<<EvtPDL::name(parent)<<"\n";
00051      report(ERROR,"EvtGen") << "Daughter:"<<EvtPDL::name(daught)<<"\n";
00052 
00053    }
00054 
00055 
00056   double f0,af,powf;
00057 
00058   //double a_0, a_1, a_2, a_3, a_4, a_5, a_6, a_7;
00059 
00060   f0 = SLBKPoleargs[0];//f0
00061   af = SLBKPoleargs[1];//alpha
00062   //bf = SLBKPoleargs[2];
00063   double mass_star2 = SLBKPoleargs[3]*SLBKPoleargs[3];
00064   powf = 1.0;
00065   *fpf = f0/(pow( 1.0 - (1.0+af)*(t/mass_star2) + (af*((t/mass_star2)*(t/mass_star2))),powf));//modified
00066 
00067   f0 = SLBKPoleargs[0];//f0
00068   af = SLBKPoleargs[2];//beta
00069   //bf = SLBKPoleargs[6];
00070   powf = 1.0;
00071 
00072   *f0f = f0/(pow( 1.0 - (t/mass_star2/af),powf));//modified
00073 
00074   return;
00075 }

void EvtSLBKPoleFF::gettensorff ( EvtId  parent,
EvtId  daught,
double  t,
double  mass,
double *  hf,
double *  kf,
double *  bp,
double *  bm 
) [virtual]

Reimplemented from EvtSemiLeptonicFF.

Definition at line 179 of file EvtSLBKPoleFF.cc.

References calibUtil::ERROR, EvtPDL::getMeanMass(), Bes_Common::INFO, numSLBKPoleargs, report(), and SLBKPoleargs.

00181                                                                    {
00182 
00183   if ( numSLBKPoleargs !=16 ) {
00184      report(ERROR,"EvtGen") << "Problem in EvtSLBKPoleFF::gettensorff\n";
00185      report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00186   }
00187 
00188   report(INFO,"EvtGen")<<"Check the implementation of EvtSLBKPoleFF::gettensorff()!\n";
00189 
00190   double mb=EvtPDL::getMeanMass(parent);
00191   double mb2 = mb*mb;
00192 
00193   double f0,af,bf,powf;
00194 
00195   f0 = SLBKPoleargs[0];
00196   af = SLBKPoleargs[1];
00197   bf = SLBKPoleargs[2];
00198   powf = SLBKPoleargs[3];
00199   *hf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00200 
00201   f0 = SLBKPoleargs[4];
00202   af = SLBKPoleargs[5];
00203   bf = SLBKPoleargs[6];
00204   powf = SLBKPoleargs[7];
00205 
00206   *kf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00207 
00208   f0 = SLBKPoleargs[8];
00209   af = SLBKPoleargs[9];
00210   bf = SLBKPoleargs[10];
00211   powf = SLBKPoleargs[11];
00212 
00213   *bpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00214 
00215   f0 = SLBKPoleargs[12];
00216   af = SLBKPoleargs[13];
00217   bf = SLBKPoleargs[14];
00218   powf = SLBKPoleargs[15];
00219 
00220   *bmf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00221   return;
00222  }

void EvtSLBKPoleFF::getvectorff ( EvtId  parent,
EvtId  daught,
double  t,
double  mass,
double *  a1f,
double *  a2f,
double *  vf,
double *  a0f 
) [virtual]

Reimplemented from EvtSemiLeptonicFF.

Definition at line 77 of file EvtSLBKPoleFF.cc.

References calibUtil::ERROR, EvtPDL::getId(), EvtPDL::getMeanMass(), Bes_Common::INFO, numSLBKPoleargs, report(), and SLBKPoleargs.

00079                                                                    {
00080 
00081    if ( numSLBKPoleargs !=8 ) {//modified
00082      report(ERROR,"EvtGen") << "Problem in EvtSLBKPoleFF::getvectorff\n";//modified
00083      report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00084      report(ERROR,"EvtGen") << numSLBKPoleargs<<"\n";//modified
00085 //     printf("\n*********************%d*********************",numSLBKPoleargs);
00086   }
00087 
00088 
00089    report(INFO,"EvtGen")<<"Check the implementation of EvtSLBKPoleFF::getvectorff()!\n";
00090 
00091 
00092   double mb=EvtPDL::getMeanMass(parent);
00093   double mb2 = mb*mb;
00094 
00095 //modified-begin
00096   static EvtId B0=EvtPDL::getId("B0");
00097   static EvtId B0B=EvtPDL::getId("anti-B0");  
00098   static EvtId BP=EvtPDL::getId("B+");
00099   static EvtId BM=EvtPDL::getId("B-");
00100   static EvtId BS0=EvtPDL::getId("B_s0");
00101 
00102   static EvtId B0S=EvtPDL::getId("B*0");
00103   static EvtId BPMS=EvtPDL::getId("B*+");  
00104   static EvtId BS0S=EvtPDL::getId("B_s*0");
00105   
00106   static EvtId D0=EvtPDL::getId("D0");
00107   static EvtId D0B=EvtPDL::getId("anti-D0");
00108   static EvtId DP=EvtPDL::getId("D+");
00109   static EvtId DM=EvtPDL::getId("D-");
00110   static EvtId DSP=EvtPDL::getId("D_s+");
00111   static EvtId DSM=EvtPDL::getId("D_s-");
00112 
00113   static EvtId D0S=EvtPDL::getId("D*0");
00114   static EvtId DPMS=EvtPDL::getId("D*+");
00115   static EvtId DSPMS=EvtPDL::getId("D_s*+");
00116 
00117   double mass_star;
00118   double mass_star2;
00119   if(parent==B0||parent==B0B){
00120      mass_star=EvtPDL::getMeanMass(B0S);
00121      mass_star2=mass_star*mass_star;
00122   }
00123   if(parent==BP||parent==BM){
00124      mass_star=EvtPDL::getMeanMass(BPMS);
00125      mass_star2=mass_star*mass_star;
00126   }
00127   if(parent==BS0){
00128      mass_star=EvtPDL::getMeanMass(BS0S);
00129      mass_star2=mass_star*mass_star;
00130   }
00131 
00132   if(parent==D0||parent==D0B){
00133      mass_star=EvtPDL::getMeanMass(D0S);
00134      mass_star2=mass_star*mass_star;
00135   }
00136   if(parent==DP||parent==DM){
00137      mass_star=EvtPDL::getMeanMass(DPMS);
00138      mass_star2=mass_star*mass_star;
00139   }
00140   if(parent==DSP||parent==DSM){
00141      mass_star=EvtPDL::getMeanMass(DSPMS);
00142      mass_star2=mass_star*mass_star;
00143   }
00144 //modified-end
00145 
00146   double f0,af,bf,powf;
00147 
00148   f0 = SLBKPoleargs[2];//A1
00149   af = SLBKPoleargs[6];//b'
00150   bf = 0;//0
00151   powf = 1.0;//1.0
00152   *a1f = f0/(pow( 1.0 - af*t/mass_star2,powf));//modified
00153 
00154   f0 = SLBKPoleargs[3];//A2
00155   af = SLBKPoleargs[6];//b'
00156   bf = SLBKPoleargs[7];//b''==0
00157   powf = 1.0;//1.0
00158 
00159   *a2f = f0/(pow(1.0 - (af+bf)*(t/mass_star2) + (af*bf)*((t/mass_star2)*(t/mass_star2)),powf));//modified
00160 
00161   f0 = SLBKPoleargs[0];//V0
00162   af = SLBKPoleargs[4];//a
00163   bf = 0;//0
00164   powf = 1.0;//1.0
00165 
00166   *vf = f0/(pow( 1.0 - (1.0+af)*(t/mass_star2) + af*(t/mass_star2)*(t/mass_star2),powf));//modified
00167 
00168   f0 = SLBKPoleargs[1];//A0
00169   af = SLBKPoleargs[5];//a'
00170   bf = 0;//0
00171   powf = 1.0;//1.0
00172 
00173   *a0f = f0/(pow( 1.0 - (1.0+af)*(t/mb2) + af*((t/mb2)*(t/mb2)),powf));//modified
00174   return;
00175  }


Member Data Documentation

int EvtSLBKPoleFF::numSLBKPoleargs [private]

Definition at line 47 of file EvtSLBKPoleFF.hh.

Referenced by EvtSLBKPoleFF(), getscalarff(), gettensorff(), and getvectorff().

double EvtSLBKPoleFF::SLBKPoleargs[16] [private]

Definition at line 48 of file EvtSLBKPoleFF.hh.

Referenced by EvtSLBKPoleFF(), getscalarff(), gettensorff(), and getvectorff().


Generated on Tue Nov 29 23:19:24 2016 for BOSS_7.0.2 by  doxygen 1.4.7