- case kP:
- fComputedValue = (fUseMCInfo ? refMC->P() : ref->P());
- return kTRUE;
- case kPt:
- fComputedValue = (fUseMCInfo ? refMC->Pt() : ref->Pt());
- return kTRUE;
- case kEta:
- fComputedValue = (fUseMCInfo ? refMC->Eta() : ref->Eta());
- return kTRUE;
- case kMass:
- fComputedValue = (fUseMCInfo ? refMC->M() : ref->M());
- return kTRUE;
- case kPtpc:
- if (track) {
- fComputedValue = track->GetTPCmomentum();
- return kTRUE;
- } else {
- AliWarning("Cannot get TPC momentum for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kITSsignal:
- if (track) {
- fComputedValue = track->GetITSsignal();
- return kTRUE;
- } else {
- AliWarning("Cannot get ITS signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTPCsignal:
- if (track) {
- fComputedValue = track->GetTPCsignal();
- return kTRUE;
- } else {
- AliWarning("Cannot get TPC signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTOFsignal:
- if (track) {
- fComputedValue = track->GetTOFsignal();
- return kTRUE;
- } else {
- AliWarning("Cannot get TOF signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTPCnsigmaPi:
- if (track) {
- AliPIDResponse *pid = fEvent->GetPIDResponse();
- fComputedValue = pid->NumberOfSigmasTPC(track, AliPID::kPion);
- return kTRUE;
- } else {
- AliWarning("Cannot get TOF signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTPCnsigmaK:
- if (track) {
- AliPIDResponse *pid = fEvent->GetPIDResponse();
- fComputedValue = pid->NumberOfSigmasTPC(track, AliPID::kKaon);
- return kTRUE;
- } else {
- AliWarning("Cannot get TOF signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTPCnsigmaP:
- if (track) {
- AliPIDResponse *pid = fEvent->GetPIDResponse();
- fComputedValue = pid->NumberOfSigmasTPC(track, AliPID::kProton);
- return kTRUE;
- } else {
- AliWarning("Cannot get TOF signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTOFnsigmaPi:
- if (track) {
- AliPIDResponse *pid = fEvent->GetPIDResponse();
- fComputedValue = pid->NumberOfSigmasTOF(track, AliPID::kPion);
- return kTRUE;
- } else {
- AliWarning("Cannot get TOF signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTOFnsigmaK:
- if (track) {
- AliPIDResponse *pid = fEvent->GetPIDResponse();
- fComputedValue = pid->NumberOfSigmasTOF(track, AliPID::kKaon);
- return kTRUE;
- } else {
- AliWarning("Cannot get TOF signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTOFnsigmaP:
- if (track) {
- AliPIDResponse *pid = fEvent->GetPIDResponse();
- fComputedValue = pid->NumberOfSigmasTOF(track, AliPID::kProton);
- return kTRUE;
- } else {
- AliWarning("Cannot get TOF signal for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kNITSclusters:
- if (track) {
- AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
- if (trackESD) {
- fComputedValue = trackESD->GetITSclusters(0);
- } else {
- fComputedValue = ((AliAODTrack *)track)->GetITSNcls();
- }
- return kTRUE;
- } else {
- AliWarning("Cannot get n ITS clusters for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kNTPCclusters:
- if (track) {
- AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
- if (trackESD) {
- fComputedValue = trackESD->GetTPCclusters(0);
- } else {
- fComputedValue = ((AliAODTrack *)track)->GetTPCNcls();
- }
- return kTRUE;
- } else {
- AliWarning("Cannot get n TPC clusters for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kITSchi2:
- if (track) {
- AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
- if (trackESD) {
- UShort_t nClustersITS = trackESD->GetITSclusters(0);
- fComputedValue = trackESD->GetITSchi2()/Float_t(nClustersITS);
- } else {
- fComputedValue = ((AliAODTrack *)track)->Chi2perNDF();
- }
- return kTRUE;
- } else {
- AliWarning("Cannot get ITS chi^2 for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kTPCchi2:
- if (track) {
- AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
- if (trackESD) {
- UShort_t nClustersTPC = trackESD->GetTPCclusters(0);
- fComputedValue = trackESD->GetTPCchi2()/Float_t(nClustersTPC);
- } else {
- fComputedValue = ((AliAODTrack *)track)->Chi2perNDF();
- }
- return kTRUE;
- } else {
- AliWarning("Cannot get TPC chi^2 for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kDCAXY:
- if (track) {
- AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
- if (trackESD) {
- Float_t b[2], bCov[3];
- trackESD->GetImpactParameters(b, bCov);
- fComputedValue = b[0];
- } else {
- Double_t b[2]= {-999,-999}, cov[3];
- AliAODVertex *vertex = fEvent->GetRefAOD()->GetPrimaryVertex();
- if(vertex) {
- track->PropagateToDCA(vertex, fEvent->GetRefAOD()->GetMagneticField(),kVeryBig, b, cov);
- fComputedValue = b[0];
- } else {
- fComputedValue = -999;
- }
- }
- return kTRUE;
- } else {
- AliWarning("Cannot get TPC chi^2 for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
- case kDCAZ:
- if (track) {
- AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
- if (trackESD) {
- Float_t b[2], bCov[3];
- trackESD->GetImpactParameters(b, bCov);
- fComputedValue = b[1];
- } else {
- Double_t b[2]= {-999,-999}, cov[3];
- AliAODVertex *vertex = fEvent->GetRefAOD()->GetPrimaryVertex();
- if(vertex) {
- track->PropagateToDCA(vertex, fEvent->GetRefAOD()->GetMagneticField(),kVeryBig, b, cov);
- fComputedValue = b[1];
- } else {
- fComputedValue = -999;
- }
-
- }
- return kTRUE;
- } else {
- AliWarning("Cannot get TPC chi^2 for non-track object");
- fComputedValue = 0.0;
- return kFALSE;
- }
-
- case kCharge:
- fComputedValue = (fUseMCInfo ? refMC->Charge() : ref->Charge());
- return kTRUE;
+ case kP:
+ fComputedValue = (fUseMCInfo ? refMC->P() : ref->P());
+ return kTRUE;
+
+ case kPt:
+ fComputedValue = (fUseMCInfo ? refMC->Pt() : ref->Pt());
+ return kTRUE;
+
+ case kEta:
+ fComputedValue = (fUseMCInfo ? refMC->Eta() : ref->Eta());
+ return kTRUE;
+
+ case kMass:
+ fComputedValue = (fUseMCInfo ? refMC->M() : ref->M());
+ return kTRUE;
+
+ case kPtpc:
+ if (track) {
+ fComputedValue = track->GetTPCmomentum();
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TPC momentum for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kITSsignal:
+ if (track) {
+ fComputedValue = track->GetITSsignal();
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get ITS signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTPCsignal:
+ if (track) {
+ fComputedValue = track->GetTPCsignal();
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TPC signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTOFsignal:
+ if (track) {
+ fComputedValue = track->GetTOFsignal();
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTPCnsigmaPi:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ fComputedValue = pid->NumberOfSigmasTPC(track, AliPID::kPion);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTPCnsigmaK:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ fComputedValue = pid->NumberOfSigmasTPC(track, AliPID::kKaon);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTPCnsigmaP:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ fComputedValue = pid->NumberOfSigmasTPC(track, AliPID::kProton);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTOFnsigmaPi:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ fComputedValue = pid->NumberOfSigmasTOF(track, AliPID::kPion);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTOFnsigmaK:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ fComputedValue = pid->NumberOfSigmasTOF(track, AliPID::kKaon);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTOFnsigmaP:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ fComputedValue = pid->NumberOfSigmasTOF(track, AliPID::kProton);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF signal for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTOFdeltaPi:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ pid->GetSignalDelta(AliPIDResponse::kTOF, track, AliPID::kPion, fComputedValue, kFALSE);//(==AliPIDResponse::kDetPidOk);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF delta for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTOFdeltaK:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ pid->GetSignalDelta(AliPIDResponse::kTOF, track, AliPID::kKaon, fComputedValue, kFALSE);//(==AliPIDResponse::kDetPidOk);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF delta for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kTOFdeltaP:
+ if (track) {
+ AliPIDResponse *pid = fEvent->GetPIDResponse();
+ pid->GetSignalDelta(AliPIDResponse::kTOF, track, AliPID::kProton, fComputedValue, kFALSE);//(==AliPIDResponse::kDetPidOk);
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TOF delta for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kNITSclusters:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ if (trackESD) {
+ fComputedValue = trackESD->GetITSclusters(0);
+ } else {
+ fComputedValue = ((AliAODTrack *)track)->GetITSNcls();
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get n ITS clusters for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kNTPCclusters:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ if (trackESD) {
+ fComputedValue = trackESD->GetTPCclusters(0);
+ } else {
+ fComputedValue = ((AliAODTrack *)track)->GetTPCNcls();
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get n TPC clusters for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kNTPCcrossedRows:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ if (trackESD) {
+ fComputedValue = trackESD->GetTPCCrossedRows();
+ } else {
+ fComputedValue = ((AliAODTrack *)track)->GetTPCNCrossedRows();
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get n TPC crossed rows for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kNTPCcrossedRowsFclusters:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ fComputedValue = 1.0;
+ if (trackESD) {
+ if (trackESD->GetTPCNclsF()>0) fComputedValue = trackESD->GetTPCCrossedRows() / trackESD->GetTPCNclsF();
+ } else {
+ Float_t nCrossedRows = ((AliAODTrack*) track)->GetTPCNCrossedRows();
+ Float_t nFcls = ((AliAODTrack*) track)->GetTPCNclsF();
+ if (nFcls>0) fComputedValue = nCrossedRows / nFcls;
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get n TPC crossed rows/findable clusters for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kITSchi2:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ if (trackESD) {
+ UShort_t nClustersITS = trackESD->GetITSclusters(0);
+ fComputedValue = trackESD->GetITSchi2()/Float_t(nClustersITS);
+ } else {
+ fComputedValue = ((AliAODTrack *)track)->Chi2perNDF();
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get ITS chi^2 for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+ case kTPCchi2:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ if (trackESD) {
+ UShort_t nClustersTPC = trackESD->GetTPCclusters(0);
+ fComputedValue = trackESD->GetTPCchi2()/Float_t(nClustersTPC);
+ } else {
+ fComputedValue = ((AliAODTrack *)track)->Chi2perNDF();
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TPC chi^2 for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+ case kDCAXY:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ if (trackESD) {
+ Float_t b[2], bCov[3];
+ trackESD->GetImpactParameters(b, bCov);
+ fComputedValue = b[0];
+ } else {
+ Double_t b[2]= {-999,-999}, cov[3];
+ AliAODVertex *vertex = fEvent->GetRefAOD()->GetPrimaryVertex();
+ if(vertex) {
+ track->PropagateToDCA(vertex, fEvent->GetRefAOD()->GetMagneticField(),kVeryBig, b, cov);
+ fComputedValue = b[0];
+ } else {
+ fComputedValue = -999;
+ }
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TPC chi^2 for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+ case kDCAZ:
+ if (track) {
+ AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+ if (trackESD) {
+ Float_t b[2], bCov[3];
+ trackESD->GetImpactParameters(b, bCov);
+ fComputedValue = b[1];
+ } else {
+ Double_t b[2]= {-999,-999}, cov[3];
+ AliAODVertex *vertex = fEvent->GetRefAOD()->GetPrimaryVertex();
+ if(vertex) {
+ track->PropagateToDCA(vertex, fEvent->GetRefAOD()->GetMagneticField(),kVeryBig, b, cov);
+ fComputedValue = b[1];
+ } else {
+ fComputedValue = -999;
+ }
+
+ }
+ return kTRUE;
+ } else {
+ AliWarning("Cannot get TPC chi^2 for non-track object");
+ fComputedValue = 0.0;
+ return kFALSE;
+ }
+
+ case kCharge:
+ fComputedValue = (fUseMCInfo ? refMC->Charge() : ref->Charge());
+ return kTRUE;