00001 /****************************************** 00002 Decay cards 00003 00004 Decay vpho 00005 1 gamma gamma* CONEXC 23; 00006 Enddecay 00007 00008 Decay gamma* 00009 1 eta phi PHSP; 00010 Enddecay 00011 00012 Decay phi 00013 1 K+ K- PHSP; 00014 Enddecay 00015 00016 Decay eta 00017 1 gamma gamma PHSP; 00018 Enddecay 00019 00020 00021 End 00022 *******************************************/ 00023 EvtVector4R vgamst,veta,vphi,vkaon; 00024 vgamst = part->getDaug(1)->getP4(); //gamma* momentum 00025 vphi = part->getDaug(1)->getDaug(1)->getP4(); //phi momentum 00026 veta = part->getDaug(1)->getDaug(0)->getP4(); //eta momentum 00027 vkaon = part->getDaug(1)->getDaug(1)->getDaug(0)->getP4(); // K+ 00028 00029 double mphi= vphi.mass(); 00030 double meta= veta.mass(); 00031 if(mphi<0.01 || meta<0.01) return sqrt(-1.0);//To tag the bad gamma*->eta phi with zero mass of eta and phi 00032 00033 EvtHelSys angles0(vgamst,vphi); 00034 double theta0 = angles0.getHelAng(1); 00035 double phi0 = angles0.getHelAng(2); 00036 00037 EvtHelSys angles1(vphi,vkaon); 00038 double theta1 = angles1.getHelAng(1); 00039 double phi1 = angles1.getHelAng(2); 00040 00041 //std::cout<<vphi<<veta<<std::endl; 00042 00043 amps=0; 00044 double H[3]={-1,0,1}; 00045 EvtComplex camps=0; 00046 /* 00047 for(int M=-1;M<=1;M+=2){ 00048 for(int lam=-1;lam<=1;lam++){ 00049 for(int lamp=-1;lamp<=1;lamp++){ 00050 camps += Djmn(1,M,lam,phi0,theta0,0)*conj(Djmn(1,M,lamp,phi0,theta0,0))*H[lam+1]*H[lamp+1] 00051 *Djmn(1,lam,0,phi1,theta1,0)*conj(Djmn(1,lamp,0,phi1,theta1,0)); 00052 } 00053 } 00054 } 00055 amps = real(camps); 00056 */ 00057 amps = (6 + 2*cos(2*(phi0 - phi1)) + 2*cos(2*theta0) - cos(2*(phi0 - phi1 + theta0)) - cos(2*(-phi0 + phi1 + theta0)))* 00058 sin(theta1)*sin(theta1); 00059 00060 //std::cout<<camps<<" "<<H[0]<<" "<<H[1]<<" "<<H[2]<<std::endl;