AliPhysics  e59a9ba (e59a9ba)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliFlowEventCuts.h
Go to the documentation of this file.
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>
13 #include <limits.h>
14 #include "TNamed.h"
15 
16 class AliVEvent;
17 class AliMCEvent;
18 class TBrowser;
19 class AliAnalysisUtils;
20 class AliMultSelection;
21 #include "TList.h"
22 #include "TH1.h"
23 #include "AliTriggerAnalysis.h"
24 #include "AliFlowTrackCuts.h"
25 #include "AliFlowEventSimpleCuts.h"
26 
28 
29  public:
31 
33  AliFlowEventCuts(const char* name, const char* title = "AliFlowEventCuts");
34  AliFlowEventCuts(const AliFlowEventCuts& someCuts);
36  virtual ~AliFlowEventCuts();
37 
38  virtual Bool_t IsSelected(TObject* obj, TObject *objmc);
39 
40  Bool_t PassesCuts(AliVEvent* event, AliMCEvent *mcevent);
41 
43 
47  void SetRefMultMax(Int_t value) {fRefMultMax=value;fCutRefMult=kTRUE;}
48  void SetRefMultMin(Int_t value) {fRefMultMin=value;fCutRefMult=kTRUE;}
49  void SetRefMultRange(Int_t min, Int_t max) {fRefMultMin=min;fRefMultMax=max;fCutRefMult=kTRUE;}
52  void SetImpactParameterRange(Double_t min, Double_t max) {fImpactParameterMin=min;fImpactParameterMax=max;fCutImpactParameter=kTRUE;}
53  void SetPrimaryVertexXrange(Double_t min, Double_t max)
55  void SetPrimaryVertexYrange(Double_t min, Double_t max)
57  void SetPrimaryVertexZrange(Double_t min, Double_t max)
59  void SetNContributorsRange(Int_t min, Int_t max=INT_MAX)
61  void SetMeanPtRange(Double_t min, Double_t max) {fCutMeanPt=kTRUE; fMeanPtMax=max; fMeanPtMin=min;}
63  void SetCutZDCtiming(Bool_t c=kTRUE) {fCutZDCtiming=c;}
64  void SetCutSPDTRKVtxZ(Bool_t b=kTRUE) {fCutSPDTRKVtxZ=b;}
67 
68  Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;}
69  Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;}
70  Int_t GetRefMultMax() const {return fRefMultMax;}
71  Int_t GetRefMultMin() const {return fRefMultMin;}
73  void SetRefMultMethod(AliESDtrackCuts::MultEstTrackType m) { fRefMultMethodAliESDtrackCuts=m;
76  void SetRefMultCuts( AliFlowTrackCuts* cuts ) {fRefMultCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());}
77  void SetMeanPtCuts( AliFlowTrackCuts* cuts ) {fMeanPtCuts=static_cast<AliFlowTrackCuts*>(cuts->Clone());}
79  void DefineHistograms();
80  void SetQA(Bool_t b=kTRUE) {if (b) DefineHistograms();}
81  TList* GetQA() const {return fQA;}
82  TH1* QAbefore(Int_t i) {return static_cast<TH1*>(static_cast<TList*>(fQA->At(0))->At(i));}
83  TH1* QAafter(Int_t i) {return static_cast<TH1*>(static_cast<TList*>(fQA->At(1))->At(i));}
84 
85  Int_t RefMult(AliVEvent* event, AliMCEvent *mcEvent = 0x0);
86  //Int_t GetRefMult() {return fRefMult;}
87  Int_t GetReferenceMultiplicity(AliVEvent* event, AliMCEvent *mcEvent) {return RefMult(event,mcEvent);}
88  const char* CentrMethName(refMultMethod method) const;
91 
92  Float_t GetCentrality(AliVEvent* event, AliMCEvent* mcEvent);
93  void SetUsedDataset(Bool_t b=kTRUE) {fData2011=b;} // confusing name, better use different interface
94  void SetLHC10h(Bool_t b=kTRUE) {fData2011=(!b);} // TODO let cut object determine runnumber and period
95  void SetLHC11h(Bool_t b=kTRUE) {fData2011=b;} // use this only as 'manual override'
96  void SetCheckPileup(Bool_t b=kFALSE) {fCheckPileUp = b;} // In case a pile-up rejection is required
97 
98  void Browse(TBrowser* b);
99  Long64_t Merge(TCollection* list);
101 
102 
103  private:
104  TList* fQA; //QA
105  Bool_t fCutNumberOfTracks;//cut on # of tracks
106  Int_t fNumberOfTracksMax; //limits
107  Int_t fNumberOfTracksMin; //limits
108  Bool_t fCutRefMult; //cut on refmult
109  refMultMethod fRefMultMethod; //how do we calculate refmult?
110  Bool_t fUseAliESDtrackCutsRefMult; //use AliESDtrackCuts for refmult calculation
111  AliESDtrackCuts::MultEstTrackType fRefMultMethodAliESDtrackCuts;
112  Int_t fRefMultMax; //max refmult
113  Int_t fRefMultMin; //min refmult
115  AliFlowTrackCuts* fMeanPtCuts; //mean pt cuts
116  AliFlowTrackCuts* fStandardTPCcuts; //Standard TPC cuts
117  AliFlowTrackCuts* fStandardGlobalCuts; //StandardGlobalCuts
118  AliAnalysisUtils* fUtils;
119  AliMultSelection* fMultSelection;
120  Bool_t fCutPrimaryVertexX; //cut on x of prim vtx
121  Double_t fPrimaryVertexXmax; //max x prim vtx
122  Double_t fPrimaryVertexXmin; //min x prim vtx
123  Bool_t fCutPrimaryVertexY; //cut on y of prim vtx
124  Double_t fPrimaryVertexYmax; //max y prim vtx
125  Double_t fPrimaryVertexYmin; //min y prim vtx
126  Bool_t fCutPrimaryVertexZ; //cut on z of prim vtx
127  Double_t fPrimaryVertexZmax; //max z prim vtx
128  Double_t fPrimaryVertexZmin; //min z prim vtx
129  Bool_t fCutNContributors; //cut on number of contributors
130  Int_t fNContributorsMax; //maximal number of contrib
131  Int_t fNContributorsMin; //minimal number of contrib
132  Bool_t fCutMeanPt; //cut on mean pt
133  Double_t fMeanPtMax; //max mean pt
134  Double_t fMeanPtMin; //min mean pt
135  Bool_t fCutSPDvertexerAnomaly; //cut on the spd vertexer anomaly
136  Bool_t fCutSPDTRKVtxZ; //require compatibility between SPDvertexz TRKvertexz
137  Bool_t fCutTPCmultiplicityOutliers; //cut TPC multiplicity outliers
138  Bool_t fCutTPCmultiplicityOutliersAOD; // cut TPC outliers in 10h or 11h aod
139  Bool_t fUseCentralityUnchecked; //use the unchecked method
140  refMultMethod fCentralityPercentileMethod; //where to get the percentile from
141  Bool_t fCutZDCtiming; //cut on ZDC timing
142  AliTriggerAnalysis fTrigAna; //trigger analysis object
143  Bool_t fCutImpactParameter; //cut on impact parameter (MC header)
144  Double_t fImpactParameterMin; // min impact parameter
145  Double_t fImpactParameterMax; // max impact parameter
147  Bool_t fData2011; //2011 data is used
148  Bool_t fCheckPileUp; //pile-up
149  ClassDef(AliFlowEventCuts,8)
150 };
151 
152 #endif
153 
154 
Double_t fPrimaryVertexZmax
AliESDtrackCuts::MultEstTrackType fRefMultMethodAliESDtrackCuts
Float_t GetCentrality(AliVEvent *event, AliMCEvent *mcEvent)
void SetMeanPtCuts(AliFlowTrackCuts *cuts)
Double_t fPrimaryVertexXmax
void SetRefMultRange(Int_t min, Int_t max)
Bool_t fData2011
correlation between TPCMult and GlobalMult
void SetPrimaryVertexYrange(Double_t min, Double_t max)
void SetRefMultMax(Int_t value)
const char * title
Definition: MakeQAPdf.C:26
Long64_t Merge(TCollection *list)
TH1 * QAbefore(Int_t i)
Bool_t fCutTPCmultiplicityOutliersAOD
Int_t GetReferenceMultiplicity(AliVEvent *event, AliMCEvent *mcEvent)
AliFlowTrackCuts * fStandardTPCcuts
AliFlowTrackCuts * fMeanPtCuts
Double_t fPrimaryVertexYmin
refMultMethod GetRefMultMethod() const
Double_t fPrimaryVertexYmax
TList * list
Int_t GetNumberOfTracksMin() const
TH1 * QAafter(Int_t i)
AliFlowEventCuts & operator=(const AliFlowEventCuts &someCuts)
void SetRefMultMethod(refMultMethod m)
AliAnalysisUtils * fUtils
const char * CentrMethName(refMultMethod method) const
AliFlowTrackCuts * GetRefMultCuts() const
refMultMethod fRefMultMethod
Bool_t PassesCuts(AliVEvent *event, AliMCEvent *mcevent)
void SetImpactParameterMax(Double_t value)
void SetImpactParameterRange(Double_t min, Double_t max)
void SetCutSPDvertexerAnomaly(Bool_t b=kTRUE)
Int_t RefMult(AliVEvent *event, AliMCEvent *mcEvent=0x0)
void SetNContributorsRange(Int_t min, Int_t max=INT_MAX)
void SetUsedDataset(Bool_t b=kTRUE)
void SetRefMultCuts(AliFlowTrackCuts *cuts)
refMultMethod fCentralityPercentileMethod
void SetPrimaryVertexZrange(Double_t min, Double_t max)
void SetRefMultMethod(AliESDtrackCuts::MultEstTrackType m)
Int_t GetRefMultMin() const
void Browse(TBrowser *b)
Bool_t fCutPrimaryVertexX
new centrality framework
void SetNumberOfTracksRange(Int_t min, Int_t max)
AliTriggerAnalysis fTrigAna
Double_t fPrimaryVertexZmin
void SetLHC11h(Bool_t b=kTRUE)
AliMultSelection * fMultSelection
analysis utils object
Bool_t fUseAliESDtrackCutsRefMult
void SetNumberOfTracksMax(Int_t value)
Double_t fImpactParameterMax
void SetUseCentralityUnchecked(Bool_t b=kTRUE)
Int_t GetRefMultMax() const
AliFlowTrackCuts * fStandardGlobalCuts
void SetRefMultMin(Int_t value)
Bool_t fUseCentralityUnchecked
AliFlowTrackCuts * fRefMultCuts
TList * GetQA() const
void SetCutTPCmultiplicityOutliersAOD(Bool_t b=kTRUE)
static AliFlowEventCuts * StandardCuts()
Double_t fImpactParameterMin
void SetCentralityPercentileMethod(refMultMethod m)
TH2F * GetCorrelationTPCvsGlobalMultiplicity()
void SetCutTPCmultiplicityOutliers(Bool_t b=kTRUE)
void SetImpactParameterMin(Double_t value)
Double_t fPrimaryVertexXmin
virtual Bool_t IsSelected(TObject *obj, TObject *objmc)
void SetMeanPtRange(Double_t min, Double_t max)
void SetCutZDCtiming(Bool_t c=kTRUE)
Int_t GetNumberOfTracksMax() const
void SetCutSPDTRKVtxZ(Bool_t b=kTRUE)
void SetLHC10h(Bool_t b=kTRUE)
void SetPrimaryVertexXrange(Double_t min, Double_t max)
Bool_t fCutTPCmultiplicityOutliers
void SetCheckPileup(Bool_t b=kFALSE)
void SetNumberOfTracksMin(Int_t value)
void SetQA(Bool_t b=kTRUE)