Double_t fuPtVsY(Double_t *x, Double_t *par) { // function y=fu gives p_t vs lab. rapidity // x[0] - rapidity in the lab. // par[0]=Pcm, par[1]=mass, par[2]=Ycm Double_t Ecm,VL,PL,val; Ecm=TMath::Sqrt(par[0]*par[0]+par[1]*par[1]); VL=TMath::TanH(x[0]-par[2]); PL=VL*Ecm; val=0; if(TMath::Abs(PL)GetEntries(); printf(" Number of nparticles per event = %i\n",nparticles/nEvents); if (nparticles <= 0) return 0; //Loop over tracks (particles) for (Int_t i=0;iGetEvent(i); geantCode=h888->GetLeaf("Idpart")->GetValue(); hID->Fill(geantCode); theta=h888->GetLeaf("Theta")->GetValue(); thedeg=theta; phi=h888->GetLeaf("Phi")->GetValue(); p=h888->GetLeaf("P")->GetValue(); if(p!=0) { // NOT target spectators pt=p*TMath::Sin(theta*TMath::DegToRad()); pz=p*TMath::Cos(theta*TMath::DegToRad()); px=pt*TMath::Cos(phi*TMath::DegToRad()); py=pt*TMath::Sin(phi*TMath::DegToRad()); e=h888->GetLeaf("E")->GetValue(); yrap=1.e30; if(TMath::Abs(e != pz)) yrap=0.5*TMath::Log((e+pz)/(e-pz)); if(geantCode==1) { //gamma hGammaP->Fill(p); hGammaTheta->Fill(theta); hGammaPvsTheta->Fill(theta,p); hGammaPt->Fill(pt); hGammaY->Fill(yrap); hGammaPtVsY->Fill(yrap,pt); if(TMath::Abs(yrap-yCM)Fill(pt,1.0/pt); } } else { nTagSpect++; } //end of if(p!=0) { // NOT target spectators } //end of for (Int_t i=0;iSetLogy(); gPad->SetGridy(); gPad->SetGridx(); hID->SetLineStyle(1); hID->SetLineWidth(3); hID->SetXTitle("GEANT code"); hID->SetYTitle("multiplicity per event"); hID->Scale(1./nEvents); hID->Draw(); xCanvas+=deltaX; yCanvas+=deltaY; TCanvas *cGammaPY = new TCanvas("cGammaPY","analysis of ECAL hits",xCanvas,yCanvas,700,700); // gStyle->SetOptStat(0); cGammaPY->Divide(2,2); cGammaPY->cd(1); hGammaTheta->SetLineStyle(1); hGammaTheta->SetLineWidth(3); hGammaTheta->SetYTitle("N (1/event/bin)"); hGammaTheta->SetXTitle("#theta (deg.)"); hGammaTheta->Scale(1./nEvents); hGammaTheta->Draw(); cGammaPY->cd(2); gPad->SetLogy(); hGammaPt->SetLineStyle(1); hGammaPt->SetLineWidth(3); hGammaPt->SetYTitle("N (1/event/bin)"); hGammaPt->SetXTitle("p_{t} (GeV/c)"); hGammaPt->Scale(1./nEvents); hGammaPt->Draw(); cGammaPY->cd(3); gPad->SetLogy(); hGammaP->SetLineStyle(1); hGammaP->SetLineWidth(3); hGammaP->SetYTitle("N (1/event/bin)"); hGammaP->SetXTitle("p (GeV/c)"); hGammaP->Scale(1./nEvents); hGammaP->Draw(); cGammaPY->cd(4); hGammaY->SetLineStyle(1); hGammaY->SetLineWidth(3); hGammaY->SetYTitle("N (1/event/bin)"); hGammaY->SetXTitle("y"); hGammaY->Scale(1./nEvents); hGammaY->Draw(); gStyle->SetPalette(1); xCanvas+=deltaX; yCanvas+=deltaY; TCanvas *cGammaPvsTheta = new TCanvas("cGammaPvsTheta","analysis of ECAL hits",xCanvas,yCanvas,700,700); hGammaPvsTheta->SetXTitle("#theta (deg.)"); hGammaPvsTheta->SetYTitle("p (GeV/c)"); hGammaPvsTheta->Scale(1./nEvents); hGammaPvsTheta->Draw("COLZ"); gPad->SetGridx(); gPad->SetGridy(); Float_t mass=0.938,Elab,Plab,s,beta,gamma,Pcm,Ycm,Ecm; Float_t xmin,xmax; xmin=thetaMin; xmax=thetaMax; Float_t Tlab0=25.,Plab0,Plab1,Plab2,PlabP,PlabT,ElabP,ElabT,PcmP,ThetaLabForThetaCM90; Float_t massP,massT,massGamma=0.0,massPi=0.140,massRho0=0.770,massKstar0=0.892,massLambda=1.116,massDelta=1.232,massRes; massRes=massGamma; // massRes=massPi; // massRes=massRho0; // massRes=massKstar0; // massRes=mass; // massRes=massDelta; cout<<" mass(GeV) of particle = "<SetParameters(beta,gamma,Pcm,massRes); f00->SetParNames("beta","gamma","Pcm","mass"); Int_t iColor; iColor=n+m-1; if(iColor==6-1) iColor=6; f00->SetLineColor(iColor); f00->SetLineStyle(1); f00->SetLineWidth(2); f00->DrawCopy("same"); } // end of for(Int_t m=2;m<3;m++) { } // end of for(Int_t n=2;n<3;n++) { // gStyle->SetPalette(1); xCanvas+=deltaX; yCanvas+=deltaY; TCanvas *cGammaPtVsY = new TCanvas("cGammaPtVsY","analysis of ECAL hits",xCanvas,yCanvas,700,700); hGammaPtVsY->SetXTitle("y"); hGammaPtVsY->SetYTitle("p_{t} (GeV/c)"); hGammaPtVsY->Scale(1./nEvents); hGammaPtVsY->Draw("COLZ"); gPad->SetGridx(); gPad->SetGridy(); xmin=yMin,xmax=yMax; for(Int_t n=1;n<4;n++) { //number of nucleons in proj. massP=n*mass; PlabP=n*Plab1; ElabP=TMath::Sqrt(PlabP*PlabP+massP*massP); for(Int_t m=1;m<4;m++) { //number of nucleons in targ. cout<<" "<SetParameters(Pcm,massRes,Ycm); f00->SetParNames("beta","gamma","Pcm","mass"); Int_t iColor; iColor=n+m-1; if(iColor==6-1) iColor=6; f00->SetLineColor(iColor); f00->SetLineStyle(1); f00->SetLineWidth(2); f00->DrawCopy("same"); } // end of for(Int_t m=2;m<3;m++) { } // end of for(Int_t n=2;n<3;n++) { xCanvas+=deltaX; yCanvas+=deltaY; TCanvas *cGraph = new TCanvas("cGraph","analysis of ECAL hits",xCanvas,yCanvas,700,700); gPad->SetLogy(); TLegend *legD = new TLegend(0.5,0.6,0.85,0.89); // UrQMD direct photons spectra d^2N/p_t dp_t dy (GeV^{-2}) for Pb+Pb at E_lab=160 AGeV // PR C57 3271 (1998), hep-ph/9709487 const Int_t nPoints=9; Float_t pT[nPoints]={0.0,0.95,1.25,1.55,1.85,2.15,2.45,2.75,3.05}; Float_t sig[nPoints]={1e-5,2.4e-1,5.5e-2,1.2e-2,6e-3,3e-3,1e-3,4.3e-4,4e-4}; TGraph *graph = new TGraph(nPoints,pT,sig); graph->SetMarkerColor(2); graph->SetMarkerStyle(20); graph->SetMaximum(10); graph->SetMinimum(1.0e-4); graph->GetHistogram()->SetXTitle("p_{t} (GeV/c)"); graph->GetHistogram()->SetYTitle("d^{2}N/p_{t}dp_{t}dy (GeV^{-2})"); graph->SetTitle("direct photons"); legD->AddEntry(graph,"UrQMD, Pb+Pb 160 AGeV","P"); graph->Draw("AP"); hSigma->SetLineStyle(1); hSigma->SetLineWidth(3); hSigma->Scale(1./nEvents/(2.*deltaYrap*deltaPt)); legD->AddEntry(hSigma,"HIJING, Au+Au 25 AGeV","L"); hSigma->Draw("same"); legD->Draw(); timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime); }