Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliTRDPIDResponse.cxx
index 221ebe0..cd2b72b 100644 (file)
@@ -157,19 +157,7 @@ Double_t AliTRDPIDResponse::GetSignalDelta( const AliVTrack* track, AliPID::EPar
 
   const Double_t badval = -9999;
 
-  //cut on number of chambers
-  const Double_t cutch = 6;
-
-  //cut on mean number of clusters per chamber
-  const Double_t cutclsperch = 18;
-
-  const Double_t nch = track->GetTRDNchamberdEdx();
-  if(nch < cutch){
-    return badval;
-  }
-
-  const Double_t ncls = track->GetTRDNclusterdEdx();
-  if( ncls/nch < cutclsperch){
+  if(!track){
     return badval;
   }
 
@@ -184,23 +172,26 @@ Double_t AliTRDPIDResponse::GetSignalDelta( const AliVTrack* track, AliPID::EPar
   }
 
   if(!fkTRDdEdxParams){
-    AliError("AliTRDPIDResponse::GetSignalDelta fkTRDdEdxParams null");
+    AliError("fkTRDdEdxParams null");
     return -99999;
   }
 
-  TVectorF meanvec = fkTRDdEdxParams->GetMeanParameter(type);
-  TVectorF resvec  = fkTRDdEdxParams->GetSigmaParameter(type);
-
-  Double_t meanpar[meanvec.GetNrows()];
-  Double_t respar[resvec.GetNrows()];
+  const Double_t nch = track->GetTRDNchamberdEdx();
+  const Double_t ncls = track->GetTRDNclusterdEdx();
 
-  for(Int_t ii=0; ii<meanvec.GetNrows(); ii++){
-    meanpar[ii]=meanvec[ii];
+  const TVectorF meanvec = fkTRDdEdxParams->GetMeanParameter(type, nch, ncls);
+  if(meanvec.GetNrows()==0){
+    return badval;
   }
-  for(Int_t ii=0; ii<resvec.GetNrows(); ii++){
-    respar[ii]=resvec[ii];
+
+  const TVectorF resvec  = fkTRDdEdxParams->GetSigmaParameter(type, nch, ncls);
+  if(resvec.GetNrows()==0){
+    return badval;
   }
 
+  const Float_t *meanpar = meanvec.GetMatrixArray();
+  const Float_t *respar  = resvec.GetMatrixArray();
+
   //============================================================================================<<<<<<<<<<<<<
 
   const Double_t bg = pTRD/AliPID::ParticleMass(type);
@@ -222,7 +213,7 @@ Double_t AliTRDPIDResponse::GetSignalDelta( const AliVTrack* track, AliPID::EPar
 }
 
 
-Double_t AliTRDPIDResponse::ResolutiondEdxTR(const Double_t * xx,  const Double_t * par)
+Double_t AliTRDPIDResponse::ResolutiondEdxTR(const Double_t * xx,  const Float_t * par)
 {
   //
   //resolution 
@@ -234,21 +225,21 @@ Double_t AliTRDPIDResponse::ResolutiondEdxTR(const Double_t * xx,  const Double_
   return par[0]+par[1]*TMath::Power(ncls, par[2]);
 }
 
-Double_t AliTRDPIDResponse::MeandEdxTR(const Double_t * xx,  const Double_t * pin)
+Double_t AliTRDPIDResponse::MeandEdxTR(const Double_t * xx,  const Float_t * pin)
 {
   //
   //ALEPH+LOGISTIC parametrization for dEdx+TR, in unit of MIP
   //npar = 8 = 3+5
   //
 
-  Double_t ptr[4]={0};
+  Float_t ptr[4]={0};
   for(int ii=0; ii<3; ii++){
     ptr[ii+1]=pin[ii];
   }
   return MeanTR(xx,ptr) + MeandEdx(xx,&(pin[3]));
 }
 
-Double_t AliTRDPIDResponse::MeanTR(const Double_t * xx,  const Double_t * par)
+Double_t AliTRDPIDResponse::MeanTR(const Double_t * xx,  const Float_t * par)
 {
   //
   //LOGISTIC parametrization for TR, in unit of MIP
@@ -268,7 +259,7 @@ Double_t AliTRDPIDResponse::MeanTR(const Double_t * xx,  const Double_t * par)
   return par[0]+tryield;
 }
 
-Double_t AliTRDPIDResponse::MeandEdx(const Double_t * xx,  const Double_t * par)
+Double_t AliTRDPIDResponse::MeandEdx(const Double_t * xx,  const Float_t * par)
 {
   //
   //ALEPH parametrization for dEdx