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

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 //
00003 // Environment:
00004 //      This software is part of models developed at BES collaboration
00005 //      based on the EvtGen framework.  If you use all or part
00006 //      of it, please give an appropriate acknowledgement.
00007 //
00008 // Copyright Information: See EvtGen/BesCopyright
00009 //      Copyright (A) 2006      Ping Rong-Gang @IHEP
00010 //
00011 // Module: EvtJ2BB2.cc //
00012 // Description: Routine to decay jpsi or psi(2S) to B10 B10 bar. 
00013 // The augular distribution parameter alpha is writed as -- in the model
00014 // with  use the Carimalo approach that it is expended by us for jpsi or
00015 // psi(2S) decays B10 B10 bar.
00016 // 
00017 //Modification history:
00018 //
00019 //  Pang C.Y. and  Ping R.-G.       Apr, 2007       Module created
00020 //
00021 //------------------------------------------------------------------------
00022 
00023 #include "EvtGenBase/EvtPatches.hh"
00024 #include <stdlib.h>
00025 #include "EvtGenBase/EvtParticle.hh"
00026 #include "EvtGenBase/EvtGenKine.hh"
00027 #include "EvtGenBase/EvtPDL.hh"
00028 #include "EvtGenBase/EvtVector4C.hh"
00029 #include "EvtGenBase/EvtVector4R.hh"
00030 #include "EvtGenBase/EvtTensor4C.hh"
00031 #include "EvtGenBase/EvtReport.hh"
00032 #include "EvtGenBase/EvtHelSys.hh"
00033 #include "EvtJ2BB2.hh"
00034 #include "EvtGenBase/EvtdFunctionSingle.hh"
00035 #include "EvtGenBase/EvtRaritaSchwinger.hh"
00036 #include "EvtGenBase/EvtRaritaSchwingerParticle.hh" 
00037 
00038 #include <string>
00039 
00040 using std::endl;
00041 using std::cout;
00042 EvtJ2BB2::~EvtJ2BB2() {}
00043 
00044 void EvtJ2BB2::getName(std::string& model_name){
00045 
00046   model_name="J2BB2";     
00047 
00048 }
00049 
00050 
00051 EvtDecayBase* EvtJ2BB2::clone(){
00052 
00053   return new EvtJ2BB2;
00054 
00055 }
00056 
00057 void EvtJ2BB2::init(){
00058 // checkNArg(1); 
00059  checkNDaug(2);
00060  checkSpinParent(EvtSpinType::VECTOR);
00061  checkSpinDaughter(0,EvtSpinType::RARITASCHWINGER);
00062  checkSpinDaughter(1,EvtSpinType::RARITASCHWINGER);
00063 
00064  }
00065 
00066 /*
00067 void EvtJ2BB2::initProbMax() {
00068 
00069   //Hard coded... should not be hard to calculate...
00070  setProbMax(100.0);
00071 }      
00072 */
00073 
00074 void EvtJ2BB2::decay( EvtParticle *p){
00075 
00076   static EvtId DZP=EvtPDL::getId("Delta0");
00077   static EvtId DZM=EvtPDL::getId("anti-Delta0");
00078   static EvtId DPP=EvtPDL::getId("Delta+");
00079   static EvtId DPM=EvtPDL::getId("anti-Delta-");
00080   static EvtId DMP=EvtPDL::getId("Delta-");
00081   static EvtId DMM=EvtPDL::getId("anti-Delta+");
00082   static EvtId DPPP=EvtPDL::getId("Delta++");
00083   static EvtId DPPM=EvtPDL::getId("anti-Delta--");
00084 
00085   static EvtId SZP=EvtPDL::getId("Sigma*0");
00086   static EvtId SZM=EvtPDL::getId("anti-Sigma*0");
00087   static EvtId SPP=EvtPDL::getId("Sigma*+");
00088   static EvtId SPM=EvtPDL::getId("anti-Sigma*-");
00089   static EvtId SMP=EvtPDL::getId("Sigma*-");
00090   static EvtId SMM=EvtPDL::getId("anti-Sigma*+");
00091   
00092   static EvtId XP=EvtPDL::getId("Xi*-");
00093   static EvtId XM=EvtPDL::getId("anti-Xi*+");
00094   static EvtId XZP=EvtPDL::getId("Xi*0");
00095   static EvtId XZM=EvtPDL::getId("anti-Xi*0");
00096 
00097   static EvtId OP=EvtPDL::getId("Omega-");
00098   static EvtId OM=EvtPDL::getId("anti-Omega+");
00099 
00100   p->initializePhaseSpace(getNDaug(),getDaugs());
00101 
00102   EvtParticle *v,*s1;
00103   EvtVector4R pv,ps,ppr;
00104 
00105   v =p->getDaug(0);    
00106   s1=p->getDaug(1); 
00107   pv=v->getP4();
00108   ps=s1->getP4();
00109   ppr=p->getP4();
00110 //  Put phase space results into the daughters.
00111   EvtHelSys angles(ppr,pv); //using helicity sys. angles
00112   double theta =angles.getHelAng(1);  
00113   double phi  =angles.getHelAng(2);
00114   double gamma=0;
00115 /*  double costheta=cos(theta);
00116   double sintheta=sqrt(1-costheta*costheta);
00117   double d11=(1+costheta)/2.;
00118   double d1m1=(1-costheta)/2.;
00119   double d10=-sintheta/sqrt(2.);
00120   double dm10=-d10;
00121   double dm11=d1m1,dm1m1=d11;
00122   double d0m1=d10,d01=-d10,d00=costheta;
00123 */
00124 //  double mass_b1 = EvtPDL::getMass(getDaug(0));
00125 //  double mass_b2 = EvtPDL::getMass(getDaug(1));
00126   double mass_b1,mass_b2;
00127   EvtId d1;
00128   d1=v->getId();
00129 
00130 // the mass of daughters are defined in our model. Because the distribution of Delta BreitWigner mass is very large.
00131      
00132   if((d1==XP)||(d1==XM)||(d1==XZP)||(d1==XZM)) {mass_b1=1.532;}
00133    else if((d1==SPP)||(d1==SPM)||(d1==SMP)||(d1==SMM)||(d1==SZP)||(d1==SZM)){mass_b1=1.383;} 
00134     else if((d1==DZP)||(d1==DZM)||(d1==DPP)||(d1==DPM)||(d1==DMP)||(d1==DMM)||(d1==DPPP)||(d1==DPPM)){mass_b1=1.232;} 
00135      else if((d1==OP)||d1==OM){mass_b1=1.67245;}
00136   else{cout<<"The decay is not the process: J/psi->B10 B10bar(decuplet baryon) ."<<endl;}
00137 
00138   mass_b2=mass_b1;
00139   double mass_M = EvtPDL::getMass(getParentId());
00140 
00141 //  double c1=pow(pv.d3mag(),2.0);
00142 //  double R=(mass_b1+pv.get(0))*(mass_b2+ps.get(0));
00143 
00144   double R=pow(mass_b1+mass_M/2.0,2.0);
00145   double c1=mass_M*mass_M/4.0-mass_b1*mass_b1;
00146   double  u=pow((R-c1)/(R+c1),2.0);
00147 
00148   if(getNArg()>0){ alpha=getArg(0);}
00149    else{
00150         alpha=(-9*u*u*u+17*u*u-16*u+8)/(9*u*u*u-7*u*u+8);
00151        }
00152 
00153   double F00,F01,F03,F10,F11,F22,F23,F30,F32,F33;
00154   double scale1=sqrt(3.0)*u/(u-2.0);                                        //scale1=F01:F03.
00155   double scale2=3.0*u/(3.0*u-4);                                              //scale2=F11:F00.
00156 
00157 //  F00=1.0; F01=scale1*F03;F11=scale2*F00; 
00158 //  F03=sqrt(2.0*(1.0+scale2*scale2)*(1.0+alpha)/((1.0-alpha)*(1.0+2.0*scale1*scale1)));
00159 
00160   F00=sqrt((1-alpha)/(4.0*(1.0+scale2*scale2)));
00161   F03=sqrt((1+alpha)/(2.0*(1.0+2.0*scale1*scale1)));  
00162   F01=scale1*F03;F11=scale2*F00;
00163   F22=F11;F32=F01;F33=F00;F30=F03;F10=F01;F23=F32;   //07.2
00164 
00165 // J/psi helicity =1,-1,0 corresponding index=0,1,2 
00166 //decuplt baryon helicity =1/2,3/2,-3/2,-1/2 corresponding index=0,1,2,3
00167  vertex(0,0,0,Djmn(1, 1, 0,phi,theta,gamma)*F00);
00168  vertex(0,0,1,Djmn(1, 1,-1,phi,theta,gamma)*F01);
00169  vertex(0,0,2,0.0); 
00170  vertex(0,0,3,Djmn(1, 1, 1,phi,theta,gamma)*F03);
00171  vertex(0,1,0,Djmn(1, 1, 1,phi,theta,gamma)*F10);
00172  vertex(0,1,1,Djmn(1, 1, 0,phi,theta,gamma)*F11);
00173  vertex(0,1,2,0.0); 
00174  vertex(0,1,3,0.0);
00175  vertex(0,2,0,0.0); 
00176  vertex(0,2,1,0.0);
00177  vertex(0,2,2,Djmn(1, 1, 0,phi,theta,gamma)*F22); 
00178  vertex(0,2,3,Djmn(1, 1,-1,phi,theta,gamma)*F23);
00179  vertex(0,3,0,Djmn(1, 1,-1,phi,theta,gamma)*F30);
00180  vertex(0,3,1,0.0); 
00181  vertex(0,3,2,Djmn(1, 1, 1,phi,theta,gamma)*F32);
00182  vertex(0,3,3,Djmn(1, 1, 0,phi,theta,gamma)*F33);
00183 
00184  vertex(1,0,0,Djmn(1,-1, 0,phi,theta,gamma)*F00);
00185  vertex(1,0,1,Djmn(1,-1,-1,phi,theta,gamma)*F01);
00186  vertex(1,0,2,0.0);
00187  vertex(1,0,3,Djmn(1,-1, 1,phi,theta,gamma)*F03);
00188  vertex(1,1,0,Djmn(1,-1, 1,phi,theta,gamma)*F10);
00189  vertex(1,1,1,Djmn(1,-1, 0,phi,theta,gamma)*F11);
00190  vertex(1,1,2,0.0);
00191  vertex(1,1,3,0.0);
00192  vertex(1,2,0,0.0);
00193  vertex(1,2,1,0.0);
00194  vertex(1,2,2,Djmn(1,-1, 0,phi,theta,gamma)*F22);
00195  vertex(1,2,3,Djmn(1,-1,-1,phi,theta,gamma)*F23);
00196  vertex(1,3,0,Djmn(1,-1,-1,phi,theta,gamma)*F30);
00197  vertex(1,3,1,0.0);
00198  vertex(1,3,2,Djmn(1,-1, 1,phi,theta,gamma)*F32);
00199  vertex(1,3,3,Djmn(1,-1, 0,phi,theta,gamma)*F33);
00200 
00201  vertex(2,0,0,Djmn(1, 0, 0,phi,theta,gamma)*F00);
00202  vertex(2,0,1,Djmn(1, 0,-1,phi,theta,gamma)*F01);
00203  vertex(2,0,2,0.0);
00204  vertex(2,0,3,Djmn(1, 0, 1,phi,theta,gamma)*F03);
00205  vertex(2,1,0,Djmn(1, 0, 1,phi,theta,gamma)*F10);
00206  vertex(2,1,1,Djmn(1, 0, 0,phi,theta,gamma)*F11);
00207  vertex(2,1,2,0.0);
00208  vertex(2,1,3,0.0);
00209  vertex(2,2,0,0.0);
00210  vertex(2,2,1,0.0);
00211  vertex(2,2,2,Djmn(1, 0, 0,phi,theta,gamma)*F22);
00212  vertex(2,2,3,Djmn(1, 0,-1,phi,theta,gamma)*F23);
00213  vertex(2,3,0,Djmn(1, 0,-1,phi,theta,gamma)*F30);
00214  vertex(2,3,1,0.0);
00215  vertex(2,3,2,Djmn(1, 0, 1,phi,theta,gamma)*F32);
00216  vertex(2,3,3,Djmn(1, 0, 0,phi,theta,gamma)*F33);
00217 
00218   return ;
00219   
00220 }
00221 
00222 
00223 
00224 

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