1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. */
2 /* See cxx source for full Copyright notice */
7 // origin: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch)
9 #ifndef ALIFLOWEVENTCUTS_H
10 #define ALIFLOWEVENTCUTS_H
17 class AliFlowTrackCuts;
19 class AliFlowEventCuts : public TNamed {
22 enum refMultMethod { kTPConly, kSPDtracklets };
25 AliFlowEventCuts(const char* name, const char* title = "AliFlowEventCuts");
26 AliFlowEventCuts(const AliFlowEventCuts& someCuts);
27 AliFlowEventCuts& operator=(const AliFlowEventCuts& someCuts);
28 virtual ~AliFlowEventCuts() {}
30 virtual Bool_t IsSelected(const TObject* obj);
32 Bool_t PassesCuts(const AliVEvent* event);
34 static AliFlowEventCuts* StandardCuts();
36 void SetNumberOfTracksMax(Int_t value) {fNumberOfTracksMax=value;fCutNumberOfTracks=kTRUE;}
37 void SetNumberOfTracksMin(Int_t value) {fNumberOfTracksMin=value;fCutNumberOfTracks=kTRUE;}
38 void SetNumberOfTracksRange(Int_t min, Int_t max) {fNumberOfTracksMin=min;fNumberOfTracksMax=max;fCutNumberOfTracks=kTRUE;}
39 void SetRefMultMax(Int_t value) {fRefMultMax=value;fCutRefMult=kTRUE;}
40 void SetRefMultMin(Int_t value) {fRefMultMin=value;fCutRefMult=kTRUE;}
41 void SetRefMultRange(Int_t min, Int_t max) {fRefMultMin=min;fRefMultMax=max;fCutRefMult=kTRUE;}
42 void SetPrimaryVertexXrange(Double_t min, Double_t max)
43 {fCutPrimaryVertexX=kTRUE; fPrimaryVertexXmin=min; fPrimaryVertexXmax=max;}
44 void SetPrimaryVertexYrange(Double_t min, Double_t max)
45 {fCutPrimaryVertexY=kTRUE; fPrimaryVertexYmin=min; fPrimaryVertexYmax=max;}
46 void SetPrimaryVertexZrange(Double_t min, Double_t max)
47 {fCutPrimaryVertexZ=kTRUE; fPrimaryVertexZmin=min; fPrimaryVertexZmax=max;}
48 void SetNContributorsRange(Int_t min, Int_t max=INT_MAX)
49 {fCutNContributors=kTRUE; fNContributorsMin=min; fNContributorsMax=max;}
51 Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;}
52 Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;}
53 Int_t GetRefMultMax() const {return fRefMultMax;}
54 Int_t GetRefMultMin() const {return fRefMultMin;}
55 void SetRefMultMethod(refMultMethod m) {fRefMultMethod=m;}
56 refMultMethod GetRefMultMethod() const {return fRefMultMethod;}
57 void SetRefMultCuts( AliFlowTrackCuts* cuts ) {fRefMultCuts=cuts;}
58 AliFlowTrackCuts* GetRefMultCuts() const {return fRefMultCuts;}
60 Int_t RefMult(const AliVEvent* event);
61 //Int_t GetRefMult() {return fRefMult;}
62 Int_t GetReferenceMultiplicity(const AliVEvent* event) {return RefMult(event);}
65 Bool_t fCutNumberOfTracks;//cut on # of tracks
66 Int_t fNumberOfTracksMax; //limits
67 Int_t fNumberOfTracksMin; //limits
68 Bool_t fCutRefMult; //cut on refmult
69 refMultMethod fRefMultMethod; //how do we calculate refmult?
70 Int_t fRefMultMax; //max refmult
71 Int_t fRefMultMin; //min refmult
72 AliFlowTrackCuts* fRefMultCuts; //cuts
73 Bool_t fCutPrimaryVertexX; //cut on x of prim vtx
74 Double_t fPrimaryVertexXmax; //max x prim vtx
75 Double_t fPrimaryVertexXmin; //min x prim vtx
76 Bool_t fCutPrimaryVertexY; //cut on y of prim vtx
77 Double_t fPrimaryVertexYmax; //max y prim vtx
78 Double_t fPrimaryVertexYmin; //min y prim vtx
79 Bool_t fCutPrimaryVertexZ; //cut on z of prim vtx
80 Double_t fPrimaryVertexZmax; //max z prim vtx
81 Double_t fPrimaryVertexZmin; //min z prim vtx
82 Bool_t fCutNContributors; //cut on number of contributors
83 Int_t fNContributorsMax; //maximal number of contrib
84 Int_t fNContributorsMin; //minimal number of contrib
87 ClassDef(AliFlowEventCuts,2)