From: hristov Date: Wed, 14 Jan 2004 09:23:53 +0000 (+0000) Subject: Corrections in the detector response function (Yu.Belikov) X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=431be10d03e9a584eefd31f5c1f5c827f5803fac Corrections in the detector response function (Yu.Belikov) --- diff --git a/ITS/AliITSpidESD.cxx b/ITS/AliITSpidESD.cxx index c4109bd1858..28faee475a8 100644 --- a/ITS/AliITSpidESD.cxx +++ b/ITS/AliITSpidESD.cxx @@ -41,7 +41,8 @@ Double_t AliITSpidESD::Bethe(Double_t bg) { // This is the Bethe-Bloch function normalised to 1 at the minimum // Double_t bg2=bg*bg; - Double_t bethe=(1.+ bg2)/bg2*(log(5940*bg2) - bg2/(1.+ bg2)); + Double_t bethe; + bethe=(1.+ bg2)/bg2*(log(5940*bg2) - bg2/(1.+ bg2)); return bethe/11.091; } @@ -59,19 +60,19 @@ Int_t AliITSpidESD::MakePID(AliESD *event) AliESDtrack *t=event->GetTrack(i); if ((t->GetStatus()&AliESDtrack::kITSin )==0) if ((t->GetStatus()&AliESDtrack::kITSout)==0) continue; + Double_t mom=t->GetP(); + Double_t dedx=t->GetITSsignal()/fMIP; Int_t ns=AliESDtrack::kSPECIES; Double_t p[10]; for (Int_t j=0; jGetP(); - Double_t dedx=t->GetITSsignal()/fMIP; Double_t bethe=Bethe(mom/mass); Double_t sigma=fRes*bethe; if (TMath::Abs(dedx-bethe) > fRange*sigma) { - p[j]=TMath::Exp(-0.5*fRange*fRange); + p[j]=TMath::Exp(-0.5*fRange*fRange)/sigma; continue; } - p[j]=TMath::Exp(-0.5*(dedx-bethe)*(dedx-bethe)/(sigma*sigma)); + p[j]=TMath::Exp(-0.5*(dedx-bethe)*(dedx-bethe)/(sigma*sigma))/sigma; } t->SetITSpid(p); } diff --git a/STEER/AliESDtest.C b/STEER/AliESDtest.C index b75c34e5d21..9bda08d3031 100644 --- a/STEER/AliESDtest.C +++ b/STEER/AliESDtest.C @@ -111,7 +111,7 @@ Int_t AliESDtest(Int_t nev=1,Int_t run=0) { AliITStrackerV2 itsTracker(geom); //An instance of the ITS PID maker - Double_t parITS[]={34.,0.15,10.}; + Double_t parITS[]={35.5,0.11,10.}; AliITSpidESD itsPID(parITS); //An instance of the V0 finder @@ -156,7 +156,7 @@ Int_t AliESDtest(Int_t nev=1,Int_t run=0) { AliTPCtracker tpcTracker(par); //An instance of the TPC PID maker - Double_t parTPC[]={47.,0.10,10.}; + Double_t parTPC[]={45.0,0.08,10.}; AliTPCpidESD tpcPID(parTPC); @@ -207,7 +207,6 @@ Int_t AliESDtest(Int_t nev=1,Int_t run=0) { } tofl->LoadDigits("read"); - //Instance of the TOF PID maker Double_t parTOF[]={130.,5.}; AliTOFpidESD tofPID(parTOF); @@ -265,10 +264,8 @@ Int_t AliESDtest(Int_t nev=1,Int_t run=0) { //***** Back propagation towards the outer barrel detectors rc+=itsTracker.PropagateBack(event); - //itsPID.MakePID(event); rc+=tpcTracker.PropagateBack(event); - tpcPID.MakePID(event); TTree *trdTree=trdl->TreeR(); if (!trdTree) { @@ -277,12 +274,14 @@ Int_t AliESDtest(Int_t nev=1,Int_t run=0) { } trdTracker.LoadClusters(trdTree); rc+=trdTracker.PropagateBack(event); + /* for (Int_t iTrack = 0; iTrack < event->GetNumberOfTracks(); iTrack++) { AliESDtrack* track = event->GetTrack(iTrack); trdPID->MakePID(track); } */ + TTree *tofTree=tofl->TreeD(); if (!tofTree) { cerr<<"Can't get the TOF cluster tree !\n"; @@ -293,23 +292,22 @@ Int_t AliESDtest(Int_t nev=1,Int_t run=0) { tofPID.UnloadClusters(); - -//***** Here is the combined PID - AliESDpid::MakePID(event); - - - //***** Now the final refit at the primary vertex... rc+=trdTracker.RefitInward(event); trdTracker.UnloadClusters(); rc+=tpcTracker.RefitInward(event); tpcTracker.UnloadClusters(); + tpcPID.MakePID(event); rc+=itsTracker.RefitInward(event); itsTracker.UnloadClusters(); + itsPID.MakePID(event); +//***** Here is the combined PID + AliESDpid::MakePID(event); + //***** Hyperon reconstruction vtxer.SetVertex(vtx); diff --git a/STEER/AliESDtrack.h b/STEER/AliESDtrack.h index 2ec43397f9b..687128d9cd2 100644 --- a/STEER/AliESDtrack.h +++ b/STEER/AliESDtrack.h @@ -123,7 +123,7 @@ protected: Int_t fITSncls; // number of clusters assigned in the ITS UInt_t fITSindex[6]; //! indices of the assigned ITS clusters Float_t fITSsignal; // detector's PID signal - Float_t fITSr[kSPECIES]; //! "detector response probabilities" (for the PID) + Float_t fITSr[kSPECIES]; // "detector response probabilities" (for the PID) // TPC related track information Float_t fTPCchi2; // chi2 in the TPC @@ -137,7 +137,7 @@ protected: Int_t fTRDncls; // number of clusters assigned in the TRD UInt_t fTRDindex[90]; //! indices of the assigned TRD clusters Float_t fTRDsignal; // detector's PID signal - Float_t fTRDr[kSPECIES]; //! "detector response probabilities" (for the PID) + Float_t fTRDr[kSPECIES]; // "detector response probabilities" (for the PID) // TOF related track information Float_t fTOFchi2; // chi2 in the TOF diff --git a/TOF/AliTOFpidESD.cxx b/TOF/AliTOFpidESD.cxx index 303cf62bab1..14970f8066a 100644 --- a/TOF/AliTOFpidESD.cxx +++ b/TOF/AliTOFpidESD.cxx @@ -225,6 +225,10 @@ Double_t dz=5*TMath::Sqrt(cov[2]) + 0.5*fDz + 2.5*TMath::Abs(par[3]); Double_t p[10]; Double_t mom=t->GetP(); for (Int_t j=0; j0.5) dpp=0.01*mom; @@ -234,10 +238,10 @@ Double_t dz=5*TMath::Sqrt(cov[2]) + 0.5*fDz + 2.5*TMath::Abs(par[3]); time[j]+=dlt/3e-2*TMath::Sqrt(mom*mom+mass*mass)/mom; if (TMath::Abs(tof-time[j]) > fRange*sigma) { - p[j]=TMath::Exp(-0.5*fRange*fRange); + p[j]=TMath::Exp(-0.5*fRange*fRange)/sigma; continue; } - p[j]=TMath::Exp(-0.5*(tof-time[j])*(tof-time[j])/(sigma*sigma)); + p[j]=TMath::Exp(-0.5*(tof-time[j])*(tof-time[j])/(sigma*sigma))/sigma; } /* if (c->GetLabel(0)!=TMath::Abs(t->GetLabel())) { diff --git a/TPC/AliTPCpidESD.cxx b/TPC/AliTPCpidESD.cxx index fa7098cdbde..32a21190560 100644 --- a/TPC/AliTPCpidESD.cxx +++ b/TPC/AliTPCpidESD.cxx @@ -68,10 +68,10 @@ Int_t AliTPCpidESD::MakePID(AliESD *event) Double_t bethe=Bethe(mom/mass); Double_t sigma=fRes*bethe; if (TMath::Abs(dedx-bethe) > fRange*sigma) { - p[j]=TMath::Exp(-0.5*fRange*fRange); + p[j]=TMath::Exp(-0.5*fRange*fRange)/sigma; continue; } - p[j]=TMath::Exp(-0.5*(dedx-bethe)*(dedx-bethe)/(sigma*sigma)); + p[j]=TMath::Exp(-0.5*(dedx-bethe)*(dedx-bethe)/(sigma*sigma))/sigma; } t->SetTPCpid(p); }