New shortcut methods for setting range of primary vertex
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventCut.h
CommitLineData
b26900d0 1#ifndef ALIEVENTCUT_H
2#define ALIEVENTCUT_H
3//________________________________
4///////////////////////////////////////////////////////////
5//
0d8a4589 6// class AliEventCut
b26900d0 7//
0d8a4589 8// Event cut. It has list of base event cuts.
9// Each of base event cut checks only one property.
10// Logical base cuts also exists that point to other base cuts.
11// Using them one can build complicated cut with binary tree structure
b26900d0 12//
13///////////////////////////////////////////////////////////
14
0d8a4589 15#include <TObject.h>
16#include <TObjArray.h>
b4fb427e 17#include "AliEventBaseCut.h"
b26900d0 18
a5556ea5 19class AliAOD;
41d658c5 20enum AliEventBaseCut::EEventCutProperty;
b26900d0 21
22class AliEventCut: public TObject
23{
24 public:
25 AliEventCut();
0d8a4589 26 AliEventCut(const AliEventCut& in);
b26900d0 27 virtual ~AliEventCut();
28
cea0a066 29 virtual Bool_t Rejected(AliAOD* aod) const;//returns kTRUE if rejected
a94c0b01 30 void AddBasePartCut(AliEventBaseCut* ebcut);
31
32 void SetNChargedRange(Int_t min,Int_t max, Double_t etamin = -10.0,Double_t etamax = 10.0);
2d544686 33 void SetVertexXRange(Int_t min,Int_t max);
34 void SetVertexYRange(Int_t min,Int_t max);
35 void SetVertexZRange(Int_t min,Int_t max);
b26900d0 36
37 protected:
41d658c5 38 AliEventBaseCut* FindCut(AliEventBaseCut::EEventCutProperty prop);
a94c0b01 39
0d8a4589 40 TObjArray fBaseCuts;
b26900d0 41 private:
42 ClassDef(AliEventCut,1)
43};
44
b4fb427e 45class AliEventEmptyCut: public TObject
0d8a4589 46{
47 public:
b4fb427e 48 AliEventEmptyCut(){}
49 virtual ~AliEventEmptyCut(){}
0d8a4589 50
41d658c5 51 Bool_t Rejected(AliAOD* /*aod*/) const {return kFALSE;}//always accept
0d8a4589 52
53 protected:
54 private:
b4fb427e 55 ClassDef(AliEventEmptyCut,1)
0d8a4589 56};
57
b26900d0 58#endif