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 #include "AliFlowTrackCuts.h"
19 class AliFlowEventCuts : public TNamed {
22 enum refMultMethod { kTPConly, kSPDtracklets, kV0 };
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;}
50 void SetMeanPtRange(Int_t min, Int_t max) {fCutMeanPt=kTRUE; fMeanPtMax=max; fMeanPtMin=min;}
52 Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;}
53 Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;}
54 Int_t GetRefMultMax() const {return fRefMultMax;}
55 Int_t GetRefMultMin() const {return fRefMultMin;}
56 void SetRefMultMethod(refMultMethod m) {fRefMultMethod=m;}
57 refMultMethod GetRefMultMethod() const {return fRefMultMethod;}
58 void SetRefMultCuts( AliFlowTrackCuts* cuts ) {fRefMultCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());}
59 void SetMeanPtCuts( AliFlowTrackCuts* cuts ) {fMeanPtCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());}
60 AliFlowTrackCuts* GetRefMultCuts() const {return fRefMultCuts;}
62 Int_t RefMult(const AliVEvent* event);
63 //Int_t GetRefMult() {return fRefMult;}
64 Int_t GetReferenceMultiplicity(const AliVEvent* event) {return RefMult(event);}
67 Bool_t fCutNumberOfTracks;//cut on # of tracks
68 Int_t fNumberOfTracksMax; //limits
69 Int_t fNumberOfTracksMin; //limits
70 Bool_t fCutRefMult; //cut on refmult
71 refMultMethod fRefMultMethod; //how do we calculate refmult?
72 Int_t fRefMultMax; //max refmult
73 Int_t fRefMultMin; //min refmult
74 AliFlowTrackCuts* fRefMultCuts; //cuts
75 AliFlowTrackCuts* fMeanPtCuts; //mean pt cuts
76 Bool_t fCutPrimaryVertexX; //cut on x of prim vtx
77 Double_t fPrimaryVertexXmax; //max x prim vtx
78 Double_t fPrimaryVertexXmin; //min x prim vtx
79 Bool_t fCutPrimaryVertexY; //cut on y of prim vtx
80 Double_t fPrimaryVertexYmax; //max y prim vtx
81 Double_t fPrimaryVertexYmin; //min y prim vtx
82 Bool_t fCutPrimaryVertexZ; //cut on z of prim vtx
83 Double_t fPrimaryVertexZmax; //max z prim vtx
84 Double_t fPrimaryVertexZmin; //min z prim vtx
85 Bool_t fCutNContributors; //cut on number of contributors
86 Int_t fNContributorsMax; //maximal number of contrib
87 Int_t fNContributorsMin; //minimal number of contrib
88 Bool_t fCutMeanPt; //cut on mean pt
89 Int_t fMeanPtMax; //max mean pt
90 Int_t fMeanPtMin; //min mean pt
93 ClassDef(AliFlowEventCuts,2)