/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenModels/EvtDeBD.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, Pang Cai-Ying@IHEP
00010 //
00011 // Module: EvtDeBD.cc
00012 //
00013 // Description: To generate events for decuplet baryon deacys.
00014 //
00015 // Modification history:
00016 //
00017 //    Ping R.-G.    Apr., 2007       Module created
00018 //
00019 //------------------------------------------------------------------------
00020 //
00021 #include "EvtGenBase/EvtPatches.hh"
00022 #include <stdlib.h>
00023 #include <iostream>
00024 #include <string>
00025 #include "EvtGenBase/EvtParticle.hh"
00026 #include "EvtGenBase/EvtPDL.hh"
00027 #include "EvtGenBase/EvtGenKine.hh"
00028 #include "EvtGenModels/EvtDeBD.hh"
00029 #include "EvtGenBase/EvtDiracSpinor.hh"
00030 #include "EvtGenBase/EvtReport.hh"
00031 #include "EvtGenBase/EvtVector4C.hh"
00032 #include "EvtGenBase/EvtId.hh"
00033 #include "EvtGenBase/EvtHelSys.hh"
00034 #include "EvtGenBase/EvtRaritaSchwinger.hh"
00035 #include "EvtGenBase/EvtRaritaSchwingerParticle.hh"
00036 
00037 using std::cout;
00038 using std::endl;
00039 
00040 EvtDeBD::~EvtDeBD() {}
00041 
00042 void EvtDeBD::getName(std::string& model_name){
00043 
00044   model_name="DeBD";     
00045 
00046 }
00047 
00048 
00049 EvtDecayBase* EvtDeBD::clone(){
00050 
00051   return new EvtDeBD;
00052 
00053 }
00054 
00055 void EvtDeBD::init(){
00056 
00057   // check that there are 0 arguments
00058   checkNArg(0);
00059   checkNDaug(2);
00060 
00061    checkSpinParent(EvtSpinType::RARITASCHWINGER);
00062   
00063    checkSpinDaughter(0,EvtSpinType::DIRAC);
00064    checkSpinDaughter(1,EvtSpinType::SCALAR);
00065 
00066 }
00067 
00068 /*
00069 void EvtDeBD::initProbMax(){
00070   setProbMax(10.0);
00071 }
00072 */
00073 
00074 void EvtDeBD::decay(EvtParticle *p){
00075 
00076   static EvtId PIM=EvtPDL::getId("pi-");
00077   static EvtId PI0=EvtPDL::getId("pi0");
00078   static EvtId KM=EvtPDL::getId("K-");
00079  
00080   static EvtId L0 =EvtPDL::getId("Lambda0");
00081   static EvtId LB =EvtPDL::getId("anti-Lambda0");
00082   static EvtId XM =EvtPDL::getId("Xi-");
00083   static EvtId XMB=EvtPDL::getId("anti-Xi+"); 
00084   static EvtId X0 =EvtPDL::getId("Xi0");
00085   static EvtId X0B=EvtPDL::getId("anti-Xi0");
00086 
00087   static EvtId OM =EvtPDL::getId("Omega-");
00088   static EvtId OMB=EvtPDL::getId("anti-Omega+");
00089 
00090   p->initializePhaseSpace(getNDaug(),getDaugs());
00091 
00092   EvtParticle *l1, *l2;
00093   l1 = p->getDaug(0);
00094   l2 = p->getDaug(1);
00095 
00096   EvtId p1,d1,d2;
00097   p1=p ->getId();
00098   d1=l1->getId();
00099   d2=l2->getId();
00100 
00101  
00102   EvtVector4R pDaug=l1->getP4();
00103   double p3=pDaug.d3mag();
00104 
00105   EvtVector4R pv,ps,ppr;
00106   pv=l1->getP4Lab(); //baryon
00107   ps=l2->getP4Lab(); //meson
00108   ppr=p->getP4();
00109 
00110   double theta,alpha;
00111   EvtHelSys angles(ppr,pv);   //using helicity sys.angles
00112   theta=angles.getHelAng(1);
00113   double phi  =angles.getHelAng(2);
00114   double gamma=0;
00115 
00116   if((p1==OM)&&(d1==L0)){
00117     alpha=0.0175;
00118    }
00119   else if((p1==OMB)&&(d1==LB)){ 
00120    alpha=-0.0175;
00121    }
00122   else if((p1==OM)&&(d1==X0)){
00123    alpha=0.09;
00124    }
00125   else if((p1==OMB)||(d1==X0B)){
00126     alpha=-0.09;
00127    }
00128   else if((p1==OM)||(d1==XM)){
00129     alpha=0.05;
00130    }
00131   else if((p1==OMB)||(d1==XMB)){
00132     alpha=-0.05;
00133    }
00134 
00135   double FP,FM;
00136   if(p1==OM||p1==OMB){
00137     FM=sqrt((1+alpha)/2.);
00138     FP=sqrt((1-alpha)/2.);
00139    }
00140     else {
00141     FP=1;FM=1;
00142      }
00143 
00144   vertex(0,0,Djmn(1.5, 0.5, 0.5,phi,theta,gamma)*FP);
00145   vertex(0,1,Djmn(1.5, 0.5,-0.5,phi,theta,gamma)*FM);
00146   vertex(1,0,Djmn(1.5, 1.5, 0.5,phi,theta,gamma)*FP);
00147   vertex(1,1,Djmn(1.5, 1.5,-0.5,phi,theta,gamma)*FM);
00148   vertex(2,0,Djmn(1.5,-1.5, 0.5,phi,theta,gamma)*FP);
00149   vertex(2,1,Djmn(1.5,-1.5,-0.5,phi,theta,gamma)*FM);
00150   vertex(3,0,Djmn(1.5,-0.5, 0.5,phi,theta,gamma)*FP);
00151   vertex(3,1,Djmn(1.5,-0.5,-0.5,phi,theta,gamma)*FM);
00152 
00153   return;
00154 
00155 }
00156 
00157 
00158 
00159 
00160 
00161 
00162 
00163 
00164 
00165 
00166 
00167 
00168 

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