#include <TAxis.h>
#include <TClass.h>
#include <TDirectory.h>
#include <TFile.h>
#include <TH1.h>
#include <TKey.h>
#include <TMath.h>
#include <TObjArray.h>
#include <TROOT.h>
#include <TString.h>
#include <TSystem.h>
#include "AliLog.h"
#include "AliVTrack.h"
#include "AliTRDPIDResponseObject.h"
#include "AliTRDPIDResponse.h"
#include "AliTRDNDFast.h"
#include "AliTRDdEdxParams.h"
ClassImp(AliTRDPIDResponse)
AliTRDPIDResponse::AliTRDPIDResponse():
TObject()
,fkPIDResponseObject(NULL)
,fkTRDdEdxParams(NULL)
,fGainNormalisationFactor(1.)
{
}
AliTRDPIDResponse::AliTRDPIDResponse(const AliTRDPIDResponse &ref):
TObject(ref)
,fkPIDResponseObject(NULL)
,fkTRDdEdxParams(NULL)
,fGainNormalisationFactor(ref.fGainNormalisationFactor)
{
}
AliTRDPIDResponse &AliTRDPIDResponse::operator=(const AliTRDPIDResponse &ref){
if(this == &ref) return *this;
TObject::operator=(ref);
fGainNormalisationFactor = ref.fGainNormalisationFactor;
fkPIDResponseObject = ref.fkPIDResponseObject;
fkTRDdEdxParams = ref.fkTRDdEdxParams;
return *this;
}
AliTRDPIDResponse::~AliTRDPIDResponse(){
if(IsOwner()) {
delete fkPIDResponseObject;
delete fkTRDdEdxParams;
}
}
Bool_t AliTRDPIDResponse::Load(const Char_t * filename){
AliDebug(1, "Loading reference histos from root file");
TDirectory *owd = gDirectory;
if(!filename)
filename = Form("%s/STEER/LQ1dRef_v1.root",gSystem->ExpandPathName("$ALICE_ROOT"));
TFile *in = TFile::Open(filename);
if(!in){
AliError("Ref file not available.");
return kFALSE;
}
gROOT->cd();
fkPIDResponseObject = dynamic_cast<const AliTRDPIDResponseObject *>(in->Get("TRDPIDResponse")->Clone());
in->Close(); delete in;
owd->cd();
SetBit(kIsOwner, kTRUE);
AliDebug(2, Form("Successfully loaded References for %d Momentum bins", fkPIDResponseObject->GetNumberOfMomentumBins()));
return kTRUE;
}
Double_t AliTRDPIDResponse::GetNumberOfSigmas(const AliVTrack *track, AliPID::EParticleType type) const
{
const Double_t badval = -9999;
Double_t info[5]; for(int i=0; i<5; i++){info[i]=badval;}
const Double_t delta = GetSignalDelta(track, type, kFALSE, info);
const Double_t mean = info[0];
const Double_t res = info[1];
if(res<0){
return badval;
}
const Double_t sigma = mean*res;
const Double_t eps = 1e-12;
return delta/(sigma + eps);
}
Double_t AliTRDPIDResponse::GetSignalDelta( const AliVTrack* track, AliPID::EParticleType type, Bool_t ratio, Double_t *info) const
{
const Double_t badval = -9999;
if(!track){
return badval;
}
Double_t pTRD = -999;
for(Int_t ich=0; ich<6; ich++){
pTRD = track->GetTRDmomentum(ich);
if(pTRD>0)
break;
}
if(pTRD<0){
return badval;
}
if(!fkTRDdEdxParams){
AliError("fkTRDdEdxParams null");
return -99999;
}
const Double_t nch = track->GetTRDNchamberdEdx();
const Double_t ncls = track->GetTRDNclusterdEdx();
const TVectorF meanvec = fkTRDdEdxParams->GetMeanParameter(type, nch, ncls);
if(meanvec.GetNrows()==0){
return badval;
}
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);
const Double_t expsig = MeandEdxTR(&bg, meanpar);
if(info){
info[0]= expsig;
info[1]= ResolutiondEdxTR(&ncls, respar);
}
const Double_t eps = 1e-10;
if(ratio){
return track->GetTRDsignal()/(expsig + eps);
}
else{
return track->GetTRDsignal() - expsig;
}
}
Double_t AliTRDPIDResponse::ResolutiondEdxTR(const Double_t * xx, const Float_t * par)
{
const Double_t ncls = xx[0];
return par[0]+par[1]*TMath::Power(ncls, par[2]);
}
Double_t AliTRDPIDResponse::MeandEdxTR(const Double_t * xx, const Float_t * pin)
{
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 Float_t * par)
{
const Double_t bg = xx[0];
const Double_t gamma = sqrt(1+bg*bg);
const Double_t p0 = TMath::Abs(par[1]);
const Double_t p1 = TMath::Abs(par[2]);
const Double_t p2 = TMath::Abs(par[3]);
const Double_t zz = TMath::Log(gamma);
const Double_t tryield = p0/( 1 + TMath::Exp(-p1*(zz-p2)) );
return par[0]+tryield;
}
Double_t AliTRDPIDResponse::MeandEdx(const Double_t * xx, const Float_t * par)
{
const Double_t bg = xx[0];
const Double_t beta = bg/TMath::Sqrt(1.+ bg*bg);
const Double_t p0 = TMath::Abs(par[0]);
const Double_t p1 = TMath::Abs(par[1]);
const Double_t p2 = TMath::Abs(par[2]);
const Double_t p3 = TMath::Abs(par[3]);
const Double_t p4 = TMath::Abs(par[4]);
const Double_t aa = TMath::Power(beta, p3);
const Double_t bb = TMath::Log( p2 + TMath::Power(1./bg, p4) );
return (p1-aa-bb)*p0/aa;
}
Int_t AliTRDPIDResponse::GetResponse(Int_t n, const Double_t * const dedx, const Float_t * const p, Double_t prob[AliPID::kSPECIES],ETRDPIDMethod PIDmethod,Bool_t kNorm) const
{
AliDebug(3,Form(" Response for PID method: %d",PIDmethod));
if(!fkPIDResponseObject){
AliDebug(3,"Missing reference data. PID calculation not possible.");
return 0;
}
for(Int_t is(AliPID::kSPECIES); is--;) prob[is]=.2;
Double_t prLayer[AliPID::kSPECIES];
Double_t dE[10], s(0.);
Int_t ntrackletsPID=0;
for(Int_t il(kNlayer); il--;){
memset(prLayer, 0, AliPID::kSPECIES*sizeof(Double_t));
if(!CookdEdx(n, &dedx[il*n], &dE[0],PIDmethod)) continue;
s=0.;
Bool_t filled=kTRUE;
for(Int_t is(AliPID::kSPECIES); is--;){
if((dE[0] > 0.) && (p[il] > 0.)) prLayer[is] = GetProbabilitySingleLayer(is, p[il], &dE[0],PIDmethod);
AliDebug(3, Form("Probability for Species %d in Layer %d: %e", is, il, prLayer[is]));
if(prLayer[is]<1.e-30){
AliDebug(2, Form("Null for species %d species prob layer[%d].",is,il));
filled=kFALSE;
break;
}
s+=prLayer[is];
}
if(!filled){
continue;
}
if(s<1.e-30){
AliDebug(2, Form("Null all species prob layer[%d].", il));
continue;
}
for(Int_t is(AliPID::kSPECIES); is--;){
if(kNorm) prLayer[is] /= s;
prob[is] *= prLayer[is];
}
ntrackletsPID++;
}
if(!kNorm) return ntrackletsPID;
s=0.;
for(Int_t is(AliPID::kSPECIES); is--;) s+=prob[is];
if(s<1.e-30){
AliDebug(2, "Null total prob.");
return 0;
}
for(Int_t is(AliPID::kSPECIES); is--;) prob[is]/=s;
return ntrackletsPID;
}
Double_t AliTRDPIDResponse::GetProbabilitySingleLayer(Int_t species, Double_t plocal, Double_t *dEdx,ETRDPIDMethod PIDmethod) const {
AliDebug(1, Form("Make Probability for Species %d with Momentum %f", species, plocal));
Double_t probLayer = 0.;
Float_t pLower, pUpper;
AliTRDNDFast *refUpper = dynamic_cast<AliTRDNDFast *>(fkPIDResponseObject->GetUpperReference((AliPID::EParticleType)species, plocal, pUpper,PIDmethod)),
*refLower = dynamic_cast<AliTRDNDFast *>(fkPIDResponseObject->GetLowerReference((AliPID::EParticleType)species, plocal, pLower,PIDmethod));
if(refLower && refUpper){
Double_t probLower = refLower->Eval(dEdx);
Double_t probUpper = refUpper->Eval(dEdx);
probLayer = probLower + (probUpper - probLower)/(pUpper-pLower) * (plocal - pLower);
} else if(refLower){
probLayer = refLower->Eval(dEdx);
} else if(refUpper){
probLayer = refUpper->Eval(dEdx);
} else {
AliError("No references available");
}
AliDebug(1, Form("Eval 1D dEdx %f Probability %e", dEdx[0],probLayer));
return probLayer;
}
void AliTRDPIDResponse::SetOwner(){
if(!fkPIDResponseObject || IsOwner()) return;
const AliTRDPIDResponseObject *tmp = fkPIDResponseObject;
fkPIDResponseObject = dynamic_cast<const AliTRDPIDResponseObject *>(tmp->Clone());
SetBit(kIsOwner, kTRUE);
}
Bool_t AliTRDPIDResponse::CookdEdx(Int_t nSlice, const Double_t * const in, Double_t *out,ETRDPIDMethod PIDmethod) const
{
switch(PIDmethod){
case kNN:
break;
case kLQ2D:
out[0]=0;
out[1]=0;
for(Int_t islice = 0; islice < nSlice; islice++){
if(in[islice]<=0){out[0]=0;out[1]=0;return kFALSE;}
if(islice<fkPIDResponseObject->GetNSlicesQ0())out[0]+= in[islice];
else out[1]+= in[islice];
}
out[0]*=1./Double_t(fkPIDResponseObject->GetNSlicesQ0());
out[1]*=1./Double_t(nSlice-fkPIDResponseObject->GetNSlicesQ0());
if(out[0] < 1e-6) return kFALSE;
AliDebug(3,Form("CookdEdx Q0 %f Q1 %f",out[0],out[1]));
break;
case kLQ1D:
out[0]= 0.;
for(Int_t islice = 0; islice < nSlice; islice++)
if(in[islice] > 0) out[0] += in[islice] * fGainNormalisationFactor;
out[0]*=1./Double_t(nSlice);
if(out[0] < 1e-6) return kFALSE;
AliDebug(3,Form("CookdEdx dEdx %f",out[0]));
break;
default:
return kFALSE;
}
return kTRUE;
}
Bool_t AliTRDPIDResponse::IdentifiedAsElectron(Int_t nTracklets, const Double_t *like, Double_t p, Double_t level,Double_t centrality,ETRDPIDMethod PIDmethod) const {
if(!fkPIDResponseObject){
AliDebug(3,"No PID Param object available");
return kTRUE;
}
Double_t probEle = like[AliPID::kElectron]/(like[AliPID::kElectron] + like[AliPID::kPion]);
Double_t params[4];
if(!fkPIDResponseObject->GetThresholdParameters(nTracklets, level, params,centrality,PIDmethod)){
AliError("No Params found for the given configuration");
return kTRUE;
}
Double_t threshold = 1. - params[0] - params[1] * p - params[2] * TMath::Exp(-params[3] * p);
if(probEle > TMath::Max(TMath::Min(threshold, 0.99), 0.2)) return kTRUE;
return kFALSE;
}
Bool_t AliTRDPIDResponse::SetPIDResponseObject(const AliTRDPIDResponseObject * obj){
fkPIDResponseObject = obj;
if((AliLog::GetDebugLevel("",IsA()->GetName()))>0)fkPIDResponseObject->Print("");
return kTRUE;
}
Bool_t AliTRDPIDResponse::SetdEdxParams(const AliTRDdEdxParams * par)
{
fkTRDdEdxParams = par;
return kTRUE;
}
AliTRDPIDResponse.cxx:100 AliTRDPIDResponse.cxx:101 AliTRDPIDResponse.cxx:102 AliTRDPIDResponse.cxx:103 AliTRDPIDResponse.cxx:104 AliTRDPIDResponse.cxx:105 AliTRDPIDResponse.cxx:106 AliTRDPIDResponse.cxx:107 AliTRDPIDResponse.cxx:108 AliTRDPIDResponse.cxx:109 AliTRDPIDResponse.cxx:110 AliTRDPIDResponse.cxx:111 AliTRDPIDResponse.cxx:112 AliTRDPIDResponse.cxx:113 AliTRDPIDResponse.cxx:114 AliTRDPIDResponse.cxx:115 AliTRDPIDResponse.cxx:116 AliTRDPIDResponse.cxx:117 AliTRDPIDResponse.cxx:118 AliTRDPIDResponse.cxx:119 AliTRDPIDResponse.cxx:120 AliTRDPIDResponse.cxx:121 AliTRDPIDResponse.cxx:122 AliTRDPIDResponse.cxx:123 AliTRDPIDResponse.cxx:124 AliTRDPIDResponse.cxx:125 AliTRDPIDResponse.cxx:126 AliTRDPIDResponse.cxx:127 AliTRDPIDResponse.cxx:128 AliTRDPIDResponse.cxx:129 AliTRDPIDResponse.cxx:130 AliTRDPIDResponse.cxx:131 AliTRDPIDResponse.cxx:132 AliTRDPIDResponse.cxx:133 AliTRDPIDResponse.cxx:134 AliTRDPIDResponse.cxx:135 AliTRDPIDResponse.cxx:136 AliTRDPIDResponse.cxx:137 AliTRDPIDResponse.cxx:138 AliTRDPIDResponse.cxx:139 AliTRDPIDResponse.cxx:140 AliTRDPIDResponse.cxx:141 AliTRDPIDResponse.cxx:142 AliTRDPIDResponse.cxx:143 AliTRDPIDResponse.cxx:144 AliTRDPIDResponse.cxx:145 AliTRDPIDResponse.cxx:146 AliTRDPIDResponse.cxx:147 AliTRDPIDResponse.cxx:148 AliTRDPIDResponse.cxx:149 AliTRDPIDResponse.cxx:150 AliTRDPIDResponse.cxx:151 AliTRDPIDResponse.cxx:152 AliTRDPIDResponse.cxx:153 AliTRDPIDResponse.cxx:154 AliTRDPIDResponse.cxx:155 AliTRDPIDResponse.cxx:156 AliTRDPIDResponse.cxx:157 AliTRDPIDResponse.cxx:158 AliTRDPIDResponse.cxx:159 AliTRDPIDResponse.cxx:160 AliTRDPIDResponse.cxx:161 AliTRDPIDResponse.cxx:162 AliTRDPIDResponse.cxx:163 AliTRDPIDResponse.cxx:164 AliTRDPIDResponse.cxx:165 AliTRDPIDResponse.cxx:166 AliTRDPIDResponse.cxx:167 AliTRDPIDResponse.cxx:168 AliTRDPIDResponse.cxx:169 AliTRDPIDResponse.cxx:170 AliTRDPIDResponse.cxx:171 AliTRDPIDResponse.cxx:172 AliTRDPIDResponse.cxx:173 AliTRDPIDResponse.cxx:174 AliTRDPIDResponse.cxx:175 AliTRDPIDResponse.cxx:176 AliTRDPIDResponse.cxx:177 AliTRDPIDResponse.cxx:178 AliTRDPIDResponse.cxx:179 AliTRDPIDResponse.cxx:180 AliTRDPIDResponse.cxx:181 AliTRDPIDResponse.cxx:182 AliTRDPIDResponse.cxx:183 AliTRDPIDResponse.cxx:184 AliTRDPIDResponse.cxx:185 AliTRDPIDResponse.cxx:186 AliTRDPIDResponse.cxx:187 AliTRDPIDResponse.cxx:188 AliTRDPIDResponse.cxx:189 AliTRDPIDResponse.cxx:190 AliTRDPIDResponse.cxx:191 AliTRDPIDResponse.cxx:192 AliTRDPIDResponse.cxx:193 AliTRDPIDResponse.cxx:194 AliTRDPIDResponse.cxx:195 AliTRDPIDResponse.cxx:196 AliTRDPIDResponse.cxx:197 AliTRDPIDResponse.cxx:198 AliTRDPIDResponse.cxx:199 AliTRDPIDResponse.cxx:200 AliTRDPIDResponse.cxx:201 AliTRDPIDResponse.cxx:202 AliTRDPIDResponse.cxx:203 AliTRDPIDResponse.cxx:204 AliTRDPIDResponse.cxx:205 AliTRDPIDResponse.cxx:206 AliTRDPIDResponse.cxx:207 AliTRDPIDResponse.cxx:208 AliTRDPIDResponse.cxx:209 AliTRDPIDResponse.cxx:210 AliTRDPIDResponse.cxx:211 AliTRDPIDResponse.cxx:212 AliTRDPIDResponse.cxx:213 AliTRDPIDResponse.cxx:214 AliTRDPIDResponse.cxx:215 AliTRDPIDResponse.cxx:216 AliTRDPIDResponse.cxx:217 AliTRDPIDResponse.cxx:218 AliTRDPIDResponse.cxx:219 AliTRDPIDResponse.cxx:220 AliTRDPIDResponse.cxx:221 AliTRDPIDResponse.cxx:222 AliTRDPIDResponse.cxx:223 AliTRDPIDResponse.cxx:224 AliTRDPIDResponse.cxx:225 AliTRDPIDResponse.cxx:226 AliTRDPIDResponse.cxx:227 AliTRDPIDResponse.cxx:228 AliTRDPIDResponse.cxx:229 AliTRDPIDResponse.cxx:230 AliTRDPIDResponse.cxx:231 AliTRDPIDResponse.cxx:232 AliTRDPIDResponse.cxx:233 AliTRDPIDResponse.cxx:234 AliTRDPIDResponse.cxx:235 AliTRDPIDResponse.cxx:236 AliTRDPIDResponse.cxx:237 AliTRDPIDResponse.cxx:238 AliTRDPIDResponse.cxx:239 AliTRDPIDResponse.cxx:240 AliTRDPIDResponse.cxx:241 AliTRDPIDResponse.cxx:242 AliTRDPIDResponse.cxx:243 AliTRDPIDResponse.cxx:244 AliTRDPIDResponse.cxx:245 AliTRDPIDResponse.cxx:246 AliTRDPIDResponse.cxx:247 AliTRDPIDResponse.cxx:248 AliTRDPIDResponse.cxx:249 AliTRDPIDResponse.cxx:250 AliTRDPIDResponse.cxx:251 AliTRDPIDResponse.cxx:252 AliTRDPIDResponse.cxx:253 AliTRDPIDResponse.cxx:254 AliTRDPIDResponse.cxx:255 AliTRDPIDResponse.cxx:256 AliTRDPIDResponse.cxx:257 AliTRDPIDResponse.cxx:258 AliTRDPIDResponse.cxx:259 AliTRDPIDResponse.cxx:260 AliTRDPIDResponse.cxx:261 AliTRDPIDResponse.cxx:262 AliTRDPIDResponse.cxx:263 AliTRDPIDResponse.cxx:264 AliTRDPIDResponse.cxx:265 AliTRDPIDResponse.cxx:266 AliTRDPIDResponse.cxx:267 AliTRDPIDResponse.cxx:268 AliTRDPIDResponse.cxx:269 AliTRDPIDResponse.cxx:270 AliTRDPIDResponse.cxx:271 AliTRDPIDResponse.cxx:272 AliTRDPIDResponse.cxx:273 AliTRDPIDResponse.cxx:274 AliTRDPIDResponse.cxx:275 AliTRDPIDResponse.cxx:276 AliTRDPIDResponse.cxx:277 AliTRDPIDResponse.cxx:278 AliTRDPIDResponse.cxx:279 AliTRDPIDResponse.cxx:280 AliTRDPIDResponse.cxx:281 AliTRDPIDResponse.cxx:282 AliTRDPIDResponse.cxx:283 AliTRDPIDResponse.cxx:284 AliTRDPIDResponse.cxx:285 AliTRDPIDResponse.cxx:286 AliTRDPIDResponse.cxx:287 AliTRDPIDResponse.cxx:288 AliTRDPIDResponse.cxx:289 AliTRDPIDResponse.cxx:290 AliTRDPIDResponse.cxx:291 AliTRDPIDResponse.cxx:292 AliTRDPIDResponse.cxx:293 AliTRDPIDResponse.cxx:294 AliTRDPIDResponse.cxx:295 AliTRDPIDResponse.cxx:296 AliTRDPIDResponse.cxx:297 AliTRDPIDResponse.cxx:298 AliTRDPIDResponse.cxx:299 AliTRDPIDResponse.cxx:300 AliTRDPIDResponse.cxx:301 AliTRDPIDResponse.cxx:302 AliTRDPIDResponse.cxx:303 AliTRDPIDResponse.cxx:304 AliTRDPIDResponse.cxx:305 AliTRDPIDResponse.cxx:306 AliTRDPIDResponse.cxx:307 AliTRDPIDResponse.cxx:308 AliTRDPIDResponse.cxx:309 AliTRDPIDResponse.cxx:310 AliTRDPIDResponse.cxx:311 AliTRDPIDResponse.cxx:312 AliTRDPIDResponse.cxx:313 AliTRDPIDResponse.cxx:314 AliTRDPIDResponse.cxx:315 AliTRDPIDResponse.cxx:316 AliTRDPIDResponse.cxx:317 AliTRDPIDResponse.cxx:318 AliTRDPIDResponse.cxx:319 AliTRDPIDResponse.cxx:320 AliTRDPIDResponse.cxx:321 AliTRDPIDResponse.cxx:322 AliTRDPIDResponse.cxx:323 AliTRDPIDResponse.cxx:324 AliTRDPIDResponse.cxx:325 AliTRDPIDResponse.cxx:326 AliTRDPIDResponse.cxx:327 AliTRDPIDResponse.cxx:328 AliTRDPIDResponse.cxx:329 AliTRDPIDResponse.cxx:330 AliTRDPIDResponse.cxx:331 AliTRDPIDResponse.cxx:332 AliTRDPIDResponse.cxx:333 AliTRDPIDResponse.cxx:334 AliTRDPIDResponse.cxx:335 AliTRDPIDResponse.cxx:336 AliTRDPIDResponse.cxx:337 AliTRDPIDResponse.cxx:338 AliTRDPIDResponse.cxx:339 AliTRDPIDResponse.cxx:340 AliTRDPIDResponse.cxx:341 AliTRDPIDResponse.cxx:342 AliTRDPIDResponse.cxx:343 AliTRDPIDResponse.cxx:344 AliTRDPIDResponse.cxx:345 AliTRDPIDResponse.cxx:346 AliTRDPIDResponse.cxx:347 AliTRDPIDResponse.cxx:348 AliTRDPIDResponse.cxx:349 AliTRDPIDResponse.cxx:350 AliTRDPIDResponse.cxx:351 AliTRDPIDResponse.cxx:352 AliTRDPIDResponse.cxx:353 AliTRDPIDResponse.cxx:354 AliTRDPIDResponse.cxx:355 AliTRDPIDResponse.cxx:356 AliTRDPIDResponse.cxx:357 AliTRDPIDResponse.cxx:358 AliTRDPIDResponse.cxx:359 AliTRDPIDResponse.cxx:360 AliTRDPIDResponse.cxx:361 AliTRDPIDResponse.cxx:362 AliTRDPIDResponse.cxx:363 AliTRDPIDResponse.cxx:364 AliTRDPIDResponse.cxx:365 AliTRDPIDResponse.cxx:366 AliTRDPIDResponse.cxx:367 AliTRDPIDResponse.cxx:368 AliTRDPIDResponse.cxx:369 AliTRDPIDResponse.cxx:370 AliTRDPIDResponse.cxx:371 AliTRDPIDResponse.cxx:372 AliTRDPIDResponse.cxx:373 AliTRDPIDResponse.cxx:374 AliTRDPIDResponse.cxx:375 AliTRDPIDResponse.cxx:376 AliTRDPIDResponse.cxx:377 AliTRDPIDResponse.cxx:378 AliTRDPIDResponse.cxx:379 AliTRDPIDResponse.cxx:380 AliTRDPIDResponse.cxx:381 AliTRDPIDResponse.cxx:382 AliTRDPIDResponse.cxx:383 AliTRDPIDResponse.cxx:384 AliTRDPIDResponse.cxx:385 AliTRDPIDResponse.cxx:386 AliTRDPIDResponse.cxx:387 AliTRDPIDResponse.cxx:388 AliTRDPIDResponse.cxx:389 AliTRDPIDResponse.cxx:390 AliTRDPIDResponse.cxx:391 AliTRDPIDResponse.cxx:392 AliTRDPIDResponse.cxx:393 AliTRDPIDResponse.cxx:394 AliTRDPIDResponse.cxx:395 AliTRDPIDResponse.cxx:396 AliTRDPIDResponse.cxx:397 AliTRDPIDResponse.cxx:398 AliTRDPIDResponse.cxx:399 AliTRDPIDResponse.cxx:400 AliTRDPIDResponse.cxx:401 AliTRDPIDResponse.cxx:402 AliTRDPIDResponse.cxx:403 AliTRDPIDResponse.cxx:404 AliTRDPIDResponse.cxx:405 AliTRDPIDResponse.cxx:406 AliTRDPIDResponse.cxx:407 AliTRDPIDResponse.cxx:408 AliTRDPIDResponse.cxx:409 AliTRDPIDResponse.cxx:410 AliTRDPIDResponse.cxx:411 AliTRDPIDResponse.cxx:412 AliTRDPIDResponse.cxx:413 AliTRDPIDResponse.cxx:414 AliTRDPIDResponse.cxx:415 AliTRDPIDResponse.cxx:416 AliTRDPIDResponse.cxx:417 AliTRDPIDResponse.cxx:418 AliTRDPIDResponse.cxx:419 AliTRDPIDResponse.cxx:420 AliTRDPIDResponse.cxx:421 AliTRDPIDResponse.cxx:422 AliTRDPIDResponse.cxx:423 AliTRDPIDResponse.cxx:424 AliTRDPIDResponse.cxx:425 AliTRDPIDResponse.cxx:426 AliTRDPIDResponse.cxx:427 AliTRDPIDResponse.cxx:428 AliTRDPIDResponse.cxx:429 AliTRDPIDResponse.cxx:430 AliTRDPIDResponse.cxx:431 AliTRDPIDResponse.cxx:432 AliTRDPIDResponse.cxx:433 AliTRDPIDResponse.cxx:434 AliTRDPIDResponse.cxx:435 AliTRDPIDResponse.cxx:436 AliTRDPIDResponse.cxx:437 AliTRDPIDResponse.cxx:438 AliTRDPIDResponse.cxx:439 AliTRDPIDResponse.cxx:440 AliTRDPIDResponse.cxx:441 AliTRDPIDResponse.cxx:442 AliTRDPIDResponse.cxx:443 AliTRDPIDResponse.cxx:444 AliTRDPIDResponse.cxx:445 AliTRDPIDResponse.cxx:446 AliTRDPIDResponse.cxx:447 AliTRDPIDResponse.cxx:448 AliTRDPIDResponse.cxx:449 AliTRDPIDResponse.cxx:450 AliTRDPIDResponse.cxx:451 AliTRDPIDResponse.cxx:452 AliTRDPIDResponse.cxx:453 AliTRDPIDResponse.cxx:454 AliTRDPIDResponse.cxx:455 AliTRDPIDResponse.cxx:456 AliTRDPIDResponse.cxx:457 AliTRDPIDResponse.cxx:458 AliTRDPIDResponse.cxx:459 AliTRDPIDResponse.cxx:460 AliTRDPIDResponse.cxx:461 AliTRDPIDResponse.cxx:462 AliTRDPIDResponse.cxx:463 AliTRDPIDResponse.cxx:464 AliTRDPIDResponse.cxx:465 AliTRDPIDResponse.cxx:466 AliTRDPIDResponse.cxx:467 AliTRDPIDResponse.cxx:468 AliTRDPIDResponse.cxx:469 AliTRDPIDResponse.cxx:470 AliTRDPIDResponse.cxx:471 AliTRDPIDResponse.cxx:472 AliTRDPIDResponse.cxx:473 AliTRDPIDResponse.cxx:474 AliTRDPIDResponse.cxx:475 AliTRDPIDResponse.cxx:476 AliTRDPIDResponse.cxx:477 AliTRDPIDResponse.cxx:478 AliTRDPIDResponse.cxx:479 AliTRDPIDResponse.cxx:480 AliTRDPIDResponse.cxx:481 AliTRDPIDResponse.cxx:482 AliTRDPIDResponse.cxx:483 AliTRDPIDResponse.cxx:484 AliTRDPIDResponse.cxx:485 AliTRDPIDResponse.cxx:486 AliTRDPIDResponse.cxx:487 AliTRDPIDResponse.cxx:488 AliTRDPIDResponse.cxx:489 AliTRDPIDResponse.cxx:490 AliTRDPIDResponse.cxx:491 AliTRDPIDResponse.cxx:492 AliTRDPIDResponse.cxx:493 AliTRDPIDResponse.cxx:494 AliTRDPIDResponse.cxx:495 AliTRDPIDResponse.cxx:496 AliTRDPIDResponse.cxx:497 AliTRDPIDResponse.cxx:498 AliTRDPIDResponse.cxx:499 AliTRDPIDResponse.cxx:500 AliTRDPIDResponse.cxx:501 AliTRDPIDResponse.cxx:502 AliTRDPIDResponse.cxx:503 AliTRDPIDResponse.cxx:504 AliTRDPIDResponse.cxx:505 AliTRDPIDResponse.cxx:506 AliTRDPIDResponse.cxx:507 AliTRDPIDResponse.cxx:508 AliTRDPIDResponse.cxx:509 AliTRDPIDResponse.cxx:510 AliTRDPIDResponse.cxx:511 AliTRDPIDResponse.cxx:512 AliTRDPIDResponse.cxx:513 AliTRDPIDResponse.cxx:514 AliTRDPIDResponse.cxx:515 AliTRDPIDResponse.cxx:516 AliTRDPIDResponse.cxx:517 AliTRDPIDResponse.cxx:518 AliTRDPIDResponse.cxx:519 AliTRDPIDResponse.cxx:520 AliTRDPIDResponse.cxx:521 AliTRDPIDResponse.cxx:522 AliTRDPIDResponse.cxx:523 AliTRDPIDResponse.cxx:524 AliTRDPIDResponse.cxx:525 AliTRDPIDResponse.cxx:526 AliTRDPIDResponse.cxx:527 AliTRDPIDResponse.cxx:528 AliTRDPIDResponse.cxx:529 AliTRDPIDResponse.cxx:530 AliTRDPIDResponse.cxx:531 AliTRDPIDResponse.cxx:532 AliTRDPIDResponse.cxx:533 AliTRDPIDResponse.cxx:534 AliTRDPIDResponse.cxx:535 AliTRDPIDResponse.cxx:536 AliTRDPIDResponse.cxx:537 AliTRDPIDResponse.cxx:538 AliTRDPIDResponse.cxx:539 AliTRDPIDResponse.cxx:540 AliTRDPIDResponse.cxx:541 AliTRDPIDResponse.cxx:542 AliTRDPIDResponse.cxx:543 AliTRDPIDResponse.cxx:544 AliTRDPIDResponse.cxx:545 AliTRDPIDResponse.cxx:546 AliTRDPIDResponse.cxx:547 AliTRDPIDResponse.cxx:548 AliTRDPIDResponse.cxx:549 AliTRDPIDResponse.cxx:550 AliTRDPIDResponse.cxx:551 AliTRDPIDResponse.cxx:552