- TH1 *refUpper = dynamic_cast<TH1 *>(fkPIDReference->GetUpperReference((AliPID::EParticleType)species, plocal, pUpper)),
- *refLower = dynamic_cast<TH1 *>(fkPIDReference->GetLowerReference((AliPID::EParticleType)species, plocal, pLower));
- // Do Interpolation exept for underflow and overflow
- if(refLower && refUpper){
- Double_t probLower = refLower->GetBinContent(refLower->GetXaxis()->FindBin(dEdx));
- Double_t probUpper = refUpper->GetBinContent(refUpper->GetXaxis()->FindBin(dEdx));
-
- probLayer = probLower + (probUpper - probLower)/(pUpper-pLower) * (plocal - pLower);
- } else if(refLower){
- // underflow
- probLayer = refLower->GetBinContent(refLower->GetXaxis()->FindBin(dEdx));
- } else if(refUpper){
- // overflow
- probLayer = refUpper->GetBinContent(refUpper->GetXaxis()->FindBin(dEdx));
- } else {
- AliError("No references available");
+ Float_t pLower, pUpper;
+
+ switch(fPIDmethod){
+ case kNN: // NN
+ break;
+ case kLQ2D: // 2D LQ
+ {
+ Double_t error;
+ Double_t point[kNslicesLQ2D];
+ for(Int_t idim=0;idim<kNslicesLQ2D;idim++){point[idim]=dEdx[idim];}
+
+ AliTRDTKDInterpolator *refLower = dynamic_cast<AliTRDTKDInterpolator*>(fkPIDResponseObject->GetLowerReference((AliPID::EParticleType)species, plocal, pLower,kLQ2D));
+
+ if(refLower){
+ refLower->Eval(point,probLayer,error);
+ }
+ else {
+ AliError("No references available");
+ }
+ }
+ break;
+ case kLQ1D: // 1D LQ
+ {
+ TH1 *refUpper = dynamic_cast<TH1 *>(fkPIDResponseObject->GetUpperReference((AliPID::EParticleType)species, plocal, pUpper,kLQ1D)),
+ *refLower = dynamic_cast<TH1 *>(fkPIDResponseObject->GetLowerReference((AliPID::EParticleType)species, plocal, pLower,kLQ1D));
+ // Do Interpolation exept for underflow and overflow
+ if(refLower && refUpper){
+ Double_t probLower = refLower->GetBinContent(refLower->GetXaxis()->FindBin(dEdx[0]));
+ Double_t probUpper = refUpper->GetBinContent(refUpper->GetXaxis()->FindBin(dEdx[0]));
+
+ probLayer = probLower + (probUpper - probLower)/(pUpper-pLower) * (plocal - pLower);
+ } else if(refLower){
+ // underflow
+ probLayer = refLower->GetBinContent(refLower->GetXaxis()->FindBin(dEdx[0]));
+ } else if(refUpper){
+ // overflow
+ probLayer = refUpper->GetBinContent(refUpper->GetXaxis()->FindBin(dEdx[0]));
+ } else {
+ AliError("No references available");
+ }
+ AliDebug(1, Form("Probability %f", probLayer));
+ }
+ break;
+ default:
+ break;