28 #include "Riostream.h"
29 #include "AliAODEvent.h"
30 #include "AliAODHeader.h"
31 #include "AliCentrality.h"
34 #include "TProfile2D.h"
54 fBookOnlyBasicCCH(kTRUE),
55 fFillMultipleControlHistograms(kFALSE),
57 fApplyCorrectionForNUA(kFALSE),
58 fApplyCorrectionForNUAVsM(kFALSE),
59 fPropagateErrorAlsoFromNIT(kFALSE),
60 fCalculateDiffFlow(kTRUE),
61 fCalculate2DDiffFlow(kFALSE),
62 fCalculateDiffFlowVsEta(kTRUE),
63 fStoreDistributions(kFALSE),
64 fCalculateCumulantsVsM(kFALSE),
65 fCalculateAllCorrelationsVsM(kFALSE),
66 fCalculateMixedHarmonics(kFALSE),
67 fCalculateMixedHarmonicsVsM(kFALSE),
68 fStoreControlHistograms(kFALSE),
69 fMinimumBiasReferenceFlow(kTRUE),
70 fForgetAboutCovariances(kFALSE),
71 fStoreVarious(kFALSE),
73 fUse2DHistograms(kFALSE),
74 fFillProfilesVsMUsingWeights(kTRUE),
75 fUseQvectorTerms(kFALSE),
79 fUseParticleWeights(useParticleWeights),
80 fUsePhiWeights(kFALSE),
81 fUsePtWeights(kFALSE),
82 fUseEtaWeights(kFALSE),
83 fUseTrackWeights(kFALSE),
84 fUsePhiEtaWeights(kFALSE),
85 fUsePhiEtaWeightsChDep(kFALSE),
86 fUsePhiEtaWeightsVtxDep(kFALSE),
87 fUsePhiEtaCuts(kFALSE),
88 fUseZDCESEMulWeights(kFALSE),
89 fUseZDCESESpecWeights(kFALSE),
91 fMultiplicityWeight(NULL),
93 fnBinsForCorrelations(10000),
94 fUseBootstrap(kFALSE),
95 fUseBootstrapVsM(kFALSE),
98 fCalculateCRCPt(kFALSE),
99 fCalculateCME(kFALSE),
100 fCalculateCRCInt(kFALSE),
101 fCalculateCRC2(kFALSE),
102 fCalculateCRCVZ(kFALSE),
103 fCalculateCRCZDC(kFALSE),
104 fCalculateEbEFlow(kFALSE),
105 fStoreZDCQVecVtxPos(kFALSE),
107 fCalculateFlowQC(kFALSE),
108 fCalculateFlowZDC(kFALSE),
109 fCalculateFlowVZ(kFALSE),
112 fRecenterZDC(kFALSE),
117 fUseNUAforCRC(kFALSE),
118 fUseCRCRecenter(kFALSE),
123 fFlowQCDeltaEta(0.4),
126 fInteractionRate(""),
128 fPOIExtraWeights(""),
129 fCorrWeight("TPCuVZuZDCu"),
131 fCRCZDCCalibList(NULL),
132 fCRCVZEROCalibList(NULL),
133 fCRCZDCResList(NULL),
135 fCenWeightsHist(NULL),
136 fRefMultRbRPro(NULL),
137 fAvEZDCCRbRPro(NULL),
138 fAvEZDCARbRPro(NULL),
139 fPhiExclZoneHist(NULL),
141 fUseTracklets(kFALSE),
147 AliDebug(2,
"AliAnalysisTaskCRC::AliAnalysisTaskCRC(const char *name, Bool_t useParticleWeights)");
151 DefineInput(0, AliFlowEventSimple::Class());
155 DefineOutput(1, TList::Class());
158 fMultiplicityWeight =
new TString(
"combinations");
162 fMinValueOfCorrelation[0] = -0.015;
163 fMaxValueOfCorrelation[0] = 0.03;
164 fMinValueOfCorrelation[1] = -0.6e-3;
165 fMaxValueOfCorrelation[1] = 0.07;
166 fMinValueOfCorrelation[2] = -0.08e-3;
167 fMaxValueOfCorrelation[2] = 0.015;
168 fMinValueOfCorrelation[3] = -20.e-6;
169 fMaxValueOfCorrelation[3] = 0.003;
173 fMinValueOfCorrelationProduct[0] = -15.e-6;
174 fMaxValueOfCorrelationProduct[0] = 0.02;
177 fMinValueOfQvectorTerms[0] = 0.;
178 fMaxValueOfQvectorTerms[0] = 30.;
179 fMinValueOfQvectorTerms[1] = 0.;
180 fMaxValueOfQvectorTerms[1] = 20.;
181 fMinValueOfQvectorTerms[2] = 0.;
182 fMaxValueOfQvectorTerms[2] = 200.;
183 fMinValueOfQvectorTerms[3] = -30.;
184 fMaxValueOfQvectorTerms[3] = 80.;
187 fPtWeightsHist[
c] = NULL;
188 for(
Int_t b=0; b<21; b++) {
189 for(
Int_t k=0; k<2; k++) {
190 fEtaWeightsHist[
c][b][k] = NULL;
195 for(
Int_t k=0; k<2; k++) {
196 fNvsCenCut[
c][k] = NULL;
199 for(
Int_t k=0; k<5; k++) {
200 fZDCESEMultWeightsHist[k] = NULL;
201 fZDCESESpecWeightsHist[k] = NULL;
213 fBookOnlyBasicCCH(kFALSE),
214 fFillMultipleControlHistograms(kFALSE),
216 fApplyCorrectionForNUA(kFALSE),
217 fApplyCorrectionForNUAVsM(kFALSE),
218 fPropagateErrorAlsoFromNIT(kFALSE),
219 fCalculateDiffFlow(kFALSE),
220 fCalculate2DDiffFlow(kFALSE),
221 fCalculateDiffFlowVsEta(kTRUE),
222 fStoreDistributions(kFALSE),
223 fCalculateCumulantsVsM(kFALSE),
224 fCalculateAllCorrelationsVsM(kFALSE),
225 fCalculateMixedHarmonics(kFALSE),
226 fCalculateMixedHarmonicsVsM(kFALSE),
227 fStoreControlHistograms(kFALSE),
228 fMinimumBiasReferenceFlow(kFALSE),
229 fForgetAboutCovariances(kFALSE),
230 fStoreVarious(kFALSE),
232 fUse2DHistograms(kFALSE),
233 fFillProfilesVsMUsingWeights(kTRUE),
234 fUseQvectorTerms(kFALSE),
238 fUseParticleWeights(kFALSE),
239 fUsePhiWeights(kFALSE),
240 fUsePtWeights(kFALSE),
241 fUseEtaWeights(kFALSE),
242 fUseTrackWeights(kFALSE),
243 fUsePhiEtaWeights(kFALSE),
244 fUsePhiEtaWeightsChDep(kFALSE),
245 fUsePhiEtaWeightsVtxDep(kFALSE),
246 fUsePhiEtaCuts(kFALSE),
247 fUseZDCESEMulWeights(kFALSE),
248 fUseZDCESESpecWeights(kFALSE),
250 fMultiplicityWeight(NULL),
252 fnBinsForCorrelations(0),
253 fUseBootstrap(kFALSE),
254 fUseBootstrapVsM(kFALSE),
256 fCalculateCRC(kTRUE),
257 fCalculateCRCPt(kFALSE),
258 fCalculateCME(kFALSE),
259 fCalculateCRCInt(kFALSE),
260 fCalculateCRC2(kFALSE),
261 fCalculateCRCVZ(kFALSE),
262 fCalculateCRCZDC(kFALSE),
263 fCalculateEbEFlow(kFALSE),
264 fStoreZDCQVecVtxPos(kFALSE),
266 fCalculateFlowQC(kFALSE),
267 fCalculateFlowZDC(kFALSE),
268 fCalculateFlowVZ(kFALSE),
271 fRecenterZDC(kFALSE),
276 fUseNUAforCRC(kFALSE),
277 fUseCRCRecenter(kFALSE),
282 fFlowQCDeltaEta(0.4),
285 fInteractionRate(
""),
287 fPOIExtraWeights(
""),
288 fCorrWeight(
"TPCuVZuZDCu"),
290 fCRCZDCCalibList(NULL),
291 fCRCVZEROCalibList(NULL),
292 fCRCZDCResList(NULL),
294 fCenWeightsHist(NULL),
295 fRefMultRbRPro(NULL),
296 fAvEZDCCRbRPro(NULL),
297 fAvEZDCARbRPro(NULL),
298 fPhiExclZoneHist(NULL),
300 fUseTracklets(kFALSE),
306 AliDebug(2,
"AliAnalysisTaskCRC::AliAnalysisTaskCRC()");
336 for(
Int_t b=0; b<21; b++) {
337 for(
Int_t k=0; k<2; k++) {
343 for(
Int_t k=0; k<2; k++) {
347 for(
Int_t k=0; k<5; k++) {
359 AliDebug(2,
"AliAnalysisTaskCRC::UserCreateOutputObjects()");
480 for(
Int_t h=0; h<10; h++) {
481 for(
Int_t b=0; b<21; b++) {
490 for(
Int_t k=0; k<2; k++) {
497 for(
Int_t k=0; k<5; k++) {
503 for(
Int_t k=0; k<5; k++) {
518 for(
Int_t ci=0;ci<4;ci++) {
524 for(
Int_t cpi=0;cpi<1;cpi++) {
530 for(
Int_t ci=0;ci<4;ci++) {
545 Printf(
"ERROR: Could not retrieve histogram list (QC, Task::UserCreateOutputObjects()) !!!!");
564 cout<<
"WARNING: No input data (QC, Task::UserExec()) !!!!"<<endl;
595 cout<<
" WARNING: histogram list pointer is empty (QC, Task::Terminate()) !!!!"<<endl;
Bool_t fCalculateDiffFlowVsEta
void SetPOIExtraWeights(POIExtraWeights set)
Bool_t fUseZDCESESpecWeights
TList * GetHistList() const
void SetUsePhiEtaCuts(Bool_t const uPhiEtaW)
void SetTestSin(Bool_t const cCRC)
virtual void UserExec(Option_t *option)
void SetUseQvectorTerms(Bool_t const uqvt)
void SetNvsCenCut(TH1D *const n, Int_t c, Int_t h)
virtual void SetRunList()
virtual void UserCreateOutputObjects()
TH2F * fZDCESEMultWeightsHist[5]
ZDC mult cuts.
void SetUseTrackWeights(Bool_t const uTrackW)
TList * fCRCVZEROCalibList
void SetCalculateAllCorrelationsVsM(Bool_t const cacvm)
void SetDataSet(DataSet set)
void SetUseBootstrap(Bool_t const ub)
void SetCorrWeightVZ(CorrelationWeights weights)
void SetRecenterZDC(Bool_t const cCRC)
void SetBookOnlyBasicCCH(Bool_t const bobcch)
Bool_t fStoreZDCQVecVtxPos
void SetCalculateFlowVZ(Bool_t const cCRC)
TProfile2D * fAvEZDCARbRPro
void SetApplyCorrectionForNUA(Bool_t const applyCorrectionForNUA)
void SetCRCQVecWeightsList(TList *const wlist)
void SetZDCESEList(TList *const kList)
void SetUseZDCESEMulWeights(Bool_t const uPhiEtaW)
void SetUseZDC(Bool_t const cCRC)
void SetInvertZDC(Bool_t const cCRC)
void SetMinMulZN(Int_t weights)
void SetUsePhiWeights(Bool_t const uPhiW)
void SetQAZDCCuts(Bool_t const cCRC)
Bool_t fApplyCorrectionForNUA
void SetnBinsForCorrelations(Int_t const nb)
void SetUseVZERO(Bool_t const cCRC)
void SetDivSigma(Bool_t const cCRC)
void SetZDCESEMultWeightsHist(TH2F *const n, Int_t h)
void SetCorrWeightTPC(CorrelationWeights weights)
void SetInteractionRate(InteractionRate set)
void SetCalculateCRCVZ(Bool_t const cCRC)
void SetForgetAboutCovariances(Bool_t const fac)
TH1D * fPtWeightsHist[10]
Bool_t fCalculateMixedHarmonics
void SetCalculateCRC2(Bool_t const cCRC)
void SetZDCESESpecWeightsHist(TH2F *const n, Int_t h)
void SetMinValueOfCorrelation(Int_t const ci, Double_t const minValue)
void SetStoreControlHistograms(Bool_t const sch)
void SetFillMultipleControlHistograms(Bool_t const fmch)
void SetCalculateCRC(Bool_t const cCRC)
void SetMaxValueOfCorrelation(Int_t const ci, Double_t const maxValue)
void SetStoreZDCQVecVtxPos(Bool_t const cCRC)
void SetnBinsMult(Int_t const nbm)
void SetNUAforCRC(Bool_t const cCRC)
void SetCalculateFlowQC(Bool_t const cCRC)
virtual void Make(AliFlowEventSimple *anEvent)
TH2F * fZDCESESpecWeightsHist[5]
void SetMinValueOfCorrelationProduct(Int_t const cpi, Double_t const minValue)
void SetUseZDCESESpecWeights(Bool_t const uPhiEtaW)
void SetRefMultRbRPro(TProfile2D *const n)
Bool_t fCalculateMixedHarmonicsVsM
Bool_t fStoreDistributions
void SetCorrWeightZDC(CorrelationWeights weights)
void SetCalculateFlowZDC(Bool_t const cCRC)
Bool_t fUseZDCESEMulWeights
void SetRunNumber(Int_t const n)
Double_t fMinValueOfCorrelationProduct[1]
virtual void Terminate(Option_t *)
void SetCalculateDiffFlow(Bool_t const cdf)
void SetCalculateEbEFlow(Bool_t const cCRC)
void SetFillProfilesVsMUsingWeights(Bool_t const fpvmuw)
void SetPtWeightsHist(TH1D *const n, Int_t c)
Bool_t fPropagateErrorAlsoFromNIT
Double_t fMinValueOfCorrelation[4]
Double_t fMaxValueOfCorrelation[4]
void SetMinValueOfQvectorTerms(Int_t const qvti, Double_t const minValue)
void SetCalculateCumulantsVsM(Bool_t const ccvm)
void SetUseTracklets(Bool_t const cCRC)
Double_t fMinValueOfQvectorTerms[4]
Double_t fMaxValueOfQvectorTerms[4]
Bool_t fFillMultipleControlHistograms
void SetCRCZDCResList(TList *const wlist)
Bool_t fMinimumBiasReferenceFlow
void SetPropagateErrorAlsoFromNIT(Bool_t const peafNIT)
void SetCalculateCME(Bool_t const cCRC)
void SetExactNoRPs(Int_t const enr)
void SetCalculateCRCZDC(Bool_t const cCRC)
void SetnSubsamples(Int_t const ns)
void SetCalculateCRCPt(Bool_t const cCRC)
void SetRecenterZDCVtxRbR(Bool_t const cCRC)
void SetCalculate2DDiffFlow(Bool_t const c2ddf)
void SetStoreVarious(Bool_t const spdfoe)
Bool_t fApplyCorrectionForNUAVsM
void SetMaxMult(Double_t const maxm)
void SetCRCEtaRange(Double_t const etamin, Double_t const etamax)
Bool_t fUseParticleWeights
void SetAvEZDCRbRPro(TProfile2D *const A, TProfile2D *const B)
void SetMultiplicityWeight(const char *multiplicityWeight)
Bool_t fStoreControlHistograms
TProfile2D * fRefMultRbRPro
TH1D * fEtaWeightsHist[10][21][2]
void SetUseBootstrapVsM(Bool_t const ubVsM)
void SetUse2DHistograms(Bool_t const u2dh)
Double_t fMaxValueOfCorrelationProduct[1]
void SetWeightsList(TList *const wlist)
void SetZDCGainAlpha(Float_t a)
void SetCalculateMixedHarmonicsVsM(Bool_t const cmhvm)
TString * fMultiplicityWeight
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
AliFlowCommonConstants::ERefMultSource fMultiplicityIs
void SetMinMult(Double_t const minm)
void SetUseEtaWeights(Bool_t const uEtaW)
void SetCalculateCRCInt(Bool_t const cCRC)
void SetStoreDistributions(Bool_t const storeDistributions)
virtual void GetOutputHistograms(TList *outputListHistos)
void SetCalculateDiffFlowVsEta(Bool_t const cdfve)
void SetUsePtWeights(Bool_t const uPtW)
Bool_t fForgetAboutCovariances
void SetMultiplicityIs(AliFlowCommonConstants::ERefMultSource mi)
void SetHarmonic(Int_t const harmonic)
Bool_t fCalculateAllCorrelationsVsM
Bool_t fCalculateDiffFlow
void SetCRCVZEROCalibList(TList *const wlist)
void SetFlowQCDeltaEta(Double_t const TL)
void SetMaxValueOfCorrelationProduct(Int_t const cpi, Double_t const maxValue)
void SetMinimumBiasReferenceFlow(Bool_t const mmrf)
void SetCalculateMixedHarmonics(Bool_t const cmh)
void SetEtaWeightsHist(TH1D *const n, Int_t h, Int_t b, Int_t c)
Bool_t fFillProfilesVsMUsingWeights
Bool_t fCalculateCumulantsVsM
TProfile2D * fAvEZDCCRbRPro
void SetMaxDevZN(Float_t weights)
void SetSelectCharge(SelectCharge set)
void SetMaxValueOfQvectorTerms(Int_t const qvti, Double_t const maxValue)
Bool_t fCalculate2DDiffFlow
void SetApplyCorrectionForNUAVsM(Bool_t const applyCorrectionForNUAVsM)
void SetPhiExclZoneHist(TH2D *const n)
void SetCRCZDCCalibList(TList *const wlist)
void SetFlowQCCenBin(Int_t const TL)
void SetUseCRCRecenter(Bool_t const cCRC)
Int_t fnBinsForCorrelations
void SetCRC2nEtaBins(Int_t NB)
void SetCenWeightsHist(TH1D *const n)