/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/user/Lenu.C

Go to the documentation of this file.
00001 /******************************************
00002 Decay cards
00003 
00004 Decay vpho
00005 1 Lambda_c+ anti-Lambda_c- PHSP;
00006 Enddecay
00007 
00008 Decay Lambda_c+
00009 1 Lambda0 e+ nu_e PHSP;
00010 Enddecay
00011 
00012 Decay Lambda0
00013 1 p+ pi- PHSP;
00014 Enddecay
00015 
00016 
00017 End
00018 *******************************************/
00019 EvtVector4R vpho,lambdac,lambdacbar,lambda,lambdabar,proton,antiproton,positron,enu,wp4,vpim;
00020 vpho      = part->getP4();              //vpho momentum  
00021 lambdac   = part->getDaug(0)->getP4();  //lambda_c+ momentum 
00022 lambda    = part->getDaug(0)->getDaug(0)->getP4();  //Lambda
00023 positron  = part->getDaug(0)->getDaug(1)->getP4();  //e+ 
00024 enu       = part->getDaug(0)->getDaug(2)->getP4();  //nu_e
00025 proton    = part->getDaug(0)->getDaug(0)->getDaug(0)->getP4();  //proton
00026 vpim      = part->getDaug(0)->getDaug(0)->getDaug(1)->getP4();  //pronton
00027 wp4       = enu + positron;
00028 
00029 
00030 EvtVector4R bwp4,bps,bnu;
00031 bwp4=-1*wp4; bwp4.set(0,wp4.get(0));
00032 bnu=boostTo(enu,     bwp4);
00033 bps=boostTo(positron,bwp4);
00034 EvtHelSys angles1(wp4,bps);
00035 //double thetaw1= angles1.getHelAng(1);
00036 //std::cout<<bnu<<bps<<lambdac<<std::endl;
00037 
00038 double cosw=bps.dot(lambda)/bps.d3mag()/lambda.d3mag(); //thetaw is defined as the angle between the positron and Lambda
00039 double thetaw=acos(cosw);
00040 
00041 EvtHelSys angles0(lambda,proton);
00042 double thetaL = angles0.getHelAng(1);
00043 double phiL   = angles0.getHelAng(2);
00044 double mw = wp4.mass();
00045 
00046 //debuging
00047 //double cosL=lambda.dot(proton)/lambda.d3mag()/proton.d3mag();
00048 //std::cout<<acos(cosL)<<" "<<thetaL<<std::endl; 
00049 //std::cout<<bps<<bnu<<std::endl;
00050 //std::cout<<proton<<vpim<<std::endl;
00051 //std::cout<<thetaw<<" "<<thetaL<<" "<<mw<<std::endl;
00052 
00053 EvtId LamId=part->getDaug(0)->getId();
00054 std::vector<double> vpar,vexp;
00055 vexp.push_back(thetaw);
00056 vexp.push_back(thetaL);
00057 vexp.push_back(mw);
00058 
00059 double fratio=-0.25;
00060 double f1=1;
00061 double f2=f1*fratio;
00062 vpar.push_back(f1);
00063 vpar.push_back(f2);
00064 
00065 
00066 //debugging
00067 //std::cout<<vexp[0]<<" "<<vexp[1]<<" "<<vexp[2]<<std::endl;
00068 //std::cout<<vexp[0]<<" "<<vexp[1]<<" "<<vexp[2]<<std::endl;
00069 //std::cout<<"The simulation is :"<<EvtPDL::name(LamId)<<std::endl;
00070 
00071 double aL=0.642;
00072 if(LamId==EvtPDL::getId("Lambda_c+")){
00073   amps = ampsLenu(vexp,vpar); 
00074  }else if(LamId==EvtPDL::getId("anti-Lambda_c-")){
00075   aL = -aL;
00076   amps = ampsLbenu(vexp,vpar);
00077  }else{
00078   std::cout<<"Your particle is not Lambda_c+ or anti-Lambda_c-"<<std::endl;
00079  }
00080 
00081 //std::cout<<amps<<" "<<vpar[0]<<" "<<vpar[1]<<std::endl;

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