]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowTasks/AliFlowEventCuts.h
updates to FF task (Oliver) Minor bug fixes and reduced hisograms for spectrum task
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowTasks / AliFlowEventCuts.h
CommitLineData
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 16class AliVEvent;
499fe731 17class TBrowser;
18#include "TList.h"
19#include "TH1.h"
e7b9ed1d 20#include "AliTriggerAnalysis.h"
2279052e 21#include "AliFlowTrackCuts.h"
daf66719 22
23class 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