]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/RESONANCES/AliRsnValueDaughter.cxx
Added ITS,TPC nclusters and chi2 variables to daughter particle (M. Vala)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnValueDaughter.cxx
index 233b3b75b4fc1f4688f266e1b3b09174bcfd1e31..6451dbc21918e411a7670da3c40dc0f7aaa30635 100644 (file)
@@ -259,6 +259,64 @@ Bool_t AliRsnValueDaughter::Eval(TObject *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 nClustersTPC = trackESD->GetITSclusters(0);
+                       fComputedValue =  trackESD->GetITSchi2()/Float_t(nClustersTPC);
+               } 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;
+         }
       default:
          AliError(Form("[%s] Invalid value type for this computation", GetName()));
          return kFALSE;