]>
Commit | Line | Data |
---|---|---|
daf66719 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. */ |
2 | /* See cxx source for full Copyright notice */ | |
3 | /* $Id$ */ | |
4 | ||
5 | // AliFlowEventCuts: | |
6 | // An event cut class | |
7 | // origin: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch) | |
8 | ||
9 | #ifndef ALIFLOWEVENTCUTS_H | |
10 | #define ALIFLOWEVENTCUTS_H | |
11 | ||
12 | #include <float.h> | |
cabf813b | 13 | #include <limits.h> |
daf66719 | 14 | #include "TNamed.h" |
15 | ||
9a0783cc | 16 | class AliVEvent; |
2279052e | 17 | #include "AliFlowTrackCuts.h" |
daf66719 | 18 | |
19 | class AliFlowEventCuts : public TNamed { | |
20 | ||
21 | public: | |
2cdf5762 | 22 | enum refMultMethod { kTPConly, kSPDtracklets, kV0, kSPD1clusters }; |
9a0783cc | 23 | |
daf66719 | 24 | AliFlowEventCuts(); |
957517fa | 25 | AliFlowEventCuts(const char* name, const char* title = "AliFlowEventCuts"); |
03d364db | 26 | AliFlowEventCuts(const AliFlowEventCuts& someCuts); |
27 | AliFlowEventCuts& operator=(const AliFlowEventCuts& someCuts); | |
2279052e | 28 | virtual ~AliFlowEventCuts(); |
daf66719 | 29 | |
30 | virtual Bool_t IsSelected(const TObject* obj); | |
31 | ||
32 | Bool_t PassesCuts(const AliVEvent* event); | |
33 | ||
34 | static AliFlowEventCuts* StandardCuts(); | |
35 | ||
957517fa | 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;} | |
ee242db3 | 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;} | |
e90a4b03 | 50 | void SetMeanPtRange(Double_t min, Double_t max) {fCutMeanPt=kTRUE; fMeanPtMax=max; fMeanPtMin=min;} |
d7e66a39 | 51 | void SetCutSPDvertexerAnomaly(Bool_t b) {fCutSPDvertexerAnomaly=b;} |
daf66719 | 52 | |
53 | Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;} | |
54 | Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;} | |
5559ce24 | 55 | Int_t GetRefMultMax() const {return fRefMultMax;} |
56 | Int_t GetRefMultMin() const {return fRefMultMin;} | |
9a0783cc | 57 | void SetRefMultMethod(refMultMethod m) {fRefMultMethod=m;} |
58 | refMultMethod GetRefMultMethod() const {return fRefMultMethod;} | |
2279052e | 59 | void SetRefMultCuts( AliFlowTrackCuts* cuts ) {fRefMultCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());} |
60 | void SetMeanPtCuts( AliFlowTrackCuts* cuts ) {fMeanPtCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());} | |
03d364db | 61 | AliFlowTrackCuts* GetRefMultCuts() const {return fRefMultCuts;} |
daf66719 | 62 | |
03d364db | 63 | Int_t RefMult(const AliVEvent* event); |
9a0783cc | 64 | //Int_t GetRefMult() {return fRefMult;} |
65 | Int_t GetReferenceMultiplicity(const AliVEvent* event) {return RefMult(event);} | |
333ce021 | 66 | |
daf66719 | 67 | private: |
5559ce24 | 68 | Bool_t fCutNumberOfTracks;//cut on # of tracks |
daf66719 | 69 | Int_t fNumberOfTracksMax; //limits |
70 | Int_t fNumberOfTracksMin; //limits | |
5559ce24 | 71 | Bool_t fCutRefMult; //cut on refmult |
9a0783cc | 72 | refMultMethod fRefMultMethod; //how do we calculate refmult? |
5559ce24 | 73 | Int_t fRefMultMax; //max refmult |
74 | Int_t fRefMultMin; //min refmult | |
03d364db | 75 | AliFlowTrackCuts* fRefMultCuts; //cuts |
2279052e | 76 | AliFlowTrackCuts* fMeanPtCuts; //mean pt cuts |
ee242db3 | 77 | Bool_t fCutPrimaryVertexX; //cut on x of prim vtx |
78 | Double_t fPrimaryVertexXmax; //max x prim vtx | |
79 | Double_t fPrimaryVertexXmin; //min x prim vtx | |
80 | Bool_t fCutPrimaryVertexY; //cut on y of prim vtx | |
81 | Double_t fPrimaryVertexYmax; //max y prim vtx | |
82 | Double_t fPrimaryVertexYmin; //min y prim vtx | |
83 | Bool_t fCutPrimaryVertexZ; //cut on z of prim vtx | |
84 | Double_t fPrimaryVertexZmax; //max z prim vtx | |
85 | Double_t fPrimaryVertexZmin; //min z prim vtx | |
86 | Bool_t fCutNContributors; //cut on number of contributors | |
87 | Int_t fNContributorsMax; //maximal number of contrib | |
88 | Int_t fNContributorsMin; //minimal number of contrib | |
d32716f4 | 89 | Bool_t fCutMeanPt; //cut on mean pt |
e90a4b03 | 90 | Double_t fMeanPtMax; //max mean pt |
91 | Double_t fMeanPtMin; //min mean pt | |
d7e66a39 | 92 | Bool_t fCutSPDvertexerAnomaly; //cut on the spd vertexer anomaly |
ee242db3 | 93 | |
94 | ||
95 | ClassDef(AliFlowEventCuts,2) | |
daf66719 | 96 | }; |
97 | ||
98 | #endif | |
99 | ||
100 |