/************************************************************************** * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * * * Author: The ALICE Off-line Project. * * Contributors are mentioned in the code where appropriate. * * * * Permission to use, copy, modify and distribute this software and its * * documentation strictly for non-commercial purposes is hereby granted * * without fee, provided that the above copyright notice appears in all * * copies and that both the copyright notice and this permission notice * * appear in the supporting documentation. The authors make no claims * * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ //----------------------------------------------------------------- // Class for dE/dx and Time Bin of Max. Cluster for Electrons and // pions in TRD. // It is instantiated in class AliTRDpidESD for particle identification // in TRD // Prashant Shukla //----------------------------------------------------------------- #include "AliTRDprobdist.h" ClassImp(AliTRDprobdist) //_________________________________________________________________________ AliTRDprobdist::AliTRDprobdist(Int_t multiplicity) { // // The main constructor // if (multiplicity == 1) FillData(); // if (multiplicity == 2000) FillData2000(); // if (multiplicity == 4000) FillData4000(); // if (multiplicity == 6000) FillData6000(); // if (multiplicity == 8000) FillData8000(); } //_________________________________________________________________________ Double_t AliTRDprobdist::GetMeanPI(Int_t ip) const { // Gets mean of de/dx dist. of pi Double_t integral=0.; Double_t norm=0.; for(Int_t ie=0; ie fNEbins-1) iEnBin = fNEbins-1; if(k==0){ // electron Double_t slop; if(mom<=fTrackMomentum[0]) { slop=(fProbEL[1][iEnBin]-fProbEL[0][iEnBin])/(fTrackMomentum[1] - fTrackMomentum[0]); probability= fProbEL[0][iEnBin] + slop*(mom-fTrackMomentum[0]); return probability; } if(mom>=fTrackMomentum[fNMom-1]) { slop=(fProbEL[fNMom-1][iEnBin]-fProbEL[fNMom-2][iEnBin])/(fTrackMomentum[fNMom-1] - fTrackMomentum[fNMom-2]); probability= fProbEL[fNMom-1][iEnBin] + slop*(mom-fTrackMomentum[fNMom-1]); return probability; } } if(k==2){ // pion Double_t slop; if(mom<=fTrackMomentum[0]) { slop=(fProbPI[1][iEnBin]-fProbPI[0][iEnBin])/(fTrackMomentum[1] - fTrackMomentum[0]); probability= fProbPI[0][iEnBin] + slop*(mom-fTrackMomentum[0]); return probability; } if(mom>=fTrackMomentum[fNMom-1]) { slop=(fProbPI[fNMom-1][iEnBin]-fProbPI[fNMom-2][iEnBin])/(fTrackMomentum[fNMom-1] - fTrackMomentum[fNMom-2]); probability= fProbPI[fNMom-1][iEnBin] + slop*(mom-fTrackMomentum[fNMom-1]); return probability; } } if(k==1){ // muon Double_t slop; if(mom<=fTrackMomentum[0]) { slop=(fProbMU[1][iEnBin]-fProbMU[0][iEnBin])/(fTrackMomentum[1] - fTrackMomentum[0]); probability= fProbMU[0][iEnBin] + slop*(mom-fTrackMomentum[0]); return probability; } if(mom>=fTrackMomentum[fNMom-1]) { slop=(fProbMU[fNMom-1][iEnBin]-fProbMU[fNMom-2][iEnBin])/(fTrackMomentum[fNMom-1] - fTrackMomentum[fNMom-2]); probability= fProbMU[fNMom-1][iEnBin] + slop*(mom-fTrackMomentum[fNMom-1]); return probability; } } if(k==3){ // kaon Double_t slop; if(mom<=fTrackMomentum[0]) { slop=(fProbKA[1][iEnBin]-fProbKA[0][iEnBin])/(fTrackMomentum[1] - fTrackMomentum[0]); probability= fProbKA[0][iEnBin] + slop*(mom-fTrackMomentum[0]); return probability; } if(mom>=fTrackMomentum[fNMom-1]) { slop=(fProbKA[fNMom-1][iEnBin]-fProbKA[fNMom-2][iEnBin])/(fTrackMomentum[fNMom-1] - fTrackMomentum[fNMom-2]); probability= fProbKA[fNMom-1][iEnBin] + slop*(mom-fTrackMomentum[fNMom-1]); return probability; } } if(k==4){ // proton Double_t slop; if(mom<=fTrackMomentum[0]) { slop=(fProbPR[1][iEnBin]-fProbPR[0][iEnBin])/(fTrackMomentum[1] - fTrackMomentum[0]); probability= fProbPR[0][iEnBin] + slop*(mom-fTrackMomentum[0]); return probability; } if(mom>=fTrackMomentum[fNMom-1]) { slop=(fProbPR[fNMom-1][iEnBin]-fProbPR[fNMom-2][iEnBin])/(fTrackMomentum[fNMom-1] - fTrackMomentum[fNMom-2]); probability= fProbPR[fNMom-1][iEnBin] + slop*(mom-fTrackMomentum[fNMom-1]); return probability; } } if(k==0) // electron for(Int_t ip=1; ip=fTrackMomentum[fNMom-1]) probabilityT = fProbELT[fNMom-1][iTBin]; } if(k==1||k==2||k==3||k==4){ // pion if(mom<=fTrackMomentum[0]) probabilityT = fProbPIT[0][iTBin]; if(mom>=fTrackMomentum[fNMom-1]) probabilityT = fProbPIT[fNMom-1][iTBin]; } if(k==0) // electron for(Int_t ip=1; ip