//////////////////////////////////////////////////////////// // Test macro for AliITSPid class and tracking version V2 // // Rev. 25 July 2002 v3-08-03 + Root 3.02/07 + RedHat 6.2 // //////////////////////////////////////////////////////////// void AliITSSavePIDV2(Int_t evNumber1=0,Int_t evNumber2=0) { const char *filename="AliITStracksV2.root"; TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(filename); if (!file) file = new TFile(filename); TFile *fpid = new TFile("AliITStracksV2Pid.root","recreate"); Float_t factor=0; if(gAlice!=0)factor=gAlice->Field()->SolenoidField(); if(factor==0.){ cout<<" ================ WARNING ====================================\n"; cout<<" The default magnetic field value of 0.4 T will be used\n"; cout<<" ==============================================================\n"; factor=4.; // Default mag. field = 0.4T } else { cout<<"AliITSSavePIDV2.C: Magnetic field is "<Get(tname); TBranch *tbranch=tracktree->GetBranch("tracks"); Int_t nentr=tracktree->GetEntries(); cout<<"Found "<SetAddress(&iotrack); tracktree->GetEvent(i); iotrack->CookdEdx(); Float_t signal=iotrack->GetdEdx(); iotrack->PropagateTo(3.,0.0028,65.19); iotrack->PropagateToVertex(); Double_t xk,par[5]; iotrack->GetExternalParameters(xk,par); Float_t lam=TMath::ATan(par[3]); Float_t pt_1=TMath::Abs(par[4]); Float_t mom=0.; if( (pt_1*TMath::Cos(lam))!=0. ){ mom=1./(pt_1*TMath::Cos(lam)); }else{mom=0.;}; Float_t phi=TMath::ASin(par[2]) + iotrack->GetAlpha(); if (phi<-TMath::Pi()) phi+=2*TMath::Pi(); if (phi>=TMath::Pi()) phi-=2*TMath::Pi(); signal=signal/35.; pidtmp.fSignal=signal; pidtmp.fMom=mom; pidtmp.fPhi=phi; pidtmp.fLam=lam; pidtmp.fGlab=TMath::Abs(iotrack->GetLabel()); Int_t pcode=pid->GetPcode(signal,mom); pidtmp.fPcode=pcode; pidtmp.fWpi=pid->GetWpi(); pidtmp.fWk=pid->GetWk(); pidtmp.fWp=pid->GetWp(); //cout<<" pcode,sig,mom="<