X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FTestPrimaries.C;h=a369b695f4d42589fcd793280f93246f7142602a;hb=e8541476a6fef106f14bb0aa5e7f11d3d5495bed;hp=096a59f037a6814605c3a46806f3faf0a12e2928;hpb=754a67f2723a709a50f41e3397c6c7fde8bc8710;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/TestPrimaries.C b/EVGEN/TestPrimaries.C index 096a59f037a..a369b695f4d 100644 --- a/EVGEN/TestPrimaries.C +++ b/EVGEN/TestPrimaries.C @@ -36,27 +36,31 @@ void TestPrimaries(Int_t evNumber1=0, Int_t evNumber2=0) TH1F *etaH = new TH1F("etaH","Pseudorapidity",120,-12,12); TH1F *yH = new TH1F("yH","Rapidity distribution",120,-12,12); TH1F *eH = new TH1F("eH","Energy distribution",100,0,100); - TH1F *eetaH = new TH1F("eetaH","Pseudorapidity",120,-12,12); + TH1F *eetaH = new TH1F("eetaH","Pseudorapidity",120,0,12); TH1F *ptH = new TH1F("ptH","Pt distribution",150,0,15); // // Loop over events // for (Int_t nev=0; nev<= evNumber2; nev++) { + Int_t nparticles = gAlice->GetEvent(nev); if (nev < evNumber1) continue; if (nparticles <= 0) return; - TClonesArray *fPartArray = gAlice->Particles(); - Int_t npart = fPartArray->GetEntriesFast(); + + TObjArray* parray = gAlice->Particles(); + Int_t npart = (gAlice->TreeK())->GetEntries(); // // Loop over primary particles (jpsi. upsilon, ...) // + for (Int_t part=0; partUncheckedAt(part); + TParticle *MPart = gAlice->Particle(part); Int_t mpart = MPart->GetPdgCode(); Int_t child1 = MPart->GetFirstDaughter(); Int_t child2 = MPart->GetLastDaughter(); Int_t mother = MPart->GetFirstMother(); + printf("\n %d %d %d %d ", mpart, child1, child2, mother); Float_t Pt = MPart->Pt(); Float_t E = MPart->Energy(); @@ -67,15 +71,18 @@ void TestPrimaries(Int_t evNumber1=0, Int_t evNumber2=0) Float_t theta = MPart->Theta(); Float_t phi = MPart->Phi()-TMath::Pi(); Float_t eta = -TMath::Log(TMath::Tan(theta/2.)); - Float_t y = TMath::Log((E+Pz)/(E-Pz+1.e-13)); - - thetaH->Fill(theta*180./TMath::Pi(),1.); - phiH->Fill(phi*180./TMath::Pi(),1.); - etaH->Fill(eta,1.); + Float_t y = 0.5*TMath::Log((E+Pz)/(E-Pz+1.e-13)); + + if (child1 >= 0) continue; + if (mpart == kPi0 || mpart == kGamma) continue; + Float_t wgt = 1./(Float_t ((evNumber2-evNumber1)+1.)); + thetaH->Fill(theta*180./TMath::Pi(),wgt); + phiH->Fill(phi*180./TMath::Pi(),wgt); + etaH->Fill(eta,5.*wgt); eetaH->Fill(eta,E); - yH->Fill(y,1.); - eH->Fill(E,1.); - ptH->Fill(pT,1.); + yH->Fill(y,5.*wgt); + eH->Fill(E,wgt); + ptH->Fill(pT,wgt); } // primary loop } @@ -96,6 +103,23 @@ void TestPrimaries(Int_t evNumber1=0, Int_t evNumber2=0) c2->cd(1); phiH->Draw(); c2->cd(2); thetaH->Draw(); c2->cd(3); eetaH->Draw(); + Float_t i0,i1,i2,i3,i4,i5; + Float_t ne = Float_t ((evNumber2-evNumber1)+1.); + + i0=eetaH->Integral(01,25)/1000./ne; + i1=eetaH->Integral(25,40)/1000./ne; + i2=eetaH->Integral(40,50)/1000./ne; + i3=eetaH->Integral(50,60)/1000./ne; + i4=eetaH->Integral(60,70)/1000./ne; + i5=eetaH->Integral(70,120)/1000./ne; + + printf(" 0 < eta < 2.5 %f \n",i0); + printf("2.5 < eta < 4.0 %f \n",i1); + printf("4.0 < eta < 5.0 %f \n",i2); + printf("5.0 < eta < 6.0 %f \n",i3); + printf("6.0 < eta < 7.0 %f \n",i4); + printf("7.0 < eta <12.0 %f \n",i5); + }