X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ANALYSIS%2FAliAnalysisFilter.cxx;h=af0841f68b6e79308f1a255f4379c78dce25d66e;hb=24dc85b1c8faf7fa713227f1c4f758004f862db7;hp=4ffc5ee52e19ec89e2b7a70f53cbc600964100c5;hpb=c54360e6cd62eedafced089aac7aa0b4b8cf0aec;p=u%2Fmrichter%2FAliRoot.git diff --git a/ANALYSIS/AliAnalysisFilter.cxx b/ANALYSIS/AliAnalysisFilter.cxx index 4ffc5ee52e1..af0841f68b6 100644 --- a/ANALYSIS/AliAnalysisFilter.cxx +++ b/ANALYSIS/AliAnalysisFilter.cxx @@ -79,9 +79,9 @@ UInt_t AliAnalysisFilter::IsSelected(TObject* obj) while((cuts = (AliAnalysisCuts*)next())) { Bool_t acc = cuts->IsSelected(obj); if ((filterMask = cuts->GetFilterMask()) > 0) { - acc = (acc && (filterMask & result)); + acc = (acc && (filterMask == result)); } - + cuts->SetSelected(acc); if (acc) {result |= iCutB & 0x00ffffff;} iCutB *= 2; } @@ -95,12 +95,18 @@ UInt_t AliAnalysisFilter::IsSelected(TList* list) // Loop over all set of cuts // and store the decision UInt_t result = 0; + UInt_t filterMask; + TIter next(fCuts); AliAnalysisCuts *cuts; Int_t iCutB = 1; while((cuts = (AliAnalysisCuts*)next())) { Bool_t acc = cuts->IsSelected(list); + if ((filterMask = cuts->GetFilterMask()) > 0) { + acc = (acc && (filterMask & result)); + } + cuts->SetSelected(acc); if (acc) {result |= iCutB & 0x00ffffff;} iCutB *= 2; } @@ -122,3 +128,15 @@ void AliAnalysisFilter::AddCuts(AliAnalysisCuts* cuts) // Add a set of cuts fCuts->Add(cuts); } + +Bool_t AliAnalysisFilter::IsSelected(char* name) +{ + // + // Returns current result for cut with name + AliAnalysisCuts* cut = (AliAnalysisCuts*) (fCuts->FindObject(name)); + if (cut) { + return (cut->Selected()); + } else { + return 0; + } +}