ROOT logo
void readPrimaries(Int_t evNumber1=0, Int_t evNumber2=0) 
{
// Dynamically link some shared libs                    
    if (gClassTable->GetID("AliRun") < 0) {
	gROOT->LoadMacro("loadlibs.C");
	loadlibs();
    }
// Connect the Root Galice file containing Geometry, Kine and Hits

    AliRunLoader* rl = AliRunLoader::Open("galice.root");
//
    TDatabasePDG*  DataBase = new TDatabasePDG();
    
//  Create some histograms

    TH1F *thetaH   =  new TH1F("thetaH","Theta distribution",180,0,180);
    TH1F *phiH     =  new TH1F("phiH","Phi distribution"  ,180,-180,180);
    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,0,12);
    TH1F *ptH      =  new TH1F("ptH","Pt distribution",150,0,15);
//
//   Loop over events 
//
    rl->LoadKinematics();
    rl->LoadHeader();    
    for (Int_t nev=0; nev<= evNumber2; nev++) {
	rl->GetEvent(nev);
	AliStack* stack = rl->Stack();
	Int_t npart = stack->GetNprimary();
	if (nev < evNumber1) continue;
//
// Loop over primary particles (jpsi. upsilon, ...)
//       
	
	for (Int_t part=0; part<npart; part++) {
	    TParticle *MPart = stack->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();
	    Float_t Pz = MPart->Pz();
	    Float_t Py = MPart->Py();
	    Float_t Px = MPart->Px();
	    Float_t pT = TMath::Sqrt(Px*Px+Py*Py);
	    Float_t theta = MPart->Theta();
	    Float_t phi   = MPart->Phi()-TMath::Pi();
	    Float_t eta   = -TMath::Log(TMath::Tan(theta/2.));
	    Float_t y     = 0.5*TMath::Log((E+Pz+1.e-13)/(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,5.*wgt);      
	    eH->Fill(E,wgt);      
	    ptH->Fill(pT,wgt);     
	} // primary loop
    }
    
//Create a canvas, set the view range, show histograms
    TCanvas *c1 = new TCanvas("c1","Canvas 1",400,10,600,700);
    c1->Divide(2,2);
    c1->cd(1); ptH->Draw();
    c1->cd(2); etaH->Draw();
    c1->cd(3); yH->Draw();
    c1->cd(4



); eH->Draw();

    TCanvas *c2 = new TCanvas("c2","Canvas 1",400,10,600,700);
    c2->Divide(2,2);
    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);

}







 readPrimaries.C:1
 readPrimaries.C:2
 readPrimaries.C:3
 readPrimaries.C:4
 readPrimaries.C:5
 readPrimaries.C:6
 readPrimaries.C:7
 readPrimaries.C:8
 readPrimaries.C:9
 readPrimaries.C:10
 readPrimaries.C:11
 readPrimaries.C:12
 readPrimaries.C:13
 readPrimaries.C:14
 readPrimaries.C:15
 readPrimaries.C:16
 readPrimaries.C:17
 readPrimaries.C:18
 readPrimaries.C:19
 readPrimaries.C:20
 readPrimaries.C:21
 readPrimaries.C:22
 readPrimaries.C:23
 readPrimaries.C:24
 readPrimaries.C:25
 readPrimaries.C:26
 readPrimaries.C:27
 readPrimaries.C:28
 readPrimaries.C:29
 readPrimaries.C:30
 readPrimaries.C:31
 readPrimaries.C:32
 readPrimaries.C:33
 readPrimaries.C:34
 readPrimaries.C:35
 readPrimaries.C:36
 readPrimaries.C:37
 readPrimaries.C:38
 readPrimaries.C:39
 readPrimaries.C:40
 readPrimaries.C:41
 readPrimaries.C:42
 readPrimaries.C:43
 readPrimaries.C:44
 readPrimaries.C:45
 readPrimaries.C:46
 readPrimaries.C:47
 readPrimaries.C:48
 readPrimaries.C:49
 readPrimaries.C:50
 readPrimaries.C:51
 readPrimaries.C:52
 readPrimaries.C:53
 readPrimaries.C:54
 readPrimaries.C:55
 readPrimaries.C:56
 readPrimaries.C:57
 readPrimaries.C:58
 readPrimaries.C:59
 readPrimaries.C:60
 readPrimaries.C:61
 readPrimaries.C:62
 readPrimaries.C:63
 readPrimaries.C:64
 readPrimaries.C:65
 readPrimaries.C:66
 readPrimaries.C:67
 readPrimaries.C:68
 readPrimaries.C:69
 readPrimaries.C:70
 readPrimaries.C:71
 readPrimaries.C:72
 readPrimaries.C:73
 readPrimaries.C:74
 readPrimaries.C:75
 readPrimaries.C:76
 readPrimaries.C:77
 readPrimaries.C:78
 readPrimaries.C:79
 readPrimaries.C:80
 readPrimaries.C:81
 readPrimaries.C:82
 readPrimaries.C:83
 readPrimaries.C:84
 readPrimaries.C:85
 readPrimaries.C:86
 readPrimaries.C:87
 readPrimaries.C:88
 readPrimaries.C:89
 readPrimaries.C:90
 readPrimaries.C:91
 readPrimaries.C:92
 readPrimaries.C:93
 readPrimaries.C:94
 readPrimaries.C:95
 readPrimaries.C:96
 readPrimaries.C:97
 readPrimaries.C:98
 readPrimaries.C:99
 readPrimaries.C:100
 readPrimaries.C:101
 readPrimaries.C:102
 readPrimaries.C:103
 readPrimaries.C:104
 readPrimaries.C:105
 readPrimaries.C:106
 readPrimaries.C:107
 readPrimaries.C:108
 readPrimaries.C:109
 readPrimaries.C:110
 readPrimaries.C:111