{ cout << " Executing pT(W) Macro ... " << endl; // Clean up : gROOT->Reset(); //--------------------------------------------// // Make true pT(W) or recoil distribtuions ? // // 1 : pT(W) true // // 2 : Recoil // int switch = 2; // //--------------------------------------------// // Make a canvas to plot the histograms on : c1 = new TCanvas("c1","W pT",0,0,750,850); c1->SetCanvasSize(700.,800.); c1->SetHighLightColor(0); c1->Size(0.,10.); // pad1 = new TPad("pad1"," ",0.005,0.005,0.995,0.995); pad1 = new TPad("pad1"," ",0.00,0.00,1.0,1.0); pad1->SetFillColor(0); pad1->SetGrid(); // Get rid of irritating red line at the border : pad1->SetBorderMode(0.); pad1->Draw(); pad1->cd(); // -----------------------------------------------------------------------------------------// // Set up the resummation calculation graphs : // // =========================================== // // See figure 6 of hep-ph/9908388 // // // // Frixione b-space : // Float_t frixione_b_pt[29],frixione_b_sig[29]; frixione_b_pt[0]=0.16586207E+01; frixione_b_sig[0]=0.59272717E-02; frixione_b_pt[1]=0.23172414E+01; frixione_b_sig[1]=0.48754481E-01; frixione_b_pt[2]=0.29758621E+01; frixione_b_sig[2]=0.72006768E-01; frixione_b_pt[3]=0.36344828E+01; frixione_b_sig[3]=0.83955669E-01; frixione_b_pt[4]=0.42931034E+01; frixione_b_sig[4]=0.88230880E-01; frixione_b_pt[5]=0.49517241E+01; frixione_b_sig[5]=0.87299187E-01; frixione_b_pt[6]=0.56103448E+01; frixione_b_sig[6]=0.83051503E-01; frixione_b_pt[7]=0.62689655E+01; frixione_b_sig[7]=0.76974361E-01; frixione_b_pt[8]=0.69275862E+01; frixione_b_sig[8]=0.70171197E-01; frixione_b_pt[9]=0.75862069E+01; frixione_b_sig[9]=0.63354853E-01; frixione_b_pt[10]=0.82448276E+01; frixione_b_sig[10]=0.56948730E-01; frixione_b_pt[11]=0.89034483E+01; frixione_b_sig[11]=0.51152811E-01; frixione_b_pt[12]=0.95620690E+01; frixione_b_sig[12]=0.46019749E-01; frixione_b_pt[13]=0.10220690E+02; frixione_b_sig[13]=0.41521700E-01; frixione_b_pt[14]=0.10879310E+02; frixione_b_sig[14]=0.37592348E-01; frixione_b_pt[15]=0.11537931E+02; frixione_b_sig[15]=0.34155864E-01; frixione_b_pt[16]=0.12196552E+02; frixione_b_sig[16]=0.31141554E-01; frixione_b_pt[17]=0.12855172E+02; frixione_b_sig[17]=0.28488455E-01; frixione_b_pt[18]=0.13513793E+02; frixione_b_sig[18]=0.26145343E-01; frixione_b_pt[19]=0.14172414E+02; frixione_b_sig[19]=0.24071155E-01; frixione_b_pt[20]=0.14831034E+02; frixione_b_sig[20]=0.22228960E-01; frixione_b_pt[21]=0.15489655E+02; frixione_b_sig[21]=0.20585669E-01; frixione_b_pt[22]=0.16148276E+02; frixione_b_sig[22]=0.19109119E-01; frixione_b_pt[23]=0.16806897E+02; frixione_b_sig[23]=0.17776522E-01; frixione_b_pt[24]=0.17465517E+02; frixione_b_sig[24]=0.16567429E-01; frixione_b_pt[25]=0.18124138E+02; frixione_b_sig[25]=0.15466046E-01; frixione_b_pt[26]=0.18782759E+02; frixione_b_sig[26]=0.14460502E-01; frixione_b_pt[27]=0.19441379E+02; frixione_b_sig[27]=0.13541597E-01; frixione_b_pt[28]=0.20924138E+02; frixione_b_sig[28]=0.11744699E-01; // Fix up the end point, or the graph gets truncated to the last point before xmax : Float_t end_sig = (((frixione_b_sig[28]-frixione_b_sig[27])/(frixione_b_pt[28]-frixione_b_pt[27]))* (20.0-frixione_b_pt[27]))+frixione_b_sig[27]; frixione_b_pt[28]=0.19999999E+02; frixione_b_sig[28]=end_sig; // // Frixione b-space : Float_t frixione_qt_pt[12],frixione_qt_sig[12]; frixione_qt_pt[0]=0.24200000E+01; frixione_qt_sig[0]=0.55357360E-01; frixione_qt_pt[1]=0.35100000E+01; frixione_qt_sig[1]=0.73694073E-01; frixione_qt_pt[2]=0.46000000E+01; frixione_qt_sig[2]=0.67505679E-01; frixione_qt_pt[3]=0.56900000E+01; frixione_qt_sig[3]=0.58401324E-01; frixione_qt_pt[4]=0.67800000E+01; frixione_qt_sig[4]=0.49986452E-01; frixione_qt_pt[5]=0.78700000E+01; frixione_qt_sig[5]=0.42782267E-01; frixione_qt_pt[6]=0.89600000E+01; frixione_qt_sig[6]=0.36794401E-01; frixione_qt_pt[7]=0.10050000E+02; frixione_qt_sig[7]=0.31784513E-01; frixione_qt_pt[8]=0.10783673E+02; frixione_qt_sig[8]=0.28899015E-01; frixione_qt_pt[9]=0.14044898E+02; frixione_qt_sig[9]=0.19478832E-01; frixione_qt_pt[10]=0.17306122E+02; frixione_qt_sig[10]=0.13649609E-01; frixione_qt_pt[11]=0.20567347E+02; frixione_qt_sig[11]=0.98546730E-02; end_sig = (((frixione_qt_sig[11]-frixione_qt_sig[10])/(frixione_qt_pt[11]-frixione_qt_pt[10]))* (20.0-frixione_qt_pt[10]))+frixione_qt_sig[10]; frixione_qt_pt[11]=0.19999999E+02; frixione_qt_sig[11]=end_sig; // // Kellis : Float_t kellis_pt[31],kellis_sig[31]; kellis_pt[0]=0.10000000E+01; kellis_sig[0]=-0.81667097E-01; kellis_pt[1]=0.10000000E+01; kellis_sig[1]=-0.61703302E-01; kellis_pt[2]=0.16586207E+01; kellis_sig[2]=0.55505642E-01; kellis_pt[3]=0.23172414E+01; kellis_sig[3]=0.86763361E-01; kellis_pt[4]=0.29758621E+01; kellis_sig[4]=0.91896225E-01; kellis_pt[5]=0.36344828E+01; kellis_sig[5]=0.88114481E-01; kellis_pt[6]=0.42931034E+01; kellis_sig[6]=0.81549047E-01; kellis_pt[7]=0.49517241E+01; kellis_sig[7]=0.74314346E-01; kellis_pt[8]=0.56103448E+01; kellis_sig[8]=0.67350075E-01; kellis_pt[9]=0.62689655E+01; kellis_sig[9]=0.61007843E-01; kellis_pt[10]=0.69275862E+01; kellis_sig[10]=0.55263443E-01; kellis_pt[11]=0.75862069E+01; kellis_sig[11]=0.50169451E-01; kellis_pt[12]=0.82448276E+01; kellis_sig[12]=0.45646776E-01; kellis_pt[13]=0.89034483E+01; kellis_sig[13]=0.41636267E-01; kellis_pt[14]=0.95620690E+01; kellis_sig[14]=0.38073729E-01; kellis_pt[15]=0.10220690E+02; kellis_sig[15]=0.34900311E-01; kellis_pt[16]=0.10879310E+02; kellis_sig[16]=0.32065707E-01; kellis_pt[17]=0.11537931E+02; kellis_sig[17]=0.29527584E-01; kellis_pt[18]=0.12196552E+02; kellis_sig[18]=0.27247202E-01; kellis_pt[19]=0.12855172E+02; kellis_sig[19]=0.25195494E-01; kellis_pt[20]=0.13513793E+02; kellis_sig[20]=0.23346598E-01; kellis_pt[21]=0.14172414E+02; kellis_sig[21]=0.21672090E-01; kellis_pt[22]=0.14831034E+02; kellis_sig[22]=0.20151222E-01; kellis_pt[23]=0.15489655E+02; kellis_sig[23]=0.18766145E-01; kellis_pt[24]=0.16148276E+02; kellis_sig[24]=0.17509060E-01; kellis_pt[25]=0.16806897E+02; kellis_sig[25]=0.16359469E-01; kellis_pt[26]=0.17465517E+02; kellis_sig[26]=0.15305782E-01; kellis_pt[27]=0.18124138E+02; kellis_sig[27]=0.14337888E-01; kellis_pt[28]=0.18782759E+02; kellis_sig[28]=0.13446943E-01; kellis_pt[29]=0.19441379E+02; kellis_sig[29]=0.12625245E-01; kellis_pt[30]=0.20100000E+02; kellis_sig[30]=0.11866764E-01; end_sig = (((kellis_sig[30]-kellis_sig[29])/(kellis_pt[30]-kellis_pt[29]))* (20.0-kellis_pt[29]))+kellis_sig[29]; kellis_pt[30]=0.19999999E+02; kellis_sig[30]=end_sig; // grf_b = new TGraph(29,frixione_b_pt,frixione_b_sig); grf_qt = new TGraph(12,frixione_qt_pt,frixione_qt_sig); grk = new TGraph(31,kellis_pt,kellis_sig); // End of resummation graph setting. // // -----------------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------------// // Open the WGRAD + PYTHIA files : // // Default kT : TFile wgrad_kT_DefaultFile("wgrad_mw80.4_ktdefault.root"); // Go to the directory with the same name as the analysis module : wgrad_kT_DefaultFile->cd("WGRAD_HistModule"); // wgradFile->ls(); // W pT distribution due to Pythia initial state parton showers : TH1F* pythia_ktdefault_ptw = (TH1F*) gROOT.FindObject("W pT (GeV)"); // W recoil after cuts : TH1F *pythia_ktdefault_recoil = (TH1F*) gROOT.FindObject("W recoil (GeV)"); // kT sigma = 4.0 GeV : TFile wgrad_kT_4_0_File("wgrad_mw80.4_kt4.0.root"); // Go to the directory with the same name as the analysis module : wgrad_kT_4_0_File->cd("WGRAD_HistModule"); // wgradFile->ls(); // W pT distribution due to Pythia initial state parton showers : TH1F *pythia_kt4_0_ptw = (TH1F*) gROOT.FindObject("W pT (GeV)"); // W recoil after cuts : TH1F *pythia_kt4_0_recoil = (TH1F*) gROOT.FindObject("W recoil (GeV)"); // -----------------------------------------------------------------------------------------// if (switch==1) { // -----------------------------------------------------------------------------------------// // Plot true pT(W) distributions : // // ------------------------------- // // Create a 2-d histogram to define the range : // if (hr) delete hr; hr = new TH2F("hr","W Boson Transverse Momentum Distribution",20,0.0,20.0,15,0.0,0.1); // hr = new TH2F("hr"," ",20,0.0,20.0,15,0.0,0.1); hr->SetLabelSize(0.02,"X"); hr->SetLabelSize(0.02,"Y"); hr->SetXTitle("pT(W) (GeV)"); hr->SetYTitle(" "); // Get the axis to set size and other features : TAxis* xaxis = hr->GetXaxis(); xaxis->SetTitleSize(0.03); // Finally draw the 2D histogram : hr->Draw(); // title = new TPaveLabel(0.1,0.94,0.9,1.0,"Title"); // title->SetFillColor(16); // title->Draw(); // -----------------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------------// // Open file with CDF parameterisation of pT(W) based on the measurement of pT(Z) and the // // theoretical ratio pT(W)/pT(Z) : // TFile cdfFile("pte_spread.root"); TH1F *CDF_ptw = (TH1F*) h999; // -----------------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------------// // Plot pT(W) : CDF_ptw->SetFillColor(4); CDF_ptw->SetAxisRange(0.,19.9999); CDF_ptw->SetNormFactor(1.0); CDF_ptw->Draw("E3same"); grf_b->SetLineColor(1); grf_b->SetLineWidth(4); grf_b->SetLineStyle(3); grf_b->SetMarkerColor(1); grf_b->SetMarkerSize(0.1); grf_b->SetMarkerStyle(21); grf_b->Draw("CP"); grf_qt->SetLineColor(1); grf_qt->SetLineWidth(4); grf_qt->SetLineStyle(1); grf_qt->SetMarkerColor(1); grf_qt->SetMarkerSize(0.1); grf_qt->SetMarkerStyle(21); grf_qt->Draw("CP"); grk->SetLineColor(1); grk->SetLineWidth(4); grk->SetLineStyle(2); grk->SetMarkerColor(1); grk->SetMarkerSize(0.1); grk->SetMarkerStyle(21); grk->Draw("CP"); pythia_kt4_0_ptw->SetNormFactor(1.75); pythia_kt4_0_ptw->SetLineColor(2); pythia_kt4_0_ptw->SetLineWidth(4); pythia_kt4_0_ptw->Draw("same"); pythia_ktdefault_ptw->SetNormFactor(1.5); pythia_ktdefault_ptw->SetLineColor(1); pythia_ktdefault_ptw->SetLineWidth(4); pythia_ktdefault_ptw->Draw("same"); // Label the plot : TText *t = new TText(); t->SetTextFont(62); t->SetTextColor(1); t->SetTextSize(0.03); // Horizontal : left edge alignment. // Vertical : centre alignment. t->SetTextAlign(12); t->DrawText(12.,0.092,"Frixione qT-space"); t->DrawText(12.,0.087,"Frixione b-space"); t->DrawText(12.,0.082,"Ellis"); t->DrawText(12.,0.077,"Pythia (0.44 GeV kT)"); t->DrawText(12.,0.072,"Pythia (4.0 GeV kT)"); t->DrawText(12.,0.067,"From pT(Z) data"); TLine *tl = new TLine(); tl->SetLineWidth(4); tl->SetLineColor(1); tl->SetLineStyle(1); tl->DrawLine(10.0,0.092,11.5,0.092); tl->SetLineStyle(3); tl->DrawLine(10.0,0.087,11.5,0.087); tl->SetLineStyle(2); tl->DrawLine(10.0,0.082,11.5,0.082); tl->SetLineStyle(1); tl->DrawLine(10.0,0.076,10.5,0.076); tl->DrawLine(10.5,0.076,10.5,0.079); tl->DrawLine(10.5,0.079,11.0,0.079); tl->DrawLine(11.0,0.079,11.0,0.076); tl->DrawLine(11.0,0.076,11.5,0.076); tl->SetLineColor(2); tl->DrawLine(10.0,0.071,10.5,0.071); tl->DrawLine(10.5,0.071,10.5,0.074); tl->DrawLine(10.5,0.074,11.0,0.074); tl->DrawLine(11.0,0.074,11.0,0.071); tl->DrawLine(11.0,0.071,11.5,0.071); tl->SetLineColor(1); tl->SetLineWidth(14); tl->SetLineColor(4); tl->DrawLine(10.0,0.067,11.5,0.067); // -----------------------------------------------------------------------------------------// } else if (switch==2) { // -----------------------------------------------------------------------------------------// // Plot true pT(W) distributions : // // ------------------------------- // // Create a 2-d histogram to define the range : // if (hr) delete hr; cout << " Recoil distributions : " << endl; hr = new TH2F("hr","W Boson Recoil Distributions",20,0.0,20.0,15,0.0,900); // hr = new TH2F("hr"," ",20,0.0,20.0,15,0.0,0.1); hr->SetLabelSize(0.02,"X"); hr->SetLabelSize(0.02,"Y"); hr->SetXTitle("U (GeV)"); hr->SetYTitle("Number of Events "); // Get the axis to set size and other features : TAxis* xaxis = hr->GetXaxis(); xaxis->SetTitleSize(0.03); TAxis* yaxis = hr->GetYaxis(); yaxis->SetTitleSize(0.03); yaxis->SetTitleOffset(1.5); // Finally draw the 2D histogram : hr->Draw(); // title = new TPaveLabel(0.1,0.94,0.9,1.0,"Title"); // title->SetFillColor(16); // title->Draw(); // -----------------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------------// // Open file with CDF W->mu nu recoil data : // TFile cdfFile("paper_wmunu_ptw.root"); // cdfFile->ls(); TH1F *CDF_recoil = (TH1F*) h1080; // -----------------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------------// // Plot the recoil distributions : // // Find number of events for normalisation purposes : double integral = CDF_recoil->GetSumOfWeights(); cout << " Integral of recoil data histogram = " << integral << endl; // Normalise the WGRAD + Pythia histograms to the data : pythia_ktdefault_recoil->SetNormFactor(integral); pythia_kt4_0_recoil->SetNormFactor(integral); pythia_ktdefault_recoil->SetLineColor(1); pythia_ktdefault_recoil->SetLineWidth(4); pythia_ktdefault_recoil->SetLineStyle(1); pythia_ktdefault_recoil->Draw("same"); pythia_kt4_0_recoil->SetLineColor(2); pythia_kt4_0_recoil->SetLineWidth(4); pythia_kt4_0_recoil->SetLineStyle(1); pythia_kt4_0_recoil->Draw("same"); CDF_recoil->SetLineWidth(2); CDF_recoil->SetLineColor(4); CDF_recoil->SetMarkerColor(4); CDF_recoil->SetMarkerSize(1.0); CDF_recoil->SetMarkerStyle(25); CDF_recoil->Draw("E1same"); // Label the plot : TLatex* lat = new TLatex(); lat->SetTextFont(62); lat->SetTextColor(1); lat->SetTextSize(0.03); // Horizontal : left edge alignment. // Vertical : centre alignment. lat->SetTextAlign(12); lat->DrawLatex(12.2,750.,"CDF Run 1B W #rightarrow #mu#nu"); lat->DrawLatex(12.2,650.,"Pythia (0.44 GeV kT)"); lat->DrawLatex(12.2,550.,"Pythia (4.0 GeV kT)"); TLine *tl = new TLine(); tl->SetLineWidth(4); tl->SetLineColor(1); tl->SetLineStyle(1); tl->DrawLine(10.2,650.,11.8,650.); tl->SetLineColor(2); tl->DrawLine(10.2,550.,11.8,550.); TMarker *m1 = new TMarker(); m1->SetMarkerColor(4); m1->SetMarkerSize(1.0); m1->SetMarkerStyle(25); m1->DrawMarker(11.0,750.); // -----------------------------------------------------------------------------------------// } }