]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/RESONANCES/AliRsnCutManager.h
Changes for #82873: Module debugging broken (Christian)
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCutManager.h
index b4829e6b49c196bd860d125bca9ed0e81d96f194..7bbf1de350bd6c5db037cc44ddea1e13d5dc64a8 100644 (file)
@@ -42,6 +42,7 @@ public:
    AliRsnCutSet*  GetDaughter2Cuts()      {return &fDaughterCuts2;}
    AliRsnCutSet*  GetMotherCuts()         {return &fMotherCuts;}
 
+   Bool_t         IsSelected(TObject *object);
    Bool_t         PassCommonDaughterCuts(AliRsnDaughter *daughter) {return fDaughterCutsCommon.IsSelected(daughter);}
    Bool_t         PassDaughter1Cuts(AliRsnDaughter *daughter)      {return fDaughterCuts1.IsSelected(daughter);}
    Bool_t         PassDaughter2Cuts(AliRsnDaughter *daughter)      {return fDaughterCuts2.IsSelected(daughter);}
@@ -59,4 +60,26 @@ private:
    ClassDef(AliRsnCutManager, 2)      // dictionary
 };
 
+inline Bool_t AliRsnCutManager::IsSelected(TObject *object)
+{
+//
+// Check all selection cuts
+//
+
+   if (object->InheritsFrom(AliRsnDaughter::Class())) {
+      return PassCommonDaughterCuts((AliRsnDaughter*)object);
+   } else if (object->InheritsFrom(AliRsnMother::Class())) {
+      AliRsnMother *mother = (AliRsnMother*)object;
+      if (!PassCommonDaughterCuts(mother->GetDaughter(0))) return kFALSE;
+      if (!PassCommonDaughterCuts(mother->GetDaughter(1))) return kFALSE;
+      if (!PassDaughter1Cuts(mother->GetDaughter(0))) return kFALSE;
+      if (!PassDaughter2Cuts(mother->GetDaughter(1))) return kFALSE;
+      if (!PassMotherCuts(mother)) return kFALSE;
+      return kTRUE;
+   } else {
+      AliError("AliRsnCutManager can check only daughters and mothers");
+      return kFALSE;
+   }
+}
+
 #endif