]>
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; |
e7b9ed1d | 17 | #include "AliTriggerAnalysis.h" |
2279052e | 18 | #include "AliFlowTrackCuts.h" |
daf66719 | 19 | |
20 | class AliFlowEventCuts : public TNamed { | |
21 | ||
22 | public: | |
2cdf5762 | 23 | enum refMultMethod { kTPConly, kSPDtracklets, kV0, kSPD1clusters }; |
9a0783cc | 24 | |
daf66719 | 25 | AliFlowEventCuts(); |
957517fa | 26 | AliFlowEventCuts(const char* name, const char* title = "AliFlowEventCuts"); |
03d364db | 27 | AliFlowEventCuts(const AliFlowEventCuts& someCuts); |
28 | AliFlowEventCuts& operator=(const AliFlowEventCuts& someCuts); | |
2279052e | 29 | virtual ~AliFlowEventCuts(); |
daf66719 | 30 | |
7d9ab4fb | 31 | virtual Bool_t IsSelected(TObject* obj); |
daf66719 | 32 | |
7d9ab4fb | 33 | Bool_t PassesCuts(AliVEvent* event); |
daf66719 | 34 | |
35 | static AliFlowEventCuts* StandardCuts(); | |
36 | ||
957517fa | 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;} | |
ee242db3 | 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;} | |
e90a4b03 | 51 | void SetMeanPtRange(Double_t min, Double_t max) {fCutMeanPt=kTRUE; fMeanPtMax=max; fMeanPtMin=min;} |
d7e66a39 | 52 | void SetCutSPDvertexerAnomaly(Bool_t b) {fCutSPDvertexerAnomaly=b;} |
e7b9ed1d | 53 | void SetCutZDCtiming(Bool_t c=kTRUE) {fCutZDCtiming=c;} |
daf66719 | 54 | |
55 | Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;} | |
56 | Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;} | |
5559ce24 | 57 | Int_t GetRefMultMax() const {return fRefMultMax;} |
58 | Int_t GetRefMultMin() const {return fRefMultMin;} | |
9a0783cc | 59 | void SetRefMultMethod(refMultMethod m) {fRefMultMethod=m;} |
60 | refMultMethod GetRefMultMethod() const {return fRefMultMethod;} | |
2279052e | 61 | void SetRefMultCuts( AliFlowTrackCuts* cuts ) {fRefMultCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());} |
62 | void SetMeanPtCuts( AliFlowTrackCuts* cuts ) {fMeanPtCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());} | |
03d364db | 63 | AliFlowTrackCuts* GetRefMultCuts() const {return fRefMultCuts;} |
daf66719 | 64 | |
7d9ab4fb | 65 | Int_t RefMult(AliVEvent* event); |
9a0783cc | 66 | //Int_t GetRefMult() {return fRefMult;} |
7d9ab4fb | 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;} | |
333ce021 | 73 | |
daf66719 | 74 | private: |
5559ce24 | 75 | Bool_t fCutNumberOfTracks;//cut on # of tracks |
daf66719 | 76 | Int_t fNumberOfTracksMax; //limits |
77 | Int_t fNumberOfTracksMin; //limits | |
5559ce24 | 78 | Bool_t fCutRefMult; //cut on refmult |
9a0783cc | 79 | refMultMethod fRefMultMethod; //how do we calculate refmult? |
5559ce24 | 80 | Int_t fRefMultMax; //max refmult |
81 | Int_t fRefMultMin; //min refmult | |
03d364db | 82 | AliFlowTrackCuts* fRefMultCuts; //cuts |
2279052e | 83 | AliFlowTrackCuts* fMeanPtCuts; //mean pt cuts |
ee242db3 | 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 | |
d32716f4 | 96 | Bool_t fCutMeanPt; //cut on mean pt |
e90a4b03 | 97 | Double_t fMeanPtMax; //max mean pt |
98 | Double_t fMeanPtMin; //min mean pt | |
d7e66a39 | 99 | Bool_t fCutSPDvertexerAnomaly; //cut on the spd vertexer anomaly |
7d9ab4fb | 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 | |
e7b9ed1d | 104 | Bool_t fCutZDCtiming; //cut on ZDC timing |
105 | AliTriggerAnalysis fTrigAna; //trigger analysis object | |
ee242db3 | 106 | |
107 | ClassDef(AliFlowEventCuts,2) | |
daf66719 | 108 | }; |
109 | ||
110 | #endif | |
111 | ||
112 |