{ Double_t Pxdp1 = 0.99677; Double_t Pmuxi = 0.9960; Double_t mL = 80.425; // Mass of the left-handed W Int_t nBins = 10000; Double_t mR[nBins]; // Mass of the right-handed W Double_t epsilon; // Mass squared ratio, mR^2/mL^2 // First limit Double_t zeta1pos[nBins]; // Left-right mixing angle, positive branch Double_t zeta1neg[nBins]; // Left-right mixing angle, negative branch Double_t zetaGpos[nBins]; // General Vud, positive branch Double_t zetaGneg[nBins]; // General Vud, negative branch Int_t lBin1; Double_t lower1 = 401.2; Double_t mRLimit = 300; Int_t BkgrdCol = 16; for(Int_t iBin=0;iBin 0){ zetaGpos[iBin] = sqrt((1 - Pxdp1)/2 - pow(epsilon,2)); zetaGneg[iBin] = -sqrt((1 - Pxdp1)/2 - pow(epsilon,2)); zeta1pos[iBin] = -epsilon + zetaGpos[iBin]; zeta1neg[iBin] = -epsilon + zetaGneg[iBin]; } else{ lBin1 = iBin + 1; } } //============================================================================== Double_t mRlow = 375; Double_t nmR = 800; Double_t nzeta = 1000; Double_t Maxzeta = 0.40; Double_t ZeroDef = 0.0001; // Coordinates of curve Double_t MMR[nmR]; Double_t zetaNeg[nmR]; Double_t zetaPos[nmR]; Double_t zeta2Neg[nmR]; Double_t zeta2Pos[nmR]; Double_t m1; Double_t m2; Double_t epsilon; Double_t zeta; Double_t xi; Double_t Pmu; Double_t Pmu2; Int_t imin; imin = 0; Int_t jmin; jmin = 0; for(Int_t imR = 0; imR < nmR; imR++){ MMR[imR] = (imR)*(1200-mRlow)/(nmR-1)+mRlow; //----------------------------------------------------- // Limit for V_ud^R ~ V_ud^L for(Int_t izeta = -nzeta+1; izeta <= nzeta-1; izeta++){ zeta = izeta*(Maxzeta/(nzeta-1)); m1 = mL*pow(cos(zeta),2) + MMR[imR]*pow(sin(zeta),2); m2 = mL*pow(sin(zeta),2) + MMR[imR]*pow(cos(zeta),2); epsilon = pow(m1/m2,2); xi = 1 - 2*pow(epsilon,2) - 2*pow(zeta,2); Pmu = 1 - 2*pow((epsilon + zeta),2); if(sqrt(pow(Pmu*xi - Pmuxi,2)) < ZeroDef){ // on 90% confidence limit curve zetaNeg[imR] = zeta; break; } else if(izeta == nzeta-1){ // mR too low imin = imR; } } for(Int_t jzeta = nzeta-1; jzeta >= -nzeta+1; jzeta--){ zeta = jzeta*(Maxzeta/(nzeta-1)); m1 = mL*pow(cos(zeta),2) + MMR[imR]*pow(sin(zeta),2); m2 = mL*pow(sin(zeta),2) + MMR[imR]*pow(cos(zeta),2); epsilon = pow(m1/m2,2); xi = 1 - 2*pow(epsilon,2) - 2*pow(zeta,2); // Limit for V_ud^R ~ V_ud^L Pmu = 1 - 2*pow((epsilon + zeta),2); if(sqrt(pow(Pmu*xi - Pmuxi,2)) < ZeroDef){ // on 90% confidence limit curve zetaPos[imR] = zeta; break; } } //----------------------------------------------------- // Limit for V_ud^R small for(Int_t izeta = -nzeta+1; izeta <= nzeta-1; izeta++){ zeta = izeta*(Maxzeta/(nzeta-1)); m1 = mL*pow(cos(zeta),2) + MMR[imR]*pow(sin(zeta),2); m2 = mL*pow(sin(zeta),2) + MMR[imR]*pow(cos(zeta),2); epsilon = pow(m1/m2,2); xi = 1 - 2*pow(epsilon,2) - 2*pow(zeta,2); Pmu2 = 1 - 2*pow(zeta,2); if(sqrt(pow(Pmu2*xi - Pmuxi,2)) < ZeroDef){ // on 90% confidence limit curve zeta2Neg[imR] = zeta; break; } else if(izeta == nzeta-1){ // mR too low jmin = imR; } } for(Int_t jzeta = nzeta-1; jzeta >= -nzeta+1; jzeta--){ zeta = jzeta*(Maxzeta/(nzeta-1)); m1 = mL*pow(cos(zeta),2) + MMR[imR]*pow(sin(zeta),2); m2 = mL*pow(sin(zeta),2) + MMR[imR]*pow(cos(zeta),2); epsilon = pow(m1/m2,2); xi = 1 - 2*pow(epsilon,2) - 2*pow(zeta,2); Pmu2 = 1 - 2*pow(zeta,2); if(sqrt(pow(Pmu2*xi - Pmuxi,2)) < ZeroDef){ // on 90% confidence limit curve zeta2Pos[imR] = zeta; break; } } //----------------------------------------------------- } printf("Lower limit on mass of WR from Vud^R ~ V_ud^L is %f\n",MMR[imin+1]); printf("Lower limit on mass of WR from small Vud^R is %f\n",MMR[jmin+1]); imin = imin + 1; jmin = jmin + 1; Int_t nmR2 = nmR - imin - 1; Double_t mR2[nmR2]; Double_t zN[nmR2]; Double_t zP[nmR2]; Int_t nmR3 = nmR - jmin - 1; Double_t mR3[nmR3]; Double_t zN2[nmR3]; Double_t zP2[nmR3]; { Int_t kmR; for(Int_t jmR = 0; jmR < nmR2; jmR++){ kmR = jmR + imin; mR2[jmR] = MMR[kmR]; zN[jmR] = zetaNeg[kmR]; zP[jmR] = zetaPos[kmR]; } } { Int_t kmR; for(Int_t jmR = 0; jmR < nmR3; jmR++){ kmR = jmR + jmin; mR3[jmR] = MMR[kmR]; zN2[jmR] = zeta2Neg[kmR]; zP2[jmR] = zeta2Pos[kmR]; } } TGraph *gTWNeg; gTWNeg = new TGraph(nmR2, mR2, zN); gTWNeg->SetLineWidth(4); gTWNeg->SetLineStyle(2); gTWNeg->SetLineColor(4); TGraph *gTWPos; gTWPos = new TGraph(nmR2, mR2, zP); gTWPos->SetLineWidth(4); gTWPos->SetLineStyle(2); gTWPos->SetLineColor(4); TGraph *gTW2Neg; gTW2Neg = new TGraph(nmR3, mR3, zN2); gTW2Neg->SetLineWidth(3); gTW2Neg->SetLineStyle(1); gTW2Neg->SetLineColor(2); TGraph *gTW2Pos; gTW2Pos = new TGraph(nmR3, mR3, zP2); gTW2Pos->SetLineWidth(3); gTW2Pos->SetLineStyle(1); gTW2Pos->SetLineColor(2); //============================================================================== TH2D *hex1; hex1 = new TH2D("hex1","",6,0.0,1200.,10,-0.1,0.1); hex1->SetStats(kFALSE); hex1->GetXaxis()->SetTitle("Mass of right-handed W (GeV/c^{2})"); hex1->GetXaxis()->CenterTitle(); hex1->GetXaxis()->SetTitleSize(0.05); hex1->GetXaxis()->SetLabelSize(0.05); hex1->GetYaxis()->SetTitle("Left-right mixing angle, #zeta"); hex1->GetYaxis()->CenterTitle(); hex1->GetYaxis()->SetTitleSize(0.05); hex1->GetYaxis()->SetLabelSize(0.05); hex1->GetYaxis()->SetTitleOffset(1.2); TGraph *ex1pos; ex1pos = new TGraph(nBins,mR,zeta1pos); TGraph *ex1neg; ex1neg = new TGraph(nBins,mR,zeta1neg); ex1pos->SetLineWidth(4); ex1neg->SetLineWidth(4); ex1pos->SetLineColor(4); ex1neg->SetLineColor(4); ex1pos->SetLineStyle(2); ex1neg->SetLineStyle(2); TGraph *ex1posB; ex1posB = new TGraph(nBins,mR,zeta1pos); TGraph *ex1negB; ex1negB = new TGraph(nBins,mR,zeta1neg); ex1posB->SetLineWidth(3); ex1negB->SetLineWidth(3); ex1posB->SetLineColor(BkgrdCol); ex1negB->SetLineColor(BkgrdCol); ex1posB->SetLineStyle(3); ex1negB->SetLineStyle(3); TGraph *ex2pos; ex2pos = new TGraph(nBins,mR,zetaGpos); TGraph *ex2neg; ex2neg = new TGraph(nBins,mR,zetaGneg); ex2pos->SetLineWidth(3); ex2neg->SetLineWidth(3); ex2pos->SetLineColor(2); ex2neg->SetLineColor(2); ex2pos->SetLineStyle(1); ex2neg->SetLineStyle(1); TGraph *ex2posB; ex2posB = new TGraph(nBins,mR,zetaGpos); TGraph *ex2negB; ex2negB = new TGraph(nBins,mR,zetaGneg); ex2posB->SetLineWidth(3); ex2negB->SetLineWidth(3); ex2posB->SetLineColor(BkgrdCol); ex2negB->SetLineColor(BkgrdCol); ex2posB->SetLineStyle(3); ex2negB->SetLineStyle(3); Double_t zetax[2] = {0.0,1200}; Double_t zetap[2] = {0.047,0.047}; Double_t zetan[2] = {-0.047,-0.047}; TGraph *gzetap; gzetap = new TGraph(2,zetax,zetap); TGraph *gzetan; gzetan = new TGraph(2,zetax,zetan); gzetap->SetLineWidth(3); gzetan->SetLineWidth(3); gzetap->SetLineColor(1); gzetan->SetLineColor(1); gzetap->SetLineStyle(4); gzetan->SetLineStyle(4); TGraph *gzetapB; gzetapB = new TGraph(2,zetax,zetap); TGraph *gzetanB; gzetanB = new TGraph(2,zetax,zetan); gzetapB->SetLineWidth(3); gzetanB->SetLineWidth(3); gzetapB->SetLineColor(BkgrdCol); gzetanB->SetLineColor(BkgrdCol); gzetapB->SetLineStyle(3); gzetanB->SetLineStyle(3); TPaveText *plPrevPxdp; plPrevPxdp = new TPaveText(600,-0.075,1200,-0.055); plPrevPxdp->SetFillStyle(0); plPrevPxdp->SetBorderSize(0); //plPrevPxdp->SetTextSize(1.0); TText *lPrevPxdp = plPrevPxdp->AddText("Jodidio (P#xi#delta/#rho) V_{ud}^{R} ~ V_{ud}^{L}"); lPrevPxdp->SetTextColor(4); TPaveText *plPrev2Pxdp; plPrev2Pxdp = new TPaveText(500,-0.035,1200,-0.015); plPrev2Pxdp->SetFillStyle(0); plPrev2Pxdp->SetBorderSize(0); //plPrev2Pxdp->SetTextSize(1.0); TText *lPrev2Pxdp = plPrev2Pxdp->AddText("Jodidio (P#xi#delta/#rho) V_{ud}^{R} small"); lPrev2Pxdp->SetTextColor(2); TPaveText *plTWrho; plTWrho = new TPaveText(0,0.035,400,0.055); plTWrho->SetFillStyle(0); plTWrho->SetBorderSize(0); //plTWrho->SetTextSize(1.0); TText *lTWrho = plTWrho->AddText("TWIST (#rho)"); lTWrho->SetTextColor(1); TPaveText *plTWPxi; plTWPxi = new TPaveText(600,-0.06,1200,-0.04); plTWPxi->SetFillStyle(0); plTWPxi->SetBorderSize(0); //plTWPxi->SetTextSize(1.0); TText *lTWPxi = plTWPxi->AddText("TWIST (P#xi) V_{ud}^{R} ~ V_{ud}^{L}"); lTWPxi->SetTextColor(4); TPaveText *plTW2Pxi; plTW2Pxi = new TPaveText(600,-0.025,1200,-0.005); plTW2Pxi->SetFillStyle(0); plTW2Pxi->SetBorderSize(0); //plTW2Pxi->SetTextSize(1.0); TText *lTW2Pxi = plTW2Pxi->AddText("TWIST (P#xi) V_{ud}^{R} small"); lTW2Pxi->SetTextColor(2); TPaveText *plPDGrho; plPDGrho = new TPaveText(0,0.05,400,0.07); plPDGrho->SetFillStyle(0); plPDGrho->SetBorderSize(0); //plPDGrho->SetTextSize(1.0); TText *lPDGrho = plPDGrho->AddText("Derenzo (#rho)"); lPDGrho->SetTextColor(1); Double_t mRx[2] = {mRLimit,mRLimit}; Double_t mRy[2] = {-0.09999,0.09999}; TGraph *gmR; gmR = new TGraph(2,mRx,mRy); gmR->SetLineWidth(2); gmR->SetLineStyle(1); gmR->SetLineColor(12); TPaveText *plcoll; plcoll = new TPaveText(60,-0.06,460,-0.04); plcoll->SetFillStyle(0); plcoll->SetBorderSize(0); //plcoll->SetTextSize(1.0); TText *lcoll = plcoll->AddText("Langacker"); lcoll->SetTextColor(12); lcoll->SetTextAngle(90); TPaveText *pl2coll; pl2coll = new TPaveText(140,-0.06,540,-0.04); pl2coll->SetFillStyle(0); pl2coll->SetBorderSize(0); //pl2coll->SetTextSize(1.0); TText *l2coll = pl2coll->AddText("(Collider)"); l2coll->SetTextColor(12); l2coll->SetTextAngle(90); TCanvas *cPrev; cPrev = new TCanvas("cPrev","Left-right exclusion plot, World limits",600,400); cPrev->SetFillColor(0); cPrev->SetFrameBorderMode(0); cPrev->SetBorderMode(0); cPrev->SetBorderSize(0); cPrev->SetRightMargin(0.04); cPrev->SetLeftMargin(0.12); cPrev->SetTopMargin(0.03); cPrev->SetBottomMargin(0.12); hex1->Draw(); // gmR->Draw("L"); // plcoll->Draw(); // pl2coll->Draw(); gzetap->Draw("L"); gzetan->Draw("L"); ex2pos->Draw("L"); ex2neg->Draw("L"); ex1pos->Draw("L"); ex1neg->Draw("L"); plPrevPxdp->Draw(); plPrev2Pxdp->Draw(); plPDGrho->Draw(); Double_t zetaTWx[2] = {0.0,1200}; Double_t zetaTWp[2] = {0.03,0.03}; Double_t zetaTWn[2] = {-0.03,-0.03}; TGraph *gzetaTW; gzetaTWp = new TGraph(2,zetaTWx,zetaTWp); gzetaTWn = new TGraph(2,zetaTWx,zetaTWn); gzetaTWp->SetLineWidth(3); gzetaTWn->SetLineWidth(3); gzetaTWp->SetLineStyle(4); gzetaTWn->SetLineStyle(4); gzetaTWp->SetLineColor(1); gzetaTWn->SetLineColor(1); TBox *bTW; bTW = new TBox(mRLimit,-0.03,1199.99,0.03); bTW->SetFillColor(152); bTW->SetFillStyle(3004); TCanvas *cTWIST; cTWIST = new TCanvas("cTWIST","Left-right exclusion plot, TWIST limits",600,400); cTWIST->SetFillColor(0); cTWIST->SetFrameBorderMode(0); cTWIST->SetBorderMode(0); cTWIST->SetBorderSize(0); cTWIST->SetRightMargin(0.04); cTWIST->SetLeftMargin(0.12); cTWIST->SetTopMargin(0.03); cTWIST->SetBottomMargin(0.12); hex1->Draw(); // gmR->Draw(); // plcoll->Draw(); // pl2coll->Draw(); gzetapB->Draw("L"); gzetanB->Draw("L"); ex1posB->Draw("L"); ex1negB->Draw("L"); ex2posB->Draw("L"); ex2negB->Draw("L"); gzetaTWp->Draw("L"); gzetaTWn->Draw("L"); plTWrho->Draw(); // plPrevPxdp->Draw(); // plPDGrho->Draw(); // ex2pos->Draw(); // ex2neg->Draw(); // bTW->Draw(); gTW2Neg->Draw("L"); gTW2Pos->Draw("L"); plTW2Pxi->Draw(); gTWNeg->Draw("L"); gTWPos->Draw("L"); plTWPxi->Draw(); }