]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisFilter.cxx
- AliMUONRecoParam.cxx:
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisFilter.cxx
index def092c4cfa3cb9b6635247c7400069fb90fbc1c..fd364fc73c087ca6cc5ceba810b21503f85f609f 100644 (file)
@@ -48,12 +48,22 @@ AliAnalysisFilter::AliAnalysisFilter(const char* name, const char* title):
 }
 
 AliAnalysisFilter::AliAnalysisFilter(const AliAnalysisFilter& obj):
-    TNamed(obj)
+    TNamed(obj),
+    fCuts(0)
 {
 // Copy constructor
+    fCuts = obj.fCuts;
 }
 
 
+AliAnalysisFilter& AliAnalysisFilter::operator=(const AliAnalysisFilter& other)
+{
+// Assignment
+    TNamed::operator=(other);
+    fCuts = other.fCuts;
+    return *this;
+   }
+   
 UInt_t AliAnalysisFilter::IsSelected(TObject* obj)
 {
     //
@@ -73,6 +83,25 @@ UInt_t AliAnalysisFilter::IsSelected(TObject* obj)
     return result;
 }
 
+UInt_t AliAnalysisFilter::IsSelected(TList* list)
+{
+    //
+    // Loop over all set of cuts
+    // and store the decision
+    UInt_t result = 0;
+    TIter next(fCuts);
+    AliAnalysisCuts *cuts;
+    Int_t iCutB = 1;
+       
+    while((cuts = (AliAnalysisCuts*)next())) {
+       Bool_t acc = cuts->IsSelected(list);
+       if (acc) {result |= iCutB & 0x00ffffff;}
+       iCutB *= 2;
+    }  
+
+    return result;
+}
+
 void AliAnalysisFilter::Init()
 {
     //