Fix for K0 pdg code (F.Blanco) + option for filling histos (M.Vala)
authorfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 11 Apr 2012 13:15:33 +0000 (13:15 +0000)
committerfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 11 Apr 2012 13:15:33 +0000 (13:15 +0000)
PWGLF/RESONANCES/AliRsnDaughter.cxx
PWGLF/RESONANCES/AliRsnEvent.cxx
PWGLF/RESONANCES/AliRsnListOutput.cxx

index 91e7d13..2d0283a 100644 (file)
@@ -198,7 +198,7 @@ Int_t AliRsnDaughter::SpeciesPDG(ESpecies species)
       case kPion:     return 211;
       case kKaon:     return 321;
       case kProton:   return 2212;
-      case kKaon0:    return 310;
+      case kKaon0:    return 311;
       case kLambda:   return 3122;
       case kXi:       return 3312;
       case kOmega:    return 3334;
index 20410c6..cc55f46 100644 (file)
@@ -248,12 +248,18 @@ void AliRsnEvent::SetDaughterESDv0(AliRsnDaughter &out, Int_t i)
                TParticle *pp = mc->Stack()->Particle(lp);
                TParticle *pn = mc->Stack()->Particle(ln);
                if (pp && pn) {
-                  // if their first mothers are the same, the V0 is true
-                  // otherwise label remains '-1' --> fake V0
-                  if (pp->GetFirstMother() == pn->GetFirstMother() && pp->GetFirstMother() >= 0) {
-                     out.SetLabel(pp->GetFirstMother());
-                     SetMCInfoESD(out);
-                  }
+                // if their first mothers are the same, the V0 is true
+                // otherwise label remains '-1' --> fake V0
+                if (pp->GetFirstMother() == pn->GetFirstMother() && pp->GetFirstMother() >= 0) {
+                  out.SetLabel(pp->GetFirstMother());
+                  //patch for k0s/k0l
+                  TParticle *mom = mc->Stack()->Particle(pn->GetFirstMother());
+                  if(mom->GetPdgCode() == 310) {
+                    //take the mother of the k0s which is a k0 (311)
+                    out.SetLabel(mom->GetFirstMother());
+                  }
+                  SetMCInfoESD(out);
+                }
                }
             }
          }
@@ -292,7 +298,7 @@ void AliRsnEvent::SetDaughterAODv0(AliRsnDaughter &out, Int_t i)
                   // otherwise label remains '-1' --> fake V0
                   if (pp->GetMother() == pn->GetMother() && pp->GetMother() >= 0) {
                      out.SetLabel(pp->GetMother());
-                     SetMCInfoAOD(out);
+                    SetMCInfoAOD(out);
                   }
                }
             }
index 26dcab8..0f1a3dc 100644 (file)
@@ -388,6 +388,9 @@ Bool_t AliRsnListOutput::Fill(TObject *target, Int_t step)
       return kTRUE;
    } else if (obj->InheritsFrom(THnSparse::Class())) {
       THnSparseF *h = (THnSparseF *)obj;
+      for (Int_t iAxis = 0; iAxis<h->GetNdimensions(); iAxis++) {
+         if (fArray.At(iAxis)>h->GetAxis(iAxis)->GetXmax() || fArray.At(iAxis)<h->GetAxis(iAxis)->GetXmin()) return kFALSE;
+      }
       h->Fill(fArray.GetArray());
       return kTRUE;
    } else if (obj->InheritsFrom(AliCFContainer::Class())) {
@@ -454,6 +457,9 @@ Bool_t AliRsnListOutput::Fill(AliRsnEvent *ev, AliRsnDaughter *d)
       return kTRUE;
    } else if (obj->InheritsFrom(THnSparse::Class())) {
       THnSparseF *h = (THnSparseF *)obj;
+      for (Int_t iAxis = 0; iAxis<h->GetNdimensions(); iAxis++) {
+         if (values[iAxis]>h->GetAxis(iAxis)->GetXmax() || values[iAxis]<h->GetAxis(iAxis)->GetXmin()) return kFALSE;
+      }
       h->Fill(values);
       return kTRUE;
    } else {