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 "AliTriggerAnalysis.h"
18 #include "AliFlowTrackCuts.h"
20 class AliFlowEventCuts : public TNamed {
23 enum refMultMethod { kTPConly, kSPDtracklets, kV0, kSPD1clusters };
26 AliFlowEventCuts(const char* name, const char* title = "AliFlowEventCuts");
27 AliFlowEventCuts(const AliFlowEventCuts& someCuts);
28 AliFlowEventCuts& operator=(const AliFlowEventCuts& someCuts);
29 virtual ~AliFlowEventCuts();
31 virtual Bool_t IsSelected(TObject* obj);
33 Bool_t PassesCuts(AliVEvent* event);
35 static AliFlowEventCuts* StandardCuts();
37 void SetNumberOfTracksMax(Int_t value) {fNumberOfTracksMax=value;fCutNumberOfTracks=kTRUE;}
38 void SetNumberOfTracksMin(Int_t value) {fNumberOfTracksMin=value;fCutNumberOfTracks=kTRUE;}
39 void SetNumberOfTracksRange(Int_t min, Int_t max) {fNumberOfTracksMin=min;fNumberOfTracksMax=max;fCutNumberOfTracks=kTRUE;}
40 void SetRefMultMax(Int_t value) {fRefMultMax=value;fCutRefMult=kTRUE;}
41 void SetRefMultMin(Int_t value) {fRefMultMin=value;fCutRefMult=kTRUE;}
42 void SetRefMultRange(Int_t min, Int_t max) {fRefMultMin=min;fRefMultMax=max;fCutRefMult=kTRUE;}
43 void SetPrimaryVertexXrange(Double_t min, Double_t max)
44 {fCutPrimaryVertexX=kTRUE; fPrimaryVertexXmin=min; fPrimaryVertexXmax=max;}
45 void SetPrimaryVertexYrange(Double_t min, Double_t max)
46 {fCutPrimaryVertexY=kTRUE; fPrimaryVertexYmin=min; fPrimaryVertexYmax=max;}
47 void SetPrimaryVertexZrange(Double_t min, Double_t max)
48 {fCutPrimaryVertexZ=kTRUE; fPrimaryVertexZmin=min; fPrimaryVertexZmax=max;}
49 void SetNContributorsRange(Int_t min, Int_t max=INT_MAX)
50 {fCutNContributors=kTRUE; fNContributorsMin=min; fNContributorsMax=max;}
51 void SetMeanPtRange(Double_t min, Double_t max) {fCutMeanPt=kTRUE; fMeanPtMax=max; fMeanPtMin=min;}
52 void SetCutSPDvertexerAnomaly(Bool_t b) {fCutSPDvertexerAnomaly=b;}
53 void SetCutZDCtiming(Bool_t c=kTRUE) {fCutZDCtiming=c;}
55 Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;}
56 Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;}
57 Int_t GetRefMultMax() const {return fRefMultMax;}
58 Int_t GetRefMultMin() const {return fRefMultMin;}
59 void SetRefMultMethod(refMultMethod m) {fRefMultMethod=m;}
60 refMultMethod GetRefMultMethod() const {return fRefMultMethod;}
61 void SetRefMultCuts( AliFlowTrackCuts* cuts ) {fRefMultCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());}
62 void SetMeanPtCuts( AliFlowTrackCuts* cuts ) {fMeanPtCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());}
63 AliFlowTrackCuts* GetRefMultCuts() const {return fRefMultCuts;}
65 Int_t RefMult(AliVEvent* event);
66 //Int_t GetRefMult() {return fRefMult;}
67 Int_t GetReferenceMultiplicity(AliVEvent* event) {return RefMult(event);}
68 const char* CentrMethName(refMultMethod) const;
69 void SetCentralityPercentileRange(Float_t min, Float_t max){ fCentralityPercentileMin=min;
70 fCentralityPercentileMax=max;
71 fCutCentralityPercentile=kTRUE; }
72 void SetCentralityPercentileMethod( refMultMethod m) {fRefMultMethod=m;}
75 Bool_t fCutNumberOfTracks;//cut on # of tracks
76 Int_t fNumberOfTracksMax; //limits
77 Int_t fNumberOfTracksMin; //limits
78 Bool_t fCutRefMult; //cut on refmult
79 refMultMethod fRefMultMethod; //how do we calculate refmult?
80 Int_t fRefMultMax; //max refmult
81 Int_t fRefMultMin; //min refmult
82 AliFlowTrackCuts* fRefMultCuts; //cuts
83 AliFlowTrackCuts* fMeanPtCuts; //mean pt cuts
84 Bool_t fCutPrimaryVertexX; //cut on x of prim vtx
85 Double_t fPrimaryVertexXmax; //max x prim vtx
86 Double_t fPrimaryVertexXmin; //min x prim vtx
87 Bool_t fCutPrimaryVertexY; //cut on y of prim vtx
88 Double_t fPrimaryVertexYmax; //max y prim vtx
89 Double_t fPrimaryVertexYmin; //min y prim vtx
90 Bool_t fCutPrimaryVertexZ; //cut on z of prim vtx
91 Double_t fPrimaryVertexZmax; //max z prim vtx
92 Double_t fPrimaryVertexZmin; //min z prim vtx
93 Bool_t fCutNContributors; //cut on number of contributors
94 Int_t fNContributorsMax; //maximal number of contrib
95 Int_t fNContributorsMin; //minimal number of contrib
96 Bool_t fCutMeanPt; //cut on mean pt
97 Double_t fMeanPtMax; //max mean pt
98 Double_t fMeanPtMin; //min mean pt
99 Bool_t fCutSPDvertexerAnomaly; //cut on the spd vertexer anomaly
100 Bool_t fCutCentralityPercentile; //cut on centrality perc. from AliESDCentrality
101 refMultMethod fCentralityPercentileMethod; //where to get the percentile from
102 Float_t fCentralityPercentileMax; // max centr. perc
103 Float_t fCentralityPercentileMin; // min centr. perc
104 Bool_t fCutZDCtiming; //cut on ZDC timing
105 AliTriggerAnalysis fTrigAna; //trigger analysis object
107 ClassDef(AliFlowEventCuts,2)