+++ /dev/null
-///////////////////////////////////////////////////////////
-// Test macro for AliITStracksV1Pid.root file //
-// JINR Dubna Jan 2002 //
-///////////////////////////////////////////////////////////
-void
-AliITSScanPIDV1(Int_t evNumber1=0,Int_t evNumber2=0) {
- //................. Prepare histogramms ................
- TH2F *qplot = new TH2F("Qtrm","Qtrm vs Pmom",100,0,1300,100,0,13);
- TH2F *qplotP= new TH2F("Qtrm","Qtrm vs Pmom",100,0,1300,100,0,13);
- TH2F *qplotKa= new TH2F("Qtrm","Qtrm vs Pmom",100,0,1300,100,0,13);
- TH2F *qplotPi= new TH2F("Qtrm","Qtrm vs Pmom",100,0,1300,100,0,13);
- TH2F *qplotE= new TH2F("Qtrm","Qtrm vs Pmom",100,0,1300,100,0,13);
- qplotP.SetMarkerStyle(8); qplotP.SetMarkerColor(kBlack); qplotP.SetMarkerSize(.3);
- qplotKa.SetMarkerStyle(8); qplotKa.SetMarkerColor(kRed); qplotKa.SetMarkerSize(.3);
- qplotPi.SetMarkerStyle(8); qplotPi.SetMarkerColor(kBlue); qplotPi.SetMarkerSize(.3);
- qplotE.SetMarkerStyle(8); qplotE.SetMarkerColor(kGreen); qplotE.SetMarkerSize(.3);
- //......................................................
- TH1F *signal_mip = new TH1F("signal_mip","Signal (mips) for track",100,0.,15.);
-
-//*****************************************************************************************************************************************
-
- const char *filename="itstracks.root";
-
- ///////////////// Dynamically link some shared libs ////////////////////////////////
-
- if (gClassTable->GetID("AliRun") < 0) {
- gROOT->LoadMacro("loadlibs.C");
- loadlibs();
- } else {
- delete gAlice;
- gAlice=0;
- }
-
-// Connect the Root Galice file containing Geometry, Kine and Hits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(filename);
- if (!file) file = new TFile(filename);
-
-//
-// Loop over events
-//
- char tname[30];
- for (int nev=evNumber1; nev<= evNumber2; nev++) {
-
-
- // for (int nev=0; nev<= evNumber2; nev++) {
-
- sprintf(tname,"TreeT%d",nev);
- TTree *tracktree=(TTree*)file->Get(tname);
- TBranch *tbranch=tracktree->GetBranch("ITStracks");
- cout<<" nev = "<<nev<<"\n";
- //cout<<" open the file \n";
-
- Int_t nentr=tracktree->GetEntries();
-
- TObjArray tarray(nentr);
- // AliITSIOTrack *iotrack=0;
- printf("nentr %d\n",nentr);
-
- for (Int_t i=0; i<nentr; i++) {
- AliITSIOTrack *iotrack=new AliITSIOTrack;
- // tarray.AddAt(new AliITSIOTrack,i);
- // iotrack=(AliITSiotrack*)tarray.UncheckedAt(i);
- tbranch->SetAddress(&iotrack);
- tracktree->GetEvent(i);
- tarray.AddLast(iotrack);
- }
- //file->Close();
-
- AliITSIOTrack *iotrack;
- for (Int_t i=0; i<nentr; i++) {
- AliITSIOTrack *iotrack=new AliITSIOTrack;
- iotrack=(AliITSIOTrack*)tarray.UncheckedAt(i);
- if(!iotrack) continue;
-
- Float_t Px=iotrack->GetPx();
- Float_t Py=iotrack->GetPy();
- Float_t Pz=iotrack->GetPz();
-
- Float_t momentum = TMath::Sqrt(Px*Px+Py*Py+Pz*Pz);
- Float_t dEdx = iotrack->GetdEdx();
- Int_t pcode = 211;//iotrack->GetPDG();
-
- signal_mip->Fill(dEdx);
-
- if(pcode == 2212) qplotP.Fill(1000*momentum,dEdx);
- if(pcode == 321) qplotKa.Fill(1000*momentum,dEdx);
- if(pcode == 211) qplotPi.Fill(1000*momentum,dEdx);
- if(pcode == 11) qplotE.Fill(1000*momentum,dEdx);
-
- delete iotrack;
- }
-
- } // event loop
- file->Close();
-
-//*****************************************************************************************************************************************
-
- //...................... Draw histogramms .................
- TCanvas *c1 = new TCanvas("PID_test","Scan PID ",200,10,900,700);
- c1->Divide(2,1);
- //.........................................................
- c1->cd(1); gPad->SetFillColor(33);
- signal_mip->Draw();
-
- c1->cd(2); //gPad->SetFillColor(33);
- qplot->Draw();
- qplotP.Draw("same"); qplotKa.Draw("same"); qplotPi.Draw("same"); qplotE.Draw("same");
- AliITSPid *pid =new AliITSPid(1000);
- c1->Range(0,0,1300,10);
- gStyle->SetLineColor(kRed);
- gStyle->SetLineWidth(2);
- TLine *lj[3],*lk[3];
- for(Int_t j=0;j<3;j++){
- Float_t x1,x2,y1,y2,xx1,xx2,yy1,yy2;
- x1=pid->cut[j+1][0]; x2=pid->cut[j+2][0];
- y1=y2=pid->cut[j+2][2];
- lj[j]=new TLine(1000*x1,y1,1000*x2,y2); lj[j]->Draw();
- if(j==0){yy1=10.;}else{yy1=lj[j-1]->GetY1();}
- yy2=lj[j]->GetY1();
- xx1=xx2=x1;
- lk[j]=new TLine(1000*xx1,yy1,1000*xx2,yy2); lk[j]->Draw();
- }
- //Draw pions-kaons cuts.
- TLine *mj[7],*mk[7];
- for(Int_t j=0;j<7;j++){
- Float_t x1,x2,y1,y2,xx1,xx2,yy1,yy2;
- x1=pid->cut[j+2][0]; x2=pid->cut[j+3][0];
- y1=y2=pid->cut[j+3][5];
- mj[j]=new TLine(1000*x1,y1,1000*x2,y2); mj[j]->Draw();
- if(j==0){yy1=10.;}else{yy1=mj[j-1]->GetY1();}
- yy2=mj[j]->GetY1();
- xx1=xx2=x1;
- mk[j]=new TLine(1000*xx1,yy1,1000*xx2,yy2); mk[j]->Draw();
- }
- cout<<"End of file AliITStracksV1Pid.root "<<endl;
- return;
-}
-