]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowTasks/AliFlowEventCuts.h
correct bug in case of conversion removal-recombination from analysis
[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;
e7b9ed1d 17#include "AliTriggerAnalysis.h"
2279052e 18#include "AliFlowTrackCuts.h"
daf66719 19
20class 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