]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSSavePIDV2.C
Additional include path (Linux icc)
[u/mrichter/AliRoot.git] / ITS / AliITSSavePIDV2.C
CommitLineData
38f7c306 1////////////////////////////////////////////////////////////
2// Test macro for AliITSPid class and tracking version V2 //
7532eb09 3// Rev. 25 July 2002 v3-08-03 + Root 3.02/07 + RedHat 6.2 //
38f7c306 4////////////////////////////////////////////////////////////
5void
6AliITSSavePIDV2(Int_t evNumber1=0,Int_t evNumber2=0) {
7 const char *filename="AliITStracksV2.root";
8
9 if (gClassTable->GetID("AliRun") < 0) {
10 gROOT->LoadMacro("loadlibs.C"); loadlibs();
11 } else { delete gAlice; gAlice=0;
12 }
13
14 TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(filename);
15 if (!file) file = new TFile(filename);
16
17TFile *fpid = new TFile("AliITStracksV2Pid.root","recreate");
18 Float_t factor=0;
19 if(gAlice!=0)factor=gAlice->Field()->Factor();
20 if(factor==0.)factor=1.;
21 AliKalmanTrack::SetConvConst(100/0.299792458/0.2/factor);
22
23//
24// Loop over events
25//
26 for (int nev=0; nev<= evNumber2; nev++) {
27 char tname[30];
28 sprintf(tname,"TreeT_ITS_%d;1",nev);
29 TTree *tracktree=(TTree*)file->Get(tname);
30 TBranch *tbranch=tracktree->GetBranch("tracks");
31
32 Int_t nentr=tracktree->GetEntries();
33 cout<<"Found "<<nentr<<" ITS tracks in event No "<<nev<<endl;
34
35 char tpidname[30];
36 sprintf(tpidname,"TreeT%d",nev);
37 AliITStrackV2Pid pidtmp;
38 TTree itspidTree(tpidname,"Tree with PID");
39 AliITStrackV2Pid *outpid=&pidtmp;
40 itspidTree.Branch("pids","AliITStrackV2Pid",&outpid,32000,1);
41 AliITSPid pid;
42
43 AliITStrackV2 *iotrack=0;
44 for (Int_t i=0; i<nentr; i++) {
45 AliITStrackV2 *iotrack=new AliITStrackV2;
46 tbranch->SetAddress(&iotrack);
47 tracktree->GetEvent(i);
48 Int_t pcode=pid->GetPcode(iotrack);
49 Float_t signal=iotrack->GetdEdx();
50 //iotrack->Propagate(iotrack->GetAlpha(),3.,0.1/65.19*1.848,0.1*1.848);
51 iotrack->PropagateTo(3.,0.0028,65.19);
52
53 iotrack->PropagateToVertex();
54 Double_t xk,par[5]; iotrack->GetExternalParameters(xk,par);
55 Float_t lam=TMath::ATan(par[3]);
56 Float_t pt_1=TMath::Abs(par[4]);
57 Float_t mom=0.;
58 if( (pt_1*TMath::Cos(lam))!=0. ){ mom=1./(pt_1*TMath::Cos(lam)); }else{mom=0.;};
59 pidtmp.fPcode=pcode;
60 pidtmp.fSignal=signal;
61 pidtmp.fMom=mom;
62 itspidTree.Fill();
63 delete iotrack;
64 }// End for i (tracks)
65 fpid->Write();
66 }// End for nev (events)
38f7c306 67 file->Close();
68 cout<<"File AliITStracksV2Pid.root written"<<endl;
69 return;
70///////////////////////////////////////////////////////
71}
72
73
74
75
76
77
78
79