]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraBothEventCuts.h
Adding new options : asymetric y cut, selection of centrality estimator, plus pid...
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliSpectraBothEventCuts.h
CommitLineData
239a080a 1#ifndef ALISPECTRABOTHEVENTCUTS_H
2#define ALISPECTRABOTHEVENTCUTS_H
3
4/* See cxx source for full Copyright notice */
5
6//-------------------------------------------------------------------------
7// AliSpectraBothEventCuts
8//
9//
10//
11//
12// Authors: Michele Floris, CERN, Philip Versteeg, UU, Redmer Bertens, UU
13//-------------------------------------------------------------------------
14
15class AliVEvent;
16class AliSpectraBothTrackCuts;
17//class AliSpectraBothHistoManager;
18
19#include "TH1I.h"
20#include "TNamed.h"
21#include "AliSpectraBothTrackCuts.h"
22class AliSpectraBothEventCuts : public TNamed
23{
24 public:
25 enum { kProcessedEvents = 0,kPhysSelEvents,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kQVector, kNVtxCuts};
26enum {kDoNotCheckforSDD=0,kwithSDD,kwithoutSDD};
27
28 // Constructors
b3ea73e1 29 AliSpectraBothEventCuts() : TNamed(), fAOD(0),fAODEvent(AliSpectraBothTrackCuts::kAODobject),fTrackBits(0), fIsMC(0), fCentEstimator(""), fUseCentPatchAOD049(0),fUseSDDPatchforLHC11a(kDoNotCheckforSDD),fTriggerSettings(AliVEvent::kMB),fTrackCuts(0),
239a080a 30fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fQVectorCutMin(0), fQVectorCutMax(0), fVertexCutMin(0), fVertexCutMax(0), fMultiplicityCutMin(0), fMultiplicityCutMax(0), fMaxChi2perNDFforVertex(0),fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0),fHistoNChAftSel(0),fHistoQVector(0),fHistoEP(0) {}
31 AliSpectraBothEventCuts(const char *name);
32 virtual ~AliSpectraBothEventCuts() {}
33
34 void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; };
35 Bool_t GetIsMC() const { return fIsMC;};
b3ea73e1 36 void SetCentEstimator(TString cent = "V0M") {fCentEstimator = cent; };
37 TString GetCentFromV0() const { return fCentEstimator;};
239a080a 38
39 void SetUseCentPatchAOD049(Bool_t useCentPatchAOD049 = kFALSE) {fUseCentPatchAOD049 = useCentPatchAOD049; };
40 Bool_t GetUseCentPatchAOD049() const { return fUseCentPatchAOD049;};
41 void SetUseSDDPatchforLHC11a(Int_t useSDDPatchforLHC11a) {fUseSDDPatchforLHC11a=useSDDPatchforLHC11a;} ;
42 Int_t GetUseSDDPatchforLHC11a() {return fUseSDDPatchforLHC11a;};
43
1c23d41e 44 void SetTriggerSettings(UInt_t triggerSettings = AliVEvent::kMB) {fTriggerSettings = triggerSettings;};
45 UInt_t GetTriggerSettings() {return fTriggerSettings;};
46
47
48
239a080a 49 // Methods
50 Bool_t IsSelected(AliVEvent * aod,AliSpectraBothTrackCuts *trackcuts);
51 Bool_t CheckVtxRange();
52 Bool_t CheckCentralityCut();
53 Bool_t CheckMultiplicityCut();
54 Bool_t CheckQVectorCut();
55 Bool_t CheckVtxChi2perNDF();
56 void SetCentralityCutMin(Float_t cut) { fCentralityCutMin = cut; }
57 void SetCentralityCutMax(Float_t cut) { fCentralityCutMax = cut; }
58 //void SetQVectorPosCut(Float_t min,Float_t max) { fQVectorPosCutMin = min; fQVectorPosCutMax = max; }
59 //void SetQVectorNegCut(Float_t min,Float_t max) { fQVectorNegCutMin = min; fQVectorNegCutMax = max; }
60 void SetQVectorCut(Float_t min,Float_t max) { fQVectorCutMin = min; fQVectorCutMax = max; }
61 void SetVertexCut(Float_t min,Float_t max) { fVertexCutMin = min; fVertexCutMax = max; }
62 void SetMultiplicityCut(Float_t min,Float_t max) { fMultiplicityCutMin = min; fMultiplicityCutMax = max; }
63 void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;}
64 void SetMaxChi2perNDFforVertex(Float_t cut) { fMaxChi2perNDFforVertex=cut;}
65
66 UInt_t GetTrackType() const { return fTrackBits;}
67 TH1I * GetHistoCuts() { return fHistoCuts; }
68 TH1F * GetHistoVtxBefSel() { return fHistoVtxBefSel; }
69 TH1F * GetHistoVtxAftSel() { return fHistoVtxAftSel; }
70 TH1F * GetHistoEtaBefSel() { return fHistoEtaBefSel; }
71 TH1F * GetHistoEtaAftSel() { return fHistoEtaAftSel; }
72 TH1F * GetHistoNChAftSel() { return fHistoNChAftSel; }
73 /* TH1F * GetHistoQVectorPos() { return fHistoQVectorPos; } */
74 /* TH1F * GetHistoQVectorNeg() { return fHistoQVectorNeg; } */
75 TH1F * GetHistoQVector() { return fHistoQVector; }
76 TH1F * GetHistoEP() { return fHistoEP; }
77 Float_t GetCentralityMin() const { return fCentralityCutMin; }
78 Float_t GetCentralityMax() const { return fCentralityCutMax; }
79 //Float_t GetQVectorPosCutMin() const { return fQVectorPosCutMin; }
80 //Float_t GetQVectorPosCutMax() const { return fQVectorPosCutMax; }
81 //Float_t GetQVectorNegCutMin() const { return fQVectorNegCutMin; }
82 //Float_t GetQVectorNegCutMax() const { return fQVectorNegCutMax; }
83 Float_t GetQVectorCutMin() const { return fQVectorCutMin; }
84 Float_t GetQVectorCutMax() const { return fQVectorCutMax; }
85 Float_t GetVertexCutMin() const { return fVertexCutMin; }
86 Float_t GetVertexCutMax() const { return fVertexCutMax; }
87 Float_t GetMultiplicityCutMin() const { return fMultiplicityCutMin; }
88 Float_t GetMultiplicityCutMax() const { return fMultiplicityCutMax; }
89 Float_t GetMaxChi2perNDFforVertex() const {return fMaxChi2perNDFforVertex;}
90
91 void PrintCuts();
92 Double_t ApplyCentralityPatchAOD049();
93
94 Float_t NumberOfEvents() { return fHistoCuts->GetBinContent(kAcceptedEvents+1); }
95 Float_t NumberOfProcessedEvents() { return fHistoCuts->GetBinContent(kProcessedEvents+1); }
96 Float_t NumberOfPhysSelEvents() { return fHistoCuts->GetBinContent(kPhysSelEvents+1); }
97
98 Long64_t Merge(TCollection* list);
99
100
101 private:
102
103 AliVEvent *fAOD; //! AOD event
104 Int_t fAODEvent; // flag what type event is conected use values form AliSpeatraAODTrackCuts
105 UInt_t fTrackBits; // Type of track to be used in the Qvector calculation
106 Bool_t fIsMC;// true if processing MC
b3ea73e1 107 TString fCentEstimator;// name of centrality estimator
239a080a 108 Bool_t fUseCentPatchAOD049;// Patch for centrality selection on AOD049
109 Int_t fUseSDDPatchforLHC11a; // if true will check for ALLNOTRD in fired trigger class
1c23d41e 110 UInt_t fTriggerSettings; // triger configuration
239a080a 111 AliSpectraBothTrackCuts *fTrackCuts; //! track cuts
112 Bool_t fIsSelected; // True if cuts are selected
113 Float_t fCentralityCutMin; // minimum centrality percentile
114 Float_t fCentralityCutMax; // maximum centrality percentile
115 /* Float_t fQVectorPosCutMin; // minimum qvecPos */
116 /* Float_t fQVectorPosCutMax; // maximum qvecPos */
117 /* Float_t fQVectorNegCutMin; // minimum qvecNeg */
118 /* Float_t fQVectorNegCutMax; // maximum qvecNeg */
119 Float_t fQVectorCutMin; // minimum qvecPos
120 Float_t fQVectorCutMax; // maximum qvecPos
121 Float_t fVertexCutMin; // minimum vertex position
122 Float_t fVertexCutMax; // maximum vertex position
123 Float_t fMultiplicityCutMin; // minimum multiplicity position
124 Float_t fMultiplicityCutMax; // maximum multiplicity position
125 Float_t fMaxChi2perNDFforVertex; // maximum value of Chi2perNDF of vertex
126 TH1I *fHistoCuts; // Cuts statistics
127 TH1F *fHistoVtxBefSel; // Vtx distr before event selection
128 TH1F *fHistoVtxAftSel; // Vtx distr after event selection
129 TH1F *fHistoEtaBefSel; // Eta distr before event selection
130 TH1F *fHistoEtaAftSel; // Eta distr after event selection
131 TH1F *fHistoNChAftSel; // NCh distr after event selection
132 //TH1F *fHistoQVectorPos; // QVectorPos
133 //TH1F *fHistoQVectorNeg; // QVectorNeg
134 TH1F *fHistoQVector; // QVector
135 TH1F *fHistoEP; // EP
136 AliSpectraBothEventCuts(const AliSpectraBothEventCuts&);
137 AliSpectraBothEventCuts& operator=(const AliSpectraBothEventCuts&);
138
b3ea73e1 139 ClassDef(AliSpectraBothEventCuts, 5);
239a080a 140
141};
142#endif
143