Event Cut developed; Spacial event move implemented; and few others
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventCut.h
index 21e822b633717c0aec710e1007cec9b0d0bc734c..7cb041d6382f75d90022a2160be69823afaf25c3 100644 (file)
@@ -3,30 +3,48 @@
 //________________________________
 ///////////////////////////////////////////////////////////
 //
 //________________________________
 ///////////////////////////////////////////////////////////
 //
-// class AliRunAnalysis
-//
-//
+// class AliEventCut
 //
 //
+// Event cut. It has list of base event cuts. 
+// Each of base event cut checks only one property.
+// Logical base cuts also exists that point to other base cuts.
+// Using them one can build complicated cut with binary tree structure
 //
 ///////////////////////////////////////////////////////////
 
 //
 ///////////////////////////////////////////////////////////
 
-#include "TObject.h"
+#include <TObject.h>
+#include <TObjArray.h>
+#include "AliBaseEventCut.h"
 
 class AliAOD;
 
 class AliAOD;
-class TObjArray;
 
 class AliEventCut: public TObject
 {
   public: 
     AliEventCut();
 
 class AliEventCut: public TObject
 {
   public: 
     AliEventCut();
+    AliEventCut(const AliEventCut& in);
     virtual ~AliEventCut();
     
     virtual Bool_t Pass(AliAOD* aod) const;//returns kTRUE if rejected
     virtual ~AliEventCut();
     
     virtual Bool_t Pass(AliAOD* aod) const;//returns kTRUE if rejected
+    void AddBasePartCut(AliBaseEventCut* ebcut){fBaseCuts.Add(ebcut);}
     
   protected:
     
   protected:
-    TObjArray* fBaseCuts;
+    TObjArray fBaseCuts;
   private:
     ClassDef(AliEventCut,1)
 };
 
   private:
     ClassDef(AliEventCut,1)
 };
 
+class AliEmptyEventCut: public TObject
+{
+  public: 
+    AliEmptyEventCut(){}
+    virtual ~AliEmptyEventCut(){}
+    
+    Bool_t Pass(AliAOD* aod) const {return kFALSE;}//always accept
+    
+  protected:
+  private:
+    ClassDef(AliEmptyEventCut,1)
+};
+
 #endif
 #endif