]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliEventCut.h
kNN algorithm improved. IO Defined
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventCut.h
index 21e822b633717c0aec710e1007cec9b0d0bc734c..198fd5b00694a930731c7d9db4330ec98ac7c6c8 100644 (file)
@@ -1,32 +1,57 @@
 #ifndef ALIEVENTCUT_H
 #define ALIEVENTCUT_H
-//________________________________
+
 ///////////////////////////////////////////////////////////
 //
-// 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
+// Author: Piotr.Skowronski@cern.ch
 ///////////////////////////////////////////////////////////
 
-#include "TObject.h"
+#include <TObject.h>
+#include <TObjArray.h>
+#include "AliEventBaseCut.h"
 
 class AliAOD;
-class TObjArray;
 
 class AliEventCut: public TObject
 {
   public: 
     AliEventCut();
+    AliEventCut(const AliEventCut& in);
     virtual ~AliEventCut();
     
-    virtual Bool_t Pass(AliAOD* aod) const;//returns kTRUE if rejected
+    virtual Bool_t Rejected(AliAOD* aod) const;//returns kTRUE if rejected
+    void           AddBasePartCut(AliEventBaseCut* ebcut);
+
+    void           SetNChargedRange(Int_t min,Int_t max, Double_t etamin = -10.0,Double_t etamax = 10.0);
+    void           SetVertexXRange(Double_t min, Double_t max);
+    void           SetVertexYRange(Double_t min, Double_t max);
+    void           SetVertexZRange(Double_t min, Double_t max);
     
   protected:
-    TObjArray* fBaseCuts;
+    AliEventBaseCut* FindCut(AliEventBaseCut::EEventCutProperty prop);
+    
+    TObjArray fBaseCuts; // Array of cuts
   private:
     ClassDef(AliEventCut,1)
 };
 
+class AliEventEmptyCut: public TObject
+{
+  public: 
+    AliEventEmptyCut(){}
+    virtual ~AliEventEmptyCut(){}
+    
+    Bool_t Rejected(AliAOD* /*aod*/) const {return kFALSE;}//always accept
+    
+  protected:
+  private:
+    ClassDef(AliEventEmptyCut,1)
+};
+
 #endif