00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 EvtVector4R vpho,lambdac,lambdacbar,lambda,lambdabar,proton,antiproton,positron,enu,wp4,vpim;
00020 vpho = part->getP4();
00021 lambdac = part->getDaug(0)->getP4();
00022 lambda = part->getDaug(0)->getDaug(0)->getP4();
00023 positron = part->getDaug(0)->getDaug(1)->getP4();
00024 enu = part->getDaug(0)->getDaug(2)->getP4();
00025 proton = part->getDaug(0)->getDaug(0)->getDaug(0)->getP4();
00026 vpim = part->getDaug(0)->getDaug(0)->getDaug(1)->getP4();
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
00036
00037
00038 double cosw=bps.dot(lambda)/bps.d3mag()/lambda.d3mag();
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
00047
00048
00049
00050
00051
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
00067
00068
00069
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