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;
22 #include "AliOADBContainer.h"
24 class AliSpectraAODEventCuts : public TNamed
27 enum { kProcessedEvents = 0,kPhysSelEvents,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kQVector, kNVtxCuts};
30 AliSpectraAODEventCuts() :
33 fSelectBit(AliVEvent::kMB),
40 fCentralityCutMin(0.),
41 fCentralityCutMax(999),
42 fQVectorCutMin(-999.),
46 fMultiplicityCutMin(-999.),
47 fMultiplicityCutMax(99999.),
66 for (Int_t i = 0; i<10; i++){
73 AliSpectraAODEventCuts(const char *name);
74 virtual ~AliSpectraAODEventCuts() {}
76 void SetEventSelectionBit( UInt_t val ) { fSelectBit = val; }
77 void SetCentralityMethod(const char* method) { fCentralityMethod = method; }
78 void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;}
79 void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; };
80 void SetIsLHC10h(Bool_t isLHC10h = kFALSE) {fIsLHC10h = isLHC10h; };
81 void SetCentralityCutMin(Float_t cut) { fCentralityCutMin = cut; }
82 void SetCentralityCutMax(Float_t cut) { fCentralityCutMax = cut; }
83 void SetQVectorCut(Float_t min,Float_t max) { fQVectorCutMin = min; fQVectorCutMax = max; }
84 void SetVertexCut(Float_t min,Float_t max) { fVertexCutMin = min; fVertexCutMax = max; }
85 void SetMultiplicityCut(Float_t min,Float_t max) { fMultiplicityCutMin = min; fMultiplicityCutMax = max; }
87 UInt_t GetEventSelectionBit() const { return fSelectBit;}
88 TString GetCentralityMethod() const { return fCentralityMethod;}
89 UInt_t GetTrackType() const { return fTrackBits;}
90 Bool_t GetIsMC() const { return fIsMC;}
91 Bool_t GetIsLHC10h() const { return fIsLHC10h;}
92 Float_t GetCentralityMin() const { return fCentralityCutMin; }
93 Float_t GetCentralityMax() const { return fCentralityCutMax; }
94 Float_t GetQVectorCutMin() const { return fQVectorCutMin; }
95 Float_t GetQVectorCutMax() const { return fQVectorCutMax; }
96 Float_t GetVertexCutMin() const { return fVertexCutMin; }
97 Float_t GetVertexCutMax() const { return fVertexCutMax; }
98 Float_t GetMultiplicityCutMin() const { return fMultiplicityCutMin; }
99 Float_t GetMultiplicityCutMax() const { return fMultiplicityCutMax; }
100 Double_t GetqV0C() const { return fqV0C; }
101 Double_t GetqV0A() const { return fqV0A; }
102 Double_t GetCent() const { return fCent; }
103 TList *GetOutputList() {return fOutput;};
104 TList *GetCalibList() {return fCalib;};
105 void SetCalibFile(TFile *f) {
106 TIter next(f->GetListOfKeys());
108 while ((key = (TKey*)next())) {
109 AliOADBContainer * obj=(AliOADBContainer*)key->ReadObj();
115 Bool_t IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts *trackcuts);
116 Bool_t CheckVtxRange();
117 Bool_t CheckCentralityCut();
118 Bool_t CheckMultiplicityCut();
119 Bool_t CheckQVectorCut();
120 Double_t CalculateQVectorLHC10h();
122 Bool_t OpenInfoCalbration(Int_t run);
123 Short_t GetCentrCode(AliVEvent* ev);
125 Float_t NumberOfEvents() { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kAcceptedEvents+1); }
126 Float_t NumberOfProcessedEvents() { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kProcessedEvents+1); }
127 Float_t NumberOfPhysSelEvents() { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kPhysSelEvents+1); }
129 Long64_t Merge(TCollection* list);
134 AliAODEvent *fAOD; //! AOD event
135 UInt_t fSelectBit; // Select events according to AliAnalysisTaskJetServices bit maps
136 TString fCentralityMethod; // Method to determine centrality
137 UInt_t fTrackBits; // Type of track to be used in the Qvector calculation
138 Bool_t fIsMC; // true if processing MC
139 Bool_t fIsLHC10h; // for LHC10h
140 AliSpectraAODTrackCuts *fTrackCuts; //! track cuts
141 Bool_t fIsSelected; // True if cuts are selected
142 Float_t fCentralityCutMin; // minimum centrality percentile
143 Float_t fCentralityCutMax; // maximum centrality percentile
144 Float_t fQVectorCutMin; // minimum qvecPos
145 Float_t fQVectorCutMax; // maximum qvecPos
146 Float_t fVertexCutMin; // minimum vertex position
147 Float_t fVertexCutMax; // maximum vertex position
148 Float_t fMultiplicityCutMin; // minimum multiplicity position
149 Float_t fMultiplicityCutMax; // maximum multiplicity position
150 Double_t fqV0C; //q vector in the VZERO-C
151 Double_t fqV0A; //q vector in the VZERO-A
152 Double_t fPsiV0C; //q vector in the VZERO-C
153 Double_t fPsiV0A; //q vector in the VZERO-A
154 Double_t fCent; //centrality according to fCentralityMethod
155 TList *fOutput; // output list
156 TList *fCalib; // output list
157 Int_t fRun; // run number - for calibration
158 TProfile* fMultV0; //! profile from V0 multiplicity
159 Float_t fV0Cpol1; // mean V0C multiplicity - from fit profile - ring 1
160 Float_t fV0Cpol2; // mean V0C multiplicity - from fit profile - ring 2
161 Float_t fV0Cpol3; // mean V0C multiplicity - from fit profile - ring 3
162 Float_t fV0Cpol4; // mean V0C multiplicity - from fit profile - ring 4
163 Float_t fV0Apol1; // mean V0A multiplicity - from fit profile - ring 1
164 Float_t fV0Apol2; // mean V0A multiplicity - from fit profile - ring 2
165 Float_t fV0Apol3; // mean V0A multiplicity - from fit profile - ring 3
166 Float_t fV0Apol4; // mean V0A multiplicity - from fit profile - ring 4
167 Float_t fMeanQxa2[10]; // mean Qxa values for centr - recentering
168 Float_t fMeanQya2[10]; // mean Qya values for centr - recentering
169 Float_t fMeanQxc2[10]; // mean Qxc values for centr - recentering
170 Float_t fMeanQyc2[10]; // mean Qyc values for centr - recentering
172 AliSpectraAODEventCuts(const AliSpectraAODEventCuts&);
173 AliSpectraAODEventCuts& operator=(const AliSpectraAODEventCuts&);
175 ClassDef(AliSpectraAODEventCuts, 4);