// 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(obj);
+ if ((filterMask = cuts->GetFilterMask()) > 0) {
+ acc = (acc && (filterMask == result));
+ }
+ cuts->SetSelected(acc);
if (acc) {result |= iCutB & 0x00ffffff;}
iCutB *= 2;
}
// 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;
}
// 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;
+ }
+}