1 #ifndef ALISPECTRAAODEVENTCUTS_H
2 #define ALISPECTRAAODEVENTCUTS_H
4 /* See cxx source for full Copyright notice */
6 //-------------------------------------------------------------------------
7 // AliSpectraAODEventCuts
12 // Authors: Michele Floris, CERN, Philip Versteeg, UU, Redmer Bertens, UU
13 //-------------------------------------------------------------------------
16 class AliSpectraAODTrackCuts;
17 //class AliSpectraAODHistoManager;
22 class AliSpectraAODEventCuts : public TNamed
25 enum { kProcessedEvents = 0,kPhysSelEvents,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kQVector, kNVtxCuts};
28 AliSpectraAODEventCuts() : TNamed(), fAOD(0), fTrackBits(0), fIsMC(0), fCentFromV0(0), fUseCentPatchAOD049(0),fTrackCuts(0), fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fQVectorCutMin(0), fQVectorCutMax(0), fVertexCutMin(0), fVertexCutMax(0), fMultiplicityCutMin(0), fMultiplicityCutMax(0), fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0),fHistoNChAftSel(0),fHistoQVector(0),fHistoEP(0) {}
29 AliSpectraAODEventCuts(const char *name);
30 virtual ~AliSpectraAODEventCuts() {}
32 void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; };
33 Bool_t GetIsMC() const { return fIsMC;};
34 void SetCentFromV0(Bool_t centFromV0 = kFALSE) {fCentFromV0 = centFromV0; };
35 Bool_t GetCentFromV0() const { return fCentFromV0;};
37 void SetUseCentPatchAOD049(Bool_t useCentPatchAOD049 = kFALSE) {fUseCentPatchAOD049 = useCentPatchAOD049; };
38 Bool_t GetUseCentPatchAOD049() const { return fUseCentPatchAOD049;};
41 Bool_t IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts *trackcuts);
42 Bool_t CheckVtxRange();
43 Bool_t CheckCentralityCut();
44 Bool_t CheckMultiplicityCut();
45 Bool_t CheckQVectorCut();
46 void SetCentralityCutMin(Float_t cut) { fCentralityCutMin = cut; }
47 void SetCentralityCutMax(Float_t cut) { fCentralityCutMax = cut; }
48 //void SetQVectorPosCut(Float_t min,Float_t max) { fQVectorPosCutMin = min; fQVectorPosCutMax = max; }
49 //void SetQVectorNegCut(Float_t min,Float_t max) { fQVectorNegCutMin = min; fQVectorNegCutMax = max; }
50 void SetQVectorCut(Float_t min,Float_t max) { fQVectorCutMin = min; fQVectorCutMax = max; }
51 void SetVertexCut(Float_t min,Float_t max) { fVertexCutMin = min; fVertexCutMax = max; }
52 void SetMultiplicityCut(Float_t min,Float_t max) { fMultiplicityCutMin = min; fMultiplicityCutMax = max; }
53 void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;}
55 UInt_t GetTrackType() const { return fTrackBits;}
56 TH1I * GetHistoCuts() { return fHistoCuts; }
57 TH1F * GetHistoVtxBefSel() { return fHistoVtxBefSel; }
58 TH1F * GetHistoVtxAftSel() { return fHistoVtxAftSel; }
59 TH1F * GetHistoEtaBefSel() { return fHistoEtaBefSel; }
60 TH1F * GetHistoEtaAftSel() { return fHistoEtaAftSel; }
61 TH1F * GetHistoNChAftSel() { return fHistoNChAftSel; }
62 /* TH1F * GetHistoQVectorPos() { return fHistoQVectorPos; } */
63 /* TH1F * GetHistoQVectorNeg() { return fHistoQVectorNeg; } */
64 TH1F * GetHistoQVector() { return fHistoQVector; }
65 TH1F * GetHistoEP() { return fHistoEP; }
66 Float_t GetCentralityMin() const { return fCentralityCutMin; }
67 Float_t GetCentralityMax() const { return fCentralityCutMax; }
68 //Float_t GetQVectorPosCutMin() const { return fQVectorPosCutMin; }
69 //Float_t GetQVectorPosCutMax() const { return fQVectorPosCutMax; }
70 //Float_t GetQVectorNegCutMin() const { return fQVectorNegCutMin; }
71 //Float_t GetQVectorNegCutMax() const { return fQVectorNegCutMax; }
72 Float_t GetQVectorCutMin() const { return fQVectorCutMin; }
73 Float_t GetQVectorCutMax() const { return fQVectorCutMax; }
74 Float_t GetVertexCutMin() const { return fVertexCutMin; }
75 Float_t GetVertexCutMax() const { return fVertexCutMax; }
76 Float_t GetMultiplicityCutMin() const { return fMultiplicityCutMin; }
77 Float_t GetMultiplicityCutMax() const { return fMultiplicityCutMax; }
79 Double_t ApplyCentralityPatchAOD049();
81 Float_t NumberOfEvents() { return fHistoCuts->GetBinContent(kAcceptedEvents+1); }
82 Float_t NumberOfProcessedEvents() { return fHistoCuts->GetBinContent(kProcessedEvents+1); }
83 Float_t NumberOfPhysSelEvents() { return fHistoCuts->GetBinContent(kPhysSelEvents+1); }
85 Long64_t Merge(TCollection* list);
90 AliAODEvent *fAOD; //! AOD event
91 UInt_t fTrackBits; // Type of track to be used in the Qvector calculation
92 Bool_t fIsMC;// true if processing MC
93 Bool_t fCentFromV0;// default centrality with tracks
94 Bool_t fUseCentPatchAOD049;// Patch for centrality selection on AOD049
95 AliSpectraAODTrackCuts *fTrackCuts; //! track cuts
96 Bool_t fIsSelected; // True if cuts are selected
97 Float_t fCentralityCutMin; // minimum centrality percentile
98 Float_t fCentralityCutMax; // maximum centrality percentile
99 /* Float_t fQVectorPosCutMin; // minimum qvecPos */
100 /* Float_t fQVectorPosCutMax; // maximum qvecPos */
101 /* Float_t fQVectorNegCutMin; // minimum qvecNeg */
102 /* Float_t fQVectorNegCutMax; // maximum qvecNeg */
103 Float_t fQVectorCutMin; // minimum qvecPos
104 Float_t fQVectorCutMax; // maximum qvecPos
105 Float_t fVertexCutMin; // minimum vertex position
106 Float_t fVertexCutMax; // maximum vertex position
107 Float_t fMultiplicityCutMin; // minimum multiplicity position
108 Float_t fMultiplicityCutMax; // maximum multiplicity position
109 TH1I *fHistoCuts; // Cuts statistics
110 TH1F *fHistoVtxBefSel; // Vtx distr before event selection
111 TH1F *fHistoVtxAftSel; // Vtx distr after event selection
112 TH1F *fHistoEtaBefSel; // Eta distr before event selection
113 TH1F *fHistoEtaAftSel; // Eta distr after event selection
114 TH1F *fHistoNChAftSel; // NCh distr after event selection
115 //TH1F *fHistoQVectorPos; // QVectorPos
116 //TH1F *fHistoQVectorNeg; // QVectorNeg
117 TH1F *fHistoQVector; // QVector
118 TH1F *fHistoEP; // EP
119 AliSpectraAODEventCuts(const AliSpectraAODEventCuts&);
120 AliSpectraAODEventCuts& operator=(const AliSpectraAODEventCuts&);
122 ClassDef(AliSpectraAODEventCuts, 2);