zdemo.C

Go to the documentation of this file.
00001 // This macro is an example of graphs in log scales with annotations.
00002 //
00003 //  The  begin_html <a href="gif/zdemo.gif" >presented results</a> end_html
00004 //  are predictions of invariant cross-section of Direct Photons produced
00005 //  at RHIC energies, based on the universality of scaling function H(z).
00006 //
00007 //Authors: Michael Tokarev and Elena Potrebenikova (JINR Dubna)
00008 //
00009 //  These Figures were published in JINR preprint E2-98-64, Dubna,
00010 //  1998 and submitted to CPC.
00011 //
00012 // Note that the way greek symbols, super/subscripts are obtained
00013 // illustrate the current limitations of Root in this area.
00014 //
00015 
00016 #include "TCanvas.h"
00017 #include "TPad.h"
00018 #include "TPaveLabel.h"
00019 #include "TLatex.h"
00020 #include "TGraph.h"
00021 #include "TFrame.h"
00022 
00023 const Int_t NMAX = 20;
00024 Int_t NLOOP;
00025 Float_t Z[NMAX], HZ[NMAX], PT[NMAX], INVSIG[NMAX];
00026 
00027 void hz_calc(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t);
00028 
00029 //__________________________________________________________________
00030 void zdemo()
00031 {
00032 
00033    Float_t energ;
00034    Float_t dens;
00035    Float_t tgrad;
00036    Float_t ptmin;
00037    Float_t ptmax;
00038    Float_t delp;
00039 
00040    // Create a new canvas.
00041    TCanvas *c1 = new TCanvas("zdemo",
00042       "Monte Carlo Study of Z scaling",10,40,800,600);
00043    c1->Range(0,0,25,18);
00044    c1->SetFillColor(40);
00045 
00046    TPaveLabel *pl = new TPaveLabel(1,16.3,24,17.5,"Z-scaling of \
00047       Direct Photon Productions in pp Collisions at RHIC Energies","br");
00048    pl->SetFillColor(18);
00049    pl->SetTextFont(32);
00050    pl->SetTextColor(49);
00051    pl->Draw();
00052 
00053    TLatex *t = new TLatex();
00054    t->SetTextFont(32);
00055    t->SetTextColor(1);
00056    t->SetTextSize(0.03);
00057    t->SetTextAlign(12);
00058    t->DrawLatex(3.1,15.5,"M.Tokarev, E.Potrebenikova ");
00059    t->DrawLatex(14.,15.5,"JINR preprint E2-98-64, Dubna, 1998 ");
00060 
00061    TPad *pad1 = new TPad("pad1","This is pad1",0.02,0.02,0.48,0.83,33);
00062    TPad *pad2 = new TPad("pad2","This is pad2",0.52,0.02,0.98,0.83,33);
00063 
00064    pad1->Draw();
00065    pad2->Draw();
00066 
00067 //
00068 // Cross-section of direct photon production in pp collisions 
00069 // at 500 GeV vs Pt
00070 //
00071    energ = 63;
00072    dens  = 1.766;
00073    tgrad = 90.;
00074    ptmin = 4.;
00075    ptmax = 24.;
00076    delp  = 2.;
00077    hz_calc(energ, dens, tgrad, ptmin, ptmax, delp);
00078    pad1->cd();
00079    pad1->Range(-0.255174,-19.25,2.29657,-6.75);
00080    pad1->SetLogx();
00081    pad1->SetLogy();
00082 
00083    // create a 2-d histogram to define the range
00084    pad1->DrawFrame(1,1e-18,110,1e-8);
00085    pad1->GetFrame()->SetFillColor(19);
00086    t = new TLatex();
00087    t->SetNDC();
00088    t->SetTextFont(62);
00089    t->SetTextColor(36);
00090    t->SetTextSize(0.08);
00091    t->SetTextAlign(12);
00092    t->DrawLatex(0.6,0.85,"p - p");
00093 
00094    t->SetTextSize(0.05);
00095    t->DrawLatex(0.6,0.79,"Direct #gamma");
00096    t->DrawLatex(0.6,0.75,"#theta = 90^{o}");
00097 
00098    t->DrawLatex(0.20,0.45,"Ed^{3}#sigma/dq^{3}");
00099    t->DrawLatex(0.18,0.40,"(barn/Gev^{2})");
00100 
00101    t->SetTextSize(0.045);
00102    t->SetTextColor(kBlue);
00103    t->DrawLatex(0.22,0.260,"#sqrt{s} = 63(GeV)");
00104    t->SetTextColor(kRed);
00105    t->DrawLatex(0.22,0.205,"#sqrt{s} = 200(GeV)");
00106    t->SetTextColor(6);
00107    t->DrawLatex(0.22,0.15,"#sqrt{s} = 500(GeV)");
00108 
00109    t->SetTextSize(0.05);
00110    t->SetTextColor(1);
00111    t->DrawLatex(0.6,0.06,"q_{T} (Gev/c)");
00112 
00113    TGraph *gr1 = new TGraph(NLOOP,PT,INVSIG);
00114 
00115    gr1->SetLineColor(38);
00116    gr1->SetMarkerColor(kBlue);
00117    gr1->SetMarkerStyle(21);
00118    gr1->SetMarkerSize(1.1);
00119    gr1->Draw("LP");
00120 
00121 //
00122 // Cross-section of direct photon production in pp collisions 
00123 // at 200 GeV vs Pt
00124 //
00125 
00126    energ = 200;
00127    dens  = 2.25;
00128    tgrad = 90.;
00129    ptmin = 4.;
00130    ptmax = 64.;
00131    delp  = 6.;
00132    hz_calc(energ, dens, tgrad, ptmin, ptmax, delp);
00133 
00134    TGraph *gr2 = new TGraph(NLOOP,PT,INVSIG);
00135    gr2->SetLineColor(38);
00136    gr2->SetMarkerColor(kRed);
00137    gr2->SetMarkerStyle(29);
00138    gr2->SetMarkerSize(1.5);
00139    gr2->Draw("LP");
00140 
00141 //
00142 // Cross-section of direct photon production in pp collisions 
00143 // at 500 GeV vs Pt
00144 //
00145    energ = 500;
00146    dens  = 2.73;
00147    tgrad = 90.;
00148    ptmin = 4.;
00149    ptmax = 104.;
00150    delp  = 10.;
00151    hz_calc(energ, dens, tgrad, ptmin, ptmax, delp);
00152 
00153    TGraph *gr3 = new TGraph(NLOOP,PT,INVSIG);
00154 
00155    gr3->SetLineColor(38);
00156    gr3->SetMarkerColor(6);
00157    gr3->SetMarkerStyle(8);
00158    gr3->SetMarkerSize(1.1);
00159    gr3->Draw("LP");
00160 
00161    Float_t *dum = 0;
00162    TGraph *graph = new TGraph(1,dum,dum);
00163    graph->SetMarkerColor(kBlue);
00164    graph->SetMarkerStyle(21);
00165    graph->SetMarkerSize(1.1);
00166    graph->SetPoint(0,1.7,1.e-16);
00167    graph->Draw("LP");
00168 
00169    graph = new TGraph(1,dum,dum);
00170    graph->SetMarkerColor(kRed);
00171    graph->SetMarkerStyle(29);
00172    graph->SetMarkerSize(1.5);
00173    graph->SetPoint(0,1.7,2.e-17);
00174    graph->Draw("LP");
00175 
00176    graph = new TGraph(1,dum,dum);
00177    graph->SetMarkerColor(6);
00178    graph->SetMarkerStyle(8);
00179    graph->SetMarkerSize(1.1);
00180    graph->SetPoint(0,1.7,4.e-18);
00181    graph->Draw("LP");
00182 
00183    pad2->cd();
00184    pad2->Range(-0.43642,-23.75,3.92778,-6.25);
00185    pad2->SetLogx();
00186    pad2->SetLogy();
00187 
00188    pad2->DrawFrame(1,1e-22,3100,1e-8);
00189    pad2->GetFrame()->SetFillColor(19);
00190 
00191    TGraph *gr = new TGraph(NLOOP,Z,HZ);
00192    gr->SetTitle("HZ vs Z");
00193    gr->SetFillColor(19);
00194    gr->SetLineColor(9);
00195    gr->SetMarkerColor(50);
00196    gr->SetMarkerStyle(29);
00197    gr->SetMarkerSize(1.5);
00198    gr->Draw("LP");
00199 
00200    t = new TLatex();
00201    t->SetNDC();
00202    t->SetTextFont(62);
00203    t->SetTextColor(36);
00204    t->SetTextSize(0.08);
00205    t->SetTextAlign(12);
00206    t->DrawLatex(0.6,0.85,"p - p");
00207 
00208    t->SetTextSize(0.05);
00209    t->DrawLatex(0.6,0.79,"Direct #gamma");
00210    t->DrawLatex(0.6,0.75,"#theta = 90^{o}");
00211 
00212    t->DrawLatex(0.70,0.55,"H(z)");
00213    t->DrawLatex(0.68,0.50,"(barn)");
00214 
00215    t->SetTextSize(0.045);
00216    t->SetTextColor(46);
00217    t->DrawLatex(0.20,0.30,"#sqrt{s}, GeV");
00218    t->DrawLatex(0.22,0.26,"63");
00219    t->DrawLatex(0.22,0.22,"200");
00220    t->DrawLatex(0.22,0.18,"500");
00221 
00222    t->SetTextSize(0.05);
00223    t->SetTextColor(1);
00224    t->DrawLatex(0.88,0.06,"z");
00225 
00226    c1->Modified();
00227    c1->Update();
00228 }
00229 
00230 void hz_calc(Float_t ENERG, Float_t DENS, Float_t TGRAD, Float_t PTMIN, 
00231    Float_t PTMAX, Float_t DELP)
00232 {
00233   Int_t I;
00234 
00235   Float_t GM1  = 0.00001;
00236   Float_t GM2  = 0.00001;
00237   Float_t A1   = 1.;
00238   Float_t A2   = 1.;
00239   Float_t ALX  = 2.;
00240   Float_t BETA = 1.;
00241   Float_t KF1  = 8.E-7;
00242   Float_t KF2  = 5.215;
00243 
00244   Float_t MN = 0.9383;
00245   Float_t DEGRAD=0.01745329;
00246 
00247   Float_t EB1, EB2, PB1, PB2, MB1, MB2, M1, M2;
00248   Float_t DNDETA;
00249 
00250   Float_t P1P2, P1P3, P2P3;
00251   Float_t Y1, Y2, S, SMIN,  SX1,  SX2, SX1X2, DELM;
00252   Float_t Y1X1,  Y1X2,   Y2X1,   Y2X2,   Y2X1X2,   Y1X1X2;
00253   Float_t KX1, KX2,  ZX1, ZX2;
00254   Float_t H1;
00255 
00256   Float_t PTOT, THET, ETOT, X1, X2;
00257 
00258   DNDETA= DENS;
00259   MB1   = MN*A1;
00260   MB2   = MN*A2;
00261   EB1   = ENERG/2.*A1;
00262   EB2   = ENERG/2.*A2;
00263   M1    = GM1;
00264   M2    = GM2;
00265   THET  = TGRAD*DEGRAD;
00266   NLOOP = (PTMAX-PTMIN)/DELP;
00267 
00268   for (I=0; I<NLOOP;I++) {
00269      PT[I]=PTMIN+I*DELP;
00270      PTOT = PT[I]/sin(THET);
00271 
00272      ETOT = sqrt(M1*M1 + PTOT*PTOT);
00273      PB1  = sqrt(EB1*EB1 - MB1*MB1);
00274      PB2  = sqrt(EB2*EB2 - MB2*MB2);
00275      P2P3 = EB2*ETOT+PB2*PTOT*cos(THET);
00276      P1P2 = EB2*EB1+PB2*PB1;
00277      P1P3 = EB1*ETOT-PB1*PTOT*cos(THET);
00278 
00279      X1 = P2P3/P1P2;
00280      X2 = P1P3/P1P2;
00281      Y1 = X1+sqrt(X1*X2*(1.-X1)/(1.-X2));
00282      Y2 = X2+sqrt(X1*X2*(1.-X2)/(1.-X1));
00283 
00284      S    = (MB1*MB1)+2.*P1P2+(MB2*MB2);
00285      SMIN = 4.*((MB1*MB1)*(X1*X1) +2.*X1*X2*P1P2+(MB2*MB2)*(X2*X2));
00286      SX1  = 4.*( 2*(MB1*MB1)*X1+2*X2*P1P2);
00287      SX2  = 4.*( 2*(MB2*MB2)*X2+2*X1*P1P2);
00288      SX1X2= 4.*(2*P1P2);
00289      DELM = pow((1.-Y1)*(1.-Y2),ALX);
00290 
00291      Z[I] = sqrt(SMIN)/DELM/pow(DNDETA,BETA);
00292 
00293      Y1X1  = 1. +X2*(1-2.*X1)/(2.*(Y1-X1)*(1.-X2));
00294      Y1X2  =     X1*(1-X1)/(2.*(Y1-X1)*(1.-X2)*(1.-X2));
00295      Y2X1  =     X2*(1-X2)/(2.*(Y2-X2)*(1.-X1)*(1.-X1));
00296      Y2X2  = 1. +X1*(1-2.*X2)/(2.*(Y2-X2)*(1.-X1));
00297      Y2X1X2= Y2X1*( (1.-2.*X2)/(X2*(1-X2)) -( Y2X2-1.)/(Y2-X2));
00298      Y1X1X2= Y1X2*( (1.-2.*X1)/(X1*(1-X1)) -( Y1X1-1.)/(Y1-X1));
00299 
00300      KX1=-DELM*(Y1X1*ALX/(1.-Y1) + Y2X1*ALX/(1.-Y2));
00301      KX2=-DELM*(Y2X2*ALX/(1.-Y2) + Y1X2*ALX/(1.-Y1));
00302      ZX1=Z[I]*(SX1/(2.*SMIN)-KX1/DELM);
00303      ZX2=Z[I]*(SX2/(2.*SMIN)-KX2/DELM);
00304 
00305      H1=ZX1*ZX2;
00306 
00307      HZ[I]=KF1/pow(Z[I],KF2);
00308      INVSIG[I]=(HZ[I]*H1*16.)/S;
00309 
00310   }
00311 }

Generated on Tue Jul 5 15:44:22 2011 for ROOT_528-00b_version by  doxygen 1.5.1