]>
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; |
499fe731 | 17 | class TBrowser; |
18 | #include "TList.h" | |
19 | #include "TH1.h" | |
e7b9ed1d | 20 | #include "AliTriggerAnalysis.h" |
2279052e | 21 | #include "AliFlowTrackCuts.h" |
daf66719 | 22 | |
23 | class AliFlowEventCuts : public TNamed { | |
24 | ||
25 | public: | |
2cdf5762 | 26 | enum refMultMethod { kTPConly, kSPDtracklets, kV0, kSPD1clusters }; |
9a0783cc | 27 | |
daf66719 | 28 | AliFlowEventCuts(); |
957517fa | 29 | AliFlowEventCuts(const char* name, const char* title = "AliFlowEventCuts"); |
03d364db | 30 | AliFlowEventCuts(const AliFlowEventCuts& someCuts); |
31 | AliFlowEventCuts& operator=(const AliFlowEventCuts& someCuts); | |
2279052e | 32 | virtual ~AliFlowEventCuts(); |
daf66719 | 33 | |
7d9ab4fb | 34 | virtual Bool_t IsSelected(TObject* obj); |
daf66719 | 35 | |
7d9ab4fb | 36 | Bool_t PassesCuts(AliVEvent* event); |
daf66719 | 37 | |
38 | static AliFlowEventCuts* StandardCuts(); | |
39 | ||
957517fa | 40 | void SetNumberOfTracksMax(Int_t value) {fNumberOfTracksMax=value;fCutNumberOfTracks=kTRUE;} |
41 | void SetNumberOfTracksMin(Int_t value) {fNumberOfTracksMin=value;fCutNumberOfTracks=kTRUE;} | |
42 | void SetNumberOfTracksRange(Int_t min, Int_t max) {fNumberOfTracksMin=min;fNumberOfTracksMax=max;fCutNumberOfTracks=kTRUE;} | |
43 | void SetRefMultMax(Int_t value) {fRefMultMax=value;fCutRefMult=kTRUE;} | |
44 | void SetRefMultMin(Int_t value) {fRefMultMin=value;fCutRefMult=kTRUE;} | |
45 | void SetRefMultRange(Int_t min, Int_t max) {fRefMultMin=min;fRefMultMax=max;fCutRefMult=kTRUE;} | |
ee242db3 | 46 | void SetPrimaryVertexXrange(Double_t min, Double_t max) |
47 | {fCutPrimaryVertexX=kTRUE; fPrimaryVertexXmin=min; fPrimaryVertexXmax=max;} | |
48 | void SetPrimaryVertexYrange(Double_t min, Double_t max) | |
49 | {fCutPrimaryVertexY=kTRUE; fPrimaryVertexYmin=min; fPrimaryVertexYmax=max;} | |
50 | void SetPrimaryVertexZrange(Double_t min, Double_t max) | |
51 | {fCutPrimaryVertexZ=kTRUE; fPrimaryVertexZmin=min; fPrimaryVertexZmax=max;} | |
52 | void SetNContributorsRange(Int_t min, Int_t max=INT_MAX) | |
53 | {fCutNContributors=kTRUE; fNContributorsMin=min; fNContributorsMax=max;} | |
e90a4b03 | 54 | void SetMeanPtRange(Double_t min, Double_t max) {fCutMeanPt=kTRUE; fMeanPtMax=max; fMeanPtMin=min;} |
441ea1cf | 55 | void SetCutSPDvertexerAnomaly(Bool_t b=kTRUE) {fCutSPDvertexerAnomaly=b;} |
e7b9ed1d | 56 | void SetCutZDCtiming(Bool_t c=kTRUE) {fCutZDCtiming=c;} |
2b1eaa10 | 57 | void SetCutTPCmultiplicityOutliers(Bool_t b=kTRUE) {fCutTPCmultiplicityOutliers=b;} |
daf66719 | 58 | |
59 | Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;} | |
60 | Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;} | |
5559ce24 | 61 | Int_t GetRefMultMax() const {return fRefMultMax;} |
62 | Int_t GetRefMultMin() const {return fRefMultMin;} | |
9a0783cc | 63 | void SetRefMultMethod(refMultMethod m) {fRefMultMethod=m;} |
64 | refMultMethod GetRefMultMethod() const {return fRefMultMethod;} | |
2279052e | 65 | void SetRefMultCuts( AliFlowTrackCuts* cuts ) {fRefMultCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());} |
66 | void SetMeanPtCuts( AliFlowTrackCuts* cuts ) {fMeanPtCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());} | |
03d364db | 67 | AliFlowTrackCuts* GetRefMultCuts() const {return fRefMultCuts;} |
499fe731 | 68 | void DefineHistograms(); |
69 | void SetQA() {DefineHistograms();} | |
70 | TList* GetQA() const {return fQA;} | |
71 | TH1* QAbefore(Int_t i) {return static_cast<TH1*>(static_cast<TList*>(fQA->At(0))->At(i));} | |
72 | TH1* QAafter(Int_t i) {return static_cast<TH1*>(static_cast<TList*>(fQA->At(1))->At(i));} | |
daf66719 | 73 | |
7d9ab4fb | 74 | Int_t RefMult(AliVEvent* event); |
9a0783cc | 75 | //Int_t GetRefMult() {return fRefMult;} |
7d9ab4fb | 76 | Int_t GetReferenceMultiplicity(AliVEvent* event) {return RefMult(event);} |
441ea1cf | 77 | const char* CentrMethName(refMultMethod method) const; |
7d9ab4fb | 78 | void SetCentralityPercentileRange(Float_t min, Float_t max){ fCentralityPercentileMin=min; |
79 | fCentralityPercentileMax=max; | |
80 | fCutCentralityPercentile=kTRUE; } | |
441ea1cf | 81 | void SetCentralityPercentileMethod( refMultMethod m) {fCentralityPercentileMethod=m;} |
8f861a97 | 82 | void SetUseCentralityUnchecked(Bool_t b=kTRUE) {fUseCentralityUnchecked=b;} |
499fe731 | 83 | |
84 | void Browse(TBrowser* b); | |
85 | Long64_t Merge(TCollection* list); | |
333ce021 | 86 | |
daf66719 | 87 | private: |
499fe731 | 88 | TList* fQA; //QA |
5559ce24 | 89 | Bool_t fCutNumberOfTracks;//cut on # of tracks |
daf66719 | 90 | Int_t fNumberOfTracksMax; //limits |
91 | Int_t fNumberOfTracksMin; //limits | |
5559ce24 | 92 | Bool_t fCutRefMult; //cut on refmult |
9a0783cc | 93 | refMultMethod fRefMultMethod; //how do we calculate refmult? |
5559ce24 | 94 | Int_t fRefMultMax; //max refmult |
95 | Int_t fRefMultMin; //min refmult | |
03d364db | 96 | AliFlowTrackCuts* fRefMultCuts; //cuts |
2279052e | 97 | AliFlowTrackCuts* fMeanPtCuts; //mean pt cuts |
4099bcf0 | 98 | AliFlowTrackCuts* fStandardTPCcuts; //Standard TPC cuts |
99 | AliFlowTrackCuts* fStandardGlobalCuts; //StandardGlobalCuts | |
ee242db3 | 100 | Bool_t fCutPrimaryVertexX; //cut on x of prim vtx |
101 | Double_t fPrimaryVertexXmax; //max x prim vtx | |
102 | Double_t fPrimaryVertexXmin; //min x prim vtx | |
103 | Bool_t fCutPrimaryVertexY; //cut on y of prim vtx | |
104 | Double_t fPrimaryVertexYmax; //max y prim vtx | |
105 | Double_t fPrimaryVertexYmin; //min y prim vtx | |
106 | Bool_t fCutPrimaryVertexZ; //cut on z of prim vtx | |
107 | Double_t fPrimaryVertexZmax; //max z prim vtx | |
108 | Double_t fPrimaryVertexZmin; //min z prim vtx | |
109 | Bool_t fCutNContributors; //cut on number of contributors | |
110 | Int_t fNContributorsMax; //maximal number of contrib | |
111 | Int_t fNContributorsMin; //minimal number of contrib | |
d32716f4 | 112 | Bool_t fCutMeanPt; //cut on mean pt |
e90a4b03 | 113 | Double_t fMeanPtMax; //max mean pt |
114 | Double_t fMeanPtMin; //min mean pt | |
d7e66a39 | 115 | Bool_t fCutSPDvertexerAnomaly; //cut on the spd vertexer anomaly |
4099bcf0 | 116 | Bool_t fCutTPCmultiplicityOutliers; //cut TPC multiplicity outliers |
7d9ab4fb | 117 | Bool_t fCutCentralityPercentile; //cut on centrality perc. from AliESDCentrality |
8f861a97 | 118 | Bool_t fUseCentralityUnchecked; //use the unchecked method |
7d9ab4fb | 119 | refMultMethod fCentralityPercentileMethod; //where to get the percentile from |
120 | Float_t fCentralityPercentileMax; // max centr. perc | |
121 | Float_t fCentralityPercentileMin; // min centr. perc | |
e7b9ed1d | 122 | Bool_t fCutZDCtiming; //cut on ZDC timing |
123 | AliTriggerAnalysis fTrigAna; //trigger analysis object | |
ee242db3 | 124 | |
499fe731 | 125 | ClassDef(AliFlowEventCuts,3) |
daf66719 | 126 | }; |
127 | ||
128 | #endif | |
129 | ||
130 |