#ifndef ALISPECTRAAODEVENTCUTS_H
#define ALISPECTRAAODEVENTCUTS_H
class AliAODEvent;
class AliSpectraAODTrackCuts;
class TProfile;
#include "TNamed.h"
#include "TFile.h"
#include "TKey.h"
#include "AliOADBContainer.h"
#include "AliVEvent.h"
class AliSpectraAODEventCuts : public TNamed
{
public:
enum { kProcessedEvents = 0,kPhysSelEvents,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kQVector, kNVtxCuts};
AliSpectraAODEventCuts() :
TNamed(),
fAOD(0),
fSelectBit(AliVEvent::kMB),
fCentralityMethod(),
fTrackBits(1),
fIsMC(0),
fIsLHC10h(0),
fTrackCuts(0),
fIsSelected(0),
fCentralityCutMin(0.),
fCentralityCutMax(999),
fQVectorCutMin(-999.),
fQVectorCutMax(999.),
fVertexCutMin(-10.),
fVertexCutMax(10.),
fMultiplicityCutMin(-999.),
fMultiplicityCutMax(99999.),
fqTPC(-999.),
fqV0C(-999.),
fqV0A(-999.),
fqV0Cx(-999.),
fqV0Ax(-999.),
fqV0Cy(-999.),
fqV0Ay(-999.),
fPsiV0C(-999.),
fPsiV0A(-999.),
fCent(-999.),
fOutput(0),
fCalib(0),
fRun(-1),
fMultV0(0),
fV0Cpol1(-1),
fV0Cpol2(-1),
fV0Cpol3(-1),
fV0Cpol4(-1),
fV0Apol1(-1),
fV0Apol2(-1),
fV0Apol3(-1),
fV0Apol4(-1),
fQvecIntList(0),
fQvecIntegral(0),
fSplineArrayV0A(0),
fSplineArrayV0C(0),
fSplineArrayTPC(0),
fQgenIntegral(0),
fSplineArrayV0Agen(0),
fSplineArrayV0Cgen(0),
fQvecMC(0),
fNch(0),
fQvecCalibType(0),
fV0Aeff(0)
{
for (Int_t i = 0; i<10; i++){
fMeanQxa2[i] = -1;
fMeanQya2[i] = -1;
fMeanQxc2[i] = -1;
fMeanQyc2[i] = -1;
}
}
AliSpectraAODEventCuts(const char *name);
virtual ~AliSpectraAODEventCuts() {}
void SetEventSelectionBit( UInt_t val ) { fSelectBit = val; }
void SetCentralityMethod(const char* method) { fCentralityMethod = method; }
void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;}
void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; };
void SetIsLHC10h(Bool_t isLHC10h = kFALSE) {fIsLHC10h = isLHC10h; };
void SetCentralityCutMin(Float_t cut) { fCentralityCutMin = cut; }
void SetCentralityCutMax(Float_t cut) { fCentralityCutMax = cut; }
void SetQVectorCut(Float_t min,Float_t max) { fQVectorCutMin = min; fQVectorCutMax = max; }
void SetVertexCut(Float_t min,Float_t max) { fVertexCutMin = min; fVertexCutMax = max; }
void SetMultiplicityCut(Float_t min,Float_t max) { fMultiplicityCutMin = min; fMultiplicityCutMax = max; }
UInt_t GetEventSelectionBit() const { return fSelectBit;}
TString GetCentralityMethod() const { return fCentralityMethod;}
UInt_t GetTrackType() const { return fTrackBits;}
Bool_t GetIsMC() const { return fIsMC;}
Bool_t GetIsLHC10h() const { return fIsLHC10h;}
Float_t GetCentralityMin() const { return fCentralityCutMin; }
Float_t GetCentralityMax() const { return fCentralityCutMax; }
Float_t GetQVectorCutMin() const { return fQVectorCutMin; }
Float_t GetQVectorCutMax() const { return fQVectorCutMax; }
Float_t GetVertexCutMin() const { return fVertexCutMin; }
Float_t GetVertexCutMax() const { return fVertexCutMax; }
Float_t GetMultiplicityCutMin() const { return fMultiplicityCutMin; }
Float_t GetMultiplicityCutMax() const { return fMultiplicityCutMax; }
Double_t GetqTPC() const { return fqTPC; }
Double_t GetqV0C() const { return fqV0C; }
Double_t GetqV0A() const { return fqV0A; }
Double_t GetqV0Cx() const { return fqV0Cx; }
Double_t GetqV0Ax() const { return fqV0Ax; }
Double_t GetqV0Cy() const { return fqV0Cy; }
Double_t GetqV0Ay() const { return fqV0Ay; }
Double_t GetPsiV0C() const { return fPsiV0C; }
Double_t GetPsiV0A() const { return fPsiV0A; }
Double_t GetCent() const { return fCent; }
TList *GetOutputList() {return fOutput;};
TList *GetCalibList() {return fCalib;};
void SetCalibFile(TFile *f) {
TIter next(f->GetListOfKeys());
TKey *key;
while ((key = (TKey*)next())) {
AliOADBContainer * obj=(AliOADBContainer*)key->ReadObj();
fCalib->Add(obj);
}
};
void SetQvecIntegralFile(TFile *f) {
TIter next(f->GetListOfKeys());
TKey *key;
while ((key = (TKey*)next())) {
TObject * h=(TObject*)key->ReadObj();
fQvecIntList->Add(h);
}
};
Bool_t IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts *trackcuts);
Bool_t CheckVtxRange();
Bool_t CheckCentralityCut();
Bool_t CheckMultiplicityCut();
Bool_t CheckQVectorCut();
Double_t CalculateQVectorLHC10h();
Double_t CalculateQVectorTPC(Double_t etaMin=-0.5,Double_t etaMax=0.5);
void PrintCuts();
Bool_t OpenInfoCalbration(Int_t run);
Short_t GetCentrCode(AliVEvent* ev);
Double_t CalculateQVector();
Float_t NumberOfEvents() { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kAcceptedEvents+1); }
Float_t NumberOfProcessedEvents() { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kProcessedEvents+1); }
Float_t NumberOfPhysSelEvents() { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kPhysSelEvents+1); }
Long64_t Merge(TCollection* list);
Double_t GetQvecPercentile(Int_t v0side);
Bool_t CheckSplineArray(TObjArray * splarr, Int_t n);
TObjArray *GetSplineArrayV0A() { return fSplineArrayV0A; }
TObjArray *GetSplineArrayV0C() { return fSplineArrayV0C; }
Double_t GetQvecMC() {return fQvecMC;}
Int_t GetNch() { return fNch; }
void SetQVecCalibType(Int_t val) { fQvecCalibType=val; }
Int_t GetNchBin(TH2D * h);
Double_t CalculateQVectorMC(Int_t v0side, Int_t type);
Double_t GetQvecPercentileMC(Int_t v0side, Int_t type);
Int_t CheckVZEROchannel(Int_t vzeroside, Double_t eta, Double_t phi);
Int_t CheckVZEROacceptance(Double_t eta);
private:
AliAODEvent *fAOD;
UInt_t fSelectBit;
TString fCentralityMethod;
UInt_t fTrackBits;
Bool_t fIsMC;
Bool_t fIsLHC10h;
AliSpectraAODTrackCuts *fTrackCuts;
Bool_t fIsSelected;
Float_t fCentralityCutMin;
Float_t fCentralityCutMax;
Float_t fQVectorCutMin;
Float_t fQVectorCutMax;
Float_t fVertexCutMin;
Float_t fVertexCutMax;
Float_t fMultiplicityCutMin;
Float_t fMultiplicityCutMax;
Double_t fqTPC;
Double_t fqV0C;
Double_t fqV0A;
Double_t fqV0Cx;
Double_t fqV0Ax;
Double_t fqV0Cy;
Double_t fqV0Ay;
Double_t fPsiV0C;
Double_t fPsiV0A;
Double_t fCent;
TList *fOutput;
TList *fCalib;
Int_t fRun;
TProfile* fMultV0;
Float_t fV0Cpol1;
Float_t fV0Cpol2;
Float_t fV0Cpol3;
Float_t fV0Cpol4;
Float_t fV0Apol1;
Float_t fV0Apol2;
Float_t fV0Apol3;
Float_t fV0Apol4;
Float_t fMeanQxa2[10];
Float_t fMeanQya2[10];
Float_t fMeanQxc2[10];
Float_t fMeanQyc2[10];
TList *fQvecIntList;
TH2D * fQvecIntegral;
TObjArray * fSplineArrayV0A;
TObjArray * fSplineArrayV0C;
TObjArray * fSplineArrayTPC;
TH2D * fQgenIntegral;
TObjArray * fSplineArrayV0Agen;
TObjArray * fSplineArrayV0Cgen;
Double_t fQvecMC;
Int_t fNch;
Int_t fQvecCalibType;
TH1F * fV0Aeff;
AliSpectraAODEventCuts(const AliSpectraAODEventCuts&);
AliSpectraAODEventCuts& operator=(const AliSpectraAODEventCuts&);
ClassDef(AliSpectraAODEventCuts, 10);
};
#endif
AliSpectraAODEventCuts.h:1 AliSpectraAODEventCuts.h:2 AliSpectraAODEventCuts.h:3 AliSpectraAODEventCuts.h:4 AliSpectraAODEventCuts.h:5 AliSpectraAODEventCuts.h:6 AliSpectraAODEventCuts.h:7 AliSpectraAODEventCuts.h:8 AliSpectraAODEventCuts.h:9 AliSpectraAODEventCuts.h:10 AliSpectraAODEventCuts.h:11 AliSpectraAODEventCuts.h:12 AliSpectraAODEventCuts.h:13 AliSpectraAODEventCuts.h:14 AliSpectraAODEventCuts.h:15 AliSpectraAODEventCuts.h:16 AliSpectraAODEventCuts.h:17 AliSpectraAODEventCuts.h:18 AliSpectraAODEventCuts.h:19 AliSpectraAODEventCuts.h:20 AliSpectraAODEventCuts.h:21 AliSpectraAODEventCuts.h:22 AliSpectraAODEventCuts.h:23 AliSpectraAODEventCuts.h:24 AliSpectraAODEventCuts.h:25 AliSpectraAODEventCuts.h:26 AliSpectraAODEventCuts.h:27 AliSpectraAODEventCuts.h:28 AliSpectraAODEventCuts.h:29 AliSpectraAODEventCuts.h:30 AliSpectraAODEventCuts.h:31 AliSpectraAODEventCuts.h:32 AliSpectraAODEventCuts.h:33 AliSpectraAODEventCuts.h:34 AliSpectraAODEventCuts.h:35 AliSpectraAODEventCuts.h:36 AliSpectraAODEventCuts.h:37 AliSpectraAODEventCuts.h:38 AliSpectraAODEventCuts.h:39 AliSpectraAODEventCuts.h:40 AliSpectraAODEventCuts.h:41 AliSpectraAODEventCuts.h:42 AliSpectraAODEventCuts.h:43 AliSpectraAODEventCuts.h:44 AliSpectraAODEventCuts.h:45 AliSpectraAODEventCuts.h:46 AliSpectraAODEventCuts.h:47 AliSpectraAODEventCuts.h:48 AliSpectraAODEventCuts.h:49 AliSpectraAODEventCuts.h:50 AliSpectraAODEventCuts.h:51 AliSpectraAODEventCuts.h:52 AliSpectraAODEventCuts.h:53 AliSpectraAODEventCuts.h:54 AliSpectraAODEventCuts.h:55 AliSpectraAODEventCuts.h:56 AliSpectraAODEventCuts.h:57 AliSpectraAODEventCuts.h:58 AliSpectraAODEventCuts.h:59 AliSpectraAODEventCuts.h:60 AliSpectraAODEventCuts.h:61 AliSpectraAODEventCuts.h:62 AliSpectraAODEventCuts.h:63 AliSpectraAODEventCuts.h:64 AliSpectraAODEventCuts.h:65 AliSpectraAODEventCuts.h:66 AliSpectraAODEventCuts.h:67 AliSpectraAODEventCuts.h:68 AliSpectraAODEventCuts.h:69 AliSpectraAODEventCuts.h:70 AliSpectraAODEventCuts.h:71 AliSpectraAODEventCuts.h:72 AliSpectraAODEventCuts.h:73 AliSpectraAODEventCuts.h:74 AliSpectraAODEventCuts.h:75 AliSpectraAODEventCuts.h:76 AliSpectraAODEventCuts.h:77 AliSpectraAODEventCuts.h:78 AliSpectraAODEventCuts.h:79 AliSpectraAODEventCuts.h:80 AliSpectraAODEventCuts.h:81 AliSpectraAODEventCuts.h:82 AliSpectraAODEventCuts.h:83 AliSpectraAODEventCuts.h:84 AliSpectraAODEventCuts.h:85 AliSpectraAODEventCuts.h:86 AliSpectraAODEventCuts.h:87 AliSpectraAODEventCuts.h:88 AliSpectraAODEventCuts.h:89 AliSpectraAODEventCuts.h:90 AliSpectraAODEventCuts.h:91 AliSpectraAODEventCuts.h:92 AliSpectraAODEventCuts.h:93 AliSpectraAODEventCuts.h:94 AliSpectraAODEventCuts.h:95 AliSpectraAODEventCuts.h:96 AliSpectraAODEventCuts.h:97 AliSpectraAODEventCuts.h:98 AliSpectraAODEventCuts.h:99 AliSpectraAODEventCuts.h:100 AliSpectraAODEventCuts.h:101 AliSpectraAODEventCuts.h:102 AliSpectraAODEventCuts.h:103 AliSpectraAODEventCuts.h:104 AliSpectraAODEventCuts.h:105 AliSpectraAODEventCuts.h:106 AliSpectraAODEventCuts.h:107 AliSpectraAODEventCuts.h:108 AliSpectraAODEventCuts.h:109 AliSpectraAODEventCuts.h:110 AliSpectraAODEventCuts.h:111 AliSpectraAODEventCuts.h:112 AliSpectraAODEventCuts.h:113 AliSpectraAODEventCuts.h:114 AliSpectraAODEventCuts.h:115 AliSpectraAODEventCuts.h:116 AliSpectraAODEventCuts.h:117 AliSpectraAODEventCuts.h:118 AliSpectraAODEventCuts.h:119 AliSpectraAODEventCuts.h:120 AliSpectraAODEventCuts.h:121 AliSpectraAODEventCuts.h:122 AliSpectraAODEventCuts.h:123 AliSpectraAODEventCuts.h:124 AliSpectraAODEventCuts.h:125 AliSpectraAODEventCuts.h:126 AliSpectraAODEventCuts.h:127 AliSpectraAODEventCuts.h:128 AliSpectraAODEventCuts.h:129 AliSpectraAODEventCuts.h:130 AliSpectraAODEventCuts.h:131 AliSpectraAODEventCuts.h:132 AliSpectraAODEventCuts.h:133 AliSpectraAODEventCuts.h:134 AliSpectraAODEventCuts.h:135 AliSpectraAODEventCuts.h:136 AliSpectraAODEventCuts.h:137 AliSpectraAODEventCuts.h:138 AliSpectraAODEventCuts.h:139 AliSpectraAODEventCuts.h:140 AliSpectraAODEventCuts.h:141 AliSpectraAODEventCuts.h:142 AliSpectraAODEventCuts.h:143 AliSpectraAODEventCuts.h:144 AliSpectraAODEventCuts.h:145 AliSpectraAODEventCuts.h:146 AliSpectraAODEventCuts.h:147 AliSpectraAODEventCuts.h:148 AliSpectraAODEventCuts.h:149 AliSpectraAODEventCuts.h:150 AliSpectraAODEventCuts.h:151 AliSpectraAODEventCuts.h:152 AliSpectraAODEventCuts.h:153 AliSpectraAODEventCuts.h:154 AliSpectraAODEventCuts.h:155 AliSpectraAODEventCuts.h:156 AliSpectraAODEventCuts.h:157 AliSpectraAODEventCuts.h:158 AliSpectraAODEventCuts.h:159 AliSpectraAODEventCuts.h:160 AliSpectraAODEventCuts.h:161 AliSpectraAODEventCuts.h:162 AliSpectraAODEventCuts.h:163 AliSpectraAODEventCuts.h:164 AliSpectraAODEventCuts.h:165 AliSpectraAODEventCuts.h:166 AliSpectraAODEventCuts.h:167 AliSpectraAODEventCuts.h:168 AliSpectraAODEventCuts.h:169 AliSpectraAODEventCuts.h:170 AliSpectraAODEventCuts.h:171 AliSpectraAODEventCuts.h:172 AliSpectraAODEventCuts.h:173 AliSpectraAODEventCuts.h:174 AliSpectraAODEventCuts.h:175 AliSpectraAODEventCuts.h:176 AliSpectraAODEventCuts.h:177 AliSpectraAODEventCuts.h:178 AliSpectraAODEventCuts.h:179 AliSpectraAODEventCuts.h:180 AliSpectraAODEventCuts.h:181 AliSpectraAODEventCuts.h:182 AliSpectraAODEventCuts.h:183 AliSpectraAODEventCuts.h:184 AliSpectraAODEventCuts.h:185 AliSpectraAODEventCuts.h:186 AliSpectraAODEventCuts.h:187 AliSpectraAODEventCuts.h:188 AliSpectraAODEventCuts.h:189 AliSpectraAODEventCuts.h:190 AliSpectraAODEventCuts.h:191 AliSpectraAODEventCuts.h:192 AliSpectraAODEventCuts.h:193 AliSpectraAODEventCuts.h:194 AliSpectraAODEventCuts.h:195 AliSpectraAODEventCuts.h:196 AliSpectraAODEventCuts.h:197 AliSpectraAODEventCuts.h:198 AliSpectraAODEventCuts.h:199 AliSpectraAODEventCuts.h:200 AliSpectraAODEventCuts.h:201 AliSpectraAODEventCuts.h:202 AliSpectraAODEventCuts.h:203 AliSpectraAODEventCuts.h:204 AliSpectraAODEventCuts.h:205 AliSpectraAODEventCuts.h:206 AliSpectraAODEventCuts.h:207 AliSpectraAODEventCuts.h:208 AliSpectraAODEventCuts.h:209 AliSpectraAODEventCuts.h:210 AliSpectraAODEventCuts.h:211 AliSpectraAODEventCuts.h:212 AliSpectraAODEventCuts.h:213 AliSpectraAODEventCuts.h:214 AliSpectraAODEventCuts.h:215 AliSpectraAODEventCuts.h:216 AliSpectraAODEventCuts.h:217 AliSpectraAODEventCuts.h:218 AliSpectraAODEventCuts.h:219 AliSpectraAODEventCuts.h:220 AliSpectraAODEventCuts.h:221 AliSpectraAODEventCuts.h:222 AliSpectraAODEventCuts.h:223 AliSpectraAODEventCuts.h:224 AliSpectraAODEventCuts.h:225 AliSpectraAODEventCuts.h:226 AliSpectraAODEventCuts.h:227 AliSpectraAODEventCuts.h:228 AliSpectraAODEventCuts.h:229 AliSpectraAODEventCuts.h:230 AliSpectraAODEventCuts.h:231 AliSpectraAODEventCuts.h:232 AliSpectraAODEventCuts.h:233 AliSpectraAODEventCuts.h:234 AliSpectraAODEventCuts.h:235 AliSpectraAODEventCuts.h:236 AliSpectraAODEventCuts.h:237 AliSpectraAODEventCuts.h:238 AliSpectraAODEventCuts.h:239 AliSpectraAODEventCuts.h:240 AliSpectraAODEventCuts.h:241 AliSpectraAODEventCuts.h:242 AliSpectraAODEventCuts.h:243 AliSpectraAODEventCuts.h:244 AliSpectraAODEventCuts.h:245 AliSpectraAODEventCuts.h:246 AliSpectraAODEventCuts.h:247 AliSpectraAODEventCuts.h:248 AliSpectraAODEventCuts.h:249 AliSpectraAODEventCuts.h:250 AliSpectraAODEventCuts.h:251 AliSpectraAODEventCuts.h:252