]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowTasks/AliFlowEventCuts.h
update macro for parity studies
[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;
2279052e 17#include "AliFlowTrackCuts.h"
daf66719 18
19class 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