24 #include "Riostream.h"
33 #include "AliMCEvent.h"
34 #include "AliMCParticle.h"
35 #include "AliCFManager.h"
36 #include "AliESDtrack.h"
37 #include "AliESDPmdTrack.h"
38 #include "AliESDEvent.h"
39 #include "AliAODEvent.h"
40 #include "AliOADBContainer.h"
41 #include "AliGenCocktailEventHeader.h"
42 #include "AliGenEposEventHeader.h"
43 #include "AliGenHijingEventHeader.h"
44 #include "AliGenGeVSimEventHeader.h"
45 #include "AliCollisionGeometry.h"
46 #include "AliMultiplicity.h"
47 #include "AliMultSelection.h"
61 AliFlowEventSimple(), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
64 for(
Int_t i(0); i < 9; i++) {
65 for(
Int_t j(0); j < 2; j++) {
66 for(
Int_t k(0); k < 2; k++) {
68 fWidthQ[i][j][k] = 0.;
69 fMeanQv3[i][j][k] = 0.;
70 fWidthQv3[i][j][k] = 0.;
74 for(
Int_t i(0); i < 5; i++) {
81 cout <<
"AliFlowEvent: Default constructor to be used only by root for io" << endl;
86 AliFlowEventSimple(n), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
89 for(
Int_t i(0); i < 9; i++) {
90 for(
Int_t j(0); j < 2; j++) {
91 for(
Int_t k(0); k < 2; k++) {
99 for(
Int_t i(0); i < 5; i++) {
109 AliFlowEventSimple(event), fApplyRecentering(event.fApplyRecentering), fDivSigma(event.fDivSigma), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
112 for(
Int_t i(0); i < 9; i++) {
113 for(
Int_t j(0); j < 2; j++) {
114 for(
Int_t k(0); k < 2; k++) {
122 for(
Int_t i(0); i < 5; i++) {
134 if (&event==
this)
return *
this;
145 for(
Int_t i(0); i < 9; i++) {
146 for(
Int_t j(0); j < 2; j++) {
147 for(
Int_t k(0); k < 2; k++) {
148 fMeanQ[i][j][k] =
event.fMeanQ[i][j][k];
149 fWidthQ[i][j][k] =
event.fWidthQ[i][j][k];
150 fMeanQv3[i][j][k] =
event.fMeanQv3[i][j][k];
151 fWidthQv3[i][j][k] =
event.fWidthQv3[i][j][k];
155 for(
Int_t i(0); i < 5; i++) {
180 if (!strcmp(mcEvent-> GenEventHeader()->GetName(),
"Cocktail Header"))
182 AliGenCocktailEventHeader *headerC =
dynamic_cast<AliGenCocktailEventHeader *
> (mcEvent-> GenEventHeader());
185 TList *lhd = headerC->GetHeaders();
188 AliGenHijingEventHeader *hdh =
dynamic_cast<AliGenHijingEventHeader *
> (lhd->At(0));
194 else if (!strcmp(mcEvent-> GenEventHeader()->GetName(),
"Therminator"))
196 AliGenHijingEventHeader* headerH =
dynamic_cast<AliGenHijingEventHeader*
>(mcEvent->GenEventHeader());
200 else if (!strcmp(mcEvent-> GenEventHeader()->GetName(),
"GeVSim header"))
202 AliGenGeVSimEventHeader* headerG =
dynamic_cast<AliGenGeVSimEventHeader*
>(mcEvent->GenEventHeader());
206 else if (!strcmp(mcEvent-> GenEventHeader()->GetName(),
"Hijing"))
208 AliGenHijingEventHeader* headerH =
dynamic_cast<AliGenHijingEventHeader*
>(mcEvent->GenEventHeader());
212 else if (!strcmp(mcEvent-> GenEventHeader()->GetName(),
"Ampt"))
214 AliGenHijingEventHeader* headerH =
dynamic_cast<AliGenHijingEventHeader*
>(mcEvent->GenEventHeader());
218 else if (!strcmp(mcEvent->GenEventHeader()->GetName(),
"EPOS"))
220 AliGenEposEventHeader* headerE =
dynamic_cast<AliGenEposEventHeader*
>(mcEvent->GenEventHeader());
226 AliCollisionGeometry* header =
dynamic_cast<AliCollisionGeometry*
>(mcEvent->GenEventHeader());
233 const AliCFManager* rpCFManager,
234 const AliCFManager* poiCFManager):
235 AliFlowEventSimple(20), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
238 for(
Int_t i(0); i < 9; i++) {
239 for(
Int_t j(0); j < 2; j++) {
240 for(
Int_t k(0); k < 2; k++) {
248 for(
Int_t i(0); i < 5; i++) {
256 Int_t iNumberOfInputTracks = anInput->GetNumberOfTracks() ;
259 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
262 AliMCParticle* pParticle =
dynamic_cast<AliMCParticle*
>(anInput->GetTrack(itrkN));
263 if (!pParticle)
continue;
268 if (rpCFManager && poiCFManager)
270 rpOK = rpCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,pParticle);
271 poiOK = poiCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,pParticle);
273 if (!(rpOK||poiOK))
continue;
278 if (rpOK && rpCFManager)
283 if (poiOK && poiCFManager)
296 const AliCFManager* rpCFManager,
297 const AliCFManager* poiCFManager ):
298 AliFlowEventSimple(20), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
301 for(
Int_t i(0); i < 9; i++) {
302 for(
Int_t j(0); j < 2; j++) {
303 for(
Int_t k(0); k < 2; k++) {
311 for(
Int_t i(0); i < 5; i++) {
318 if(anInput->GetRunNumber())
fRun = anInput->GetRunNumber();
322 Int_t iNumberOfInputTracks = anInput->GetNumberOfTracks() ;
325 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
327 AliESDtrack* pParticle = anInput->GetTrack(itrkN);
332 if (rpCFManager && poiCFManager)
334 rpOK = ( rpCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
335 rpCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
336 poiOK = ( poiCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
337 poiCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
339 if (!(rpOK || poiOK))
continue;
346 if(rpOK && rpCFManager)
352 if(poiOK && poiCFManager)
364 const AliCFManager* rpCFManager,
365 const AliCFManager* poiCFManager):
366 AliFlowEventSimple(20), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
369 for(
Int_t i(0); i < 9; i++) {
370 for(
Int_t j(0); j < 2; j++) {
371 for(
Int_t k(0); k < 2; k++) {
379 for(
Int_t i(0); i < 5; i++) {
387 if(anInput->GetRunNumber())
fRun = anInput->GetRunNumber();
390 Int_t iNumberOfInputTracks = anInput->GetNumberOfTracks() ;
393 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
395 AliAODTrack* pParticle =
dynamic_cast<AliAODTrack*
>(anInput->GetTrack(itrkN));
396 if(!pParticle) AliFatal(
"Not a standard AOD");
401 if (rpCFManager && poiCFManager)
403 rpOK = ( rpCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
404 rpCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
405 poiOK = ( poiCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
406 poiCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
408 if (!(rpOK || poiOK))
continue;
456 const AliMCEvent* anInputMc,
458 const AliCFManager* rpCFManager,
459 const AliCFManager* poiCFManager ):
460 AliFlowEventSimple(20), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
463 for(
Int_t i(0); i < 9; i++) {
464 for(
Int_t j(0); j < 2; j++) {
465 for(
Int_t k(0); k < 2; k++) {
473 for(
Int_t i(0); i < 5; i++) {
482 AliFatal(
"WRONG OPTION IN AliFlowEventMaker::FillTracks(AliESDEvent* anInput, AliMCEvent* anInputMc, KineSource anOption)");
486 Int_t iNumberOfInputTracks = anInput->GetNumberOfTracks() ;
488 Int_t iNumberOfInputTracksMC = anInputMc->GetNumberOfTracks() ;
489 if (iNumberOfInputTracksMC==-1)
491 AliError(
"Skipping Event -- No MC information available for this event");
496 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
498 AliESDtrack* pParticle = anInput->GetTrack(itrkN);
500 Int_t iLabel = pParticle->GetLabel();
502 AliMCParticle* pMcParticle = (AliMCParticle*) anInputMc->GetTrack(TMath::Abs(iLabel));
505 if (TMath::Abs(pParticle->GetLabel())!=pMcParticle->Label())
506 AliWarning(Form(
"pParticle->GetLabel()!=pMcParticle->Label(), %i, %i", pParticle->GetLabel(), pMcParticle->Label()));
511 if (rpCFManager && poiCFManager)
515 if (rpCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,pMcParticle,
"mcGenCuts1") &&
516 rpCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle))
518 if (poiCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,pMcParticle,
"mcGenCuts2") &&
519 poiCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle))
524 if (rpCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,pMcParticle))
526 if (poiCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,pMcParticle))
531 if (!(rpOK || poiOK))
continue;
544 if (rpOK && rpCFManager)
549 if (poiOK && poiCFManager)
562 const AliMultiplicity* anInputTracklets,
563 const AliCFManager* poiCFManager ):
564 AliFlowEventSimple(20), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
567 for(
Int_t i(0); i < 9; i++) {
568 for(
Int_t j(0); j < 2; j++) {
569 for(
Int_t k(0); k < 2; k++) {
577 for(
Int_t i(0); i < 5; i++) {
585 Int_t iNumberOfInputTracks = anInput->GetNumberOfTracks() ;
588 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
590 AliESDtrack* pParticle = anInput->GetTrack(itrkN);
596 poiOK = ( poiCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
597 poiCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
599 if (!poiOK)
continue;
605 if(poiOK && poiCFManager)
616 anInputTracklets = anInput->GetMultiplicity();
617 Int_t multSPD = anInputTracklets->GetNumberOfTracklets();
620 for (
Int_t itracklet=0; itracklet<multSPD; ++itracklet) {
621 Float_t thetaTr= anInputTracklets->GetTheta(itracklet);
622 Float_t phiTr= anInputTracklets->GetPhi(itracklet);
624 Float_t etaTr = -TMath::Log(TMath::Tan(thetaTr/2.));
644 const AliCFManager* poiCFManager,
646 AliFlowEventSimple(20), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
649 for(
Int_t i(0); i < 9; i++) {
650 for(
Int_t j(0); j < 2; j++) {
651 for(
Int_t k(0); k < 2; k++) {
659 for(
Int_t i(0); i < 5; i++) {
666 Int_t iNumberOfInputTracks = esd->GetNumberOfTracks() ;
669 Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0};
672 AliESDtrack trackTPC;
675 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
678 if (!esd->GetTrack(itrkN))
continue;
682 AliESDtrack* pParticle = esd->GetTrack(itrkN);
689 poiOK = ( poiCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
690 poiCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
693 if (!(poiOK))
continue;
695 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)pParticle->GetTPCInnerParam();
705 const AliESDVertex *vertexSPD = esd->GetPrimaryVertexSPD();
706 const AliESDVertex *vertexTPC = esd->GetPrimaryVertexTPC();
708 AliExternalTrackParam copy(*tpcTrack);
710 copy.PropagateToDCA(vertexSPD,esd->GetMagneticField(),100.,dca,cov);
712 copy.PropagateToDCA(vertexTPC,esd->GetMagneticField(),100.,dca,cov);
724 if(poiOK && poiCFManager)
744 const TH2F* anInputFMDhist,
745 const AliCFManager* poiCFManager ):
746 AliFlowEventSimple(20), fApplyRecentering(-1), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
749 for(
Int_t i(0); i < 9; i++) {
750 for(
Int_t j(0); j < 2; j++) {
751 for(
Int_t k(0); k < 2; k++) {
759 for(
Int_t i(0); i < 5; i++) {
767 Int_t iNumberOfInputTracks = anInput->GetNumberOfTracks() ;
770 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
772 AliESDtrack* pParticle = anInput->GetTrack(itrkN);
778 poiOK = ( poiCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
779 poiCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
781 if (!poiOK)
continue;
787 if(poiOK && poiCFManager)
799 Int_t iBinsEta = anInputFMDhist->GetNbinsX();
800 Int_t iBinsPhi = anInputFMDhist->GetNbinsY();
802 for (
Int_t iEta = 1; iEta <= iBinsEta; iEta++){
803 Double_t etaFMD = anInputFMDhist->GetXaxis()->GetBinCenter(iEta);
804 for (
Int_t iPhi = 1; iPhi <= iBinsPhi; iPhi++){
805 Double_t phiFMD = anInputFMDhist->GetYaxis()->GetBinCenter(iPhi);
806 Double_t weightFMD = anInputFMDhist->GetBinContent(iEta,iPhi);
808 if (weightFMD > 0.0) {
838 if (!mother)
continue;
843 Int_t esdIndexDaughterCandidate = daughterCandidate->
GetID();
847 if (esdIndexDaughter==esdIndexDaughterCandidate)
871 if (!rpCuts || !poiCuts)
return;
949 if (sourceRP==sourcePOI)
953 for (
Int_t i=0; i<numberOfInputObjects; i++)
961 if (!(rp||poi))
continue;
967 if (!pTrack)
continue;
975 if (!pTrack)
continue;
982 else if (sourceRP!=sourcePOI)
993 if (!pTrack)
continue;
1001 for (
Int_t i=0; i<numberOfInputObjects; i++)
1007 if (!pTrack)
continue;
1048 AliFlowEventSimple(20), fApplyRecentering(kFALSE), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
1052 for(
Int_t i(0); i < 9; i++) {
1053 for(
Int_t j(0); j < 2; j++) {
1054 for(
Int_t k(0); k < 2; k++) {
1062 for(
Int_t i(0); i < 5; i++) {
1070 Fill(rpCuts,poiCuts);
1077 const AliESDPmdTrack *pmdtracks,
1078 const AliCFManager* poiCFManager ):
1079 AliFlowEventSimple(20), fApplyRecentering(kFALSE), fDivSigma(kTRUE), fCachedRun(-1), fVZEROcentralityBin(-1), fEvent(0x0), fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0)
1083 for(
Int_t i(0); i < 9; i++) {
1084 for(
Int_t j(0); j < 2; j++) {
1085 for(
Int_t k(0); k < 2; k++) {
1093 for(
Int_t i(0); i < 5; i++) {
1103 Int_t iNumberOfInputTracks = anInput->GetNumberOfTracks() ;
1106 for (
Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
1108 AliESDtrack* pParticle = anInput->GetTrack(itrkN);
1113 poiOK = ( poiCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,pParticle) &&
1114 poiCFManager->CheckParticleCuts(AliCFManager::kPartSelCuts,pParticle));
1116 if (!poiOK)
continue;
1122 if(poiOK && poiCFManager)
1133 Int_t npmdcl = anInput->GetNumberOfPmdTracks();
1134 printf(
"======There are %d PMD tracks in this event\n-------",npmdcl);
1136 for(
Int_t iclust=0; iclust < npmdcl; iclust++){
1138 pmdtracks = anInput->GetPmdTrack(iclust);
1139 Int_t det = pmdtracks->GetDetector();
1141 Float_t clsX = pmdtracks->GetClusterX();
1142 Float_t clsY = pmdtracks->GetClusterY();
1143 Float_t clsZ = pmdtracks->GetClusterZ();
1144 Float_t ncell = pmdtracks->GetClusterCells();
1145 Float_t adc = pmdtracks->GetClusterADC();
1152 if(det == 0 && adc > 270 && ncell > 1){
1170 rpxpy = TMath::Sqrt(xPos*xPos + yPos*yPos);
1171 theta = TMath::ATan2(rpxpy,zPos);
1172 eta = -TMath::Log(TMath::Tan(0.5*theta));
1178 Float_t pybypx, phi = 0., phi1;
1181 if(yPos>0) phi = 90.;
1182 if(yPos<0) phi = 270.;
1187 if(pybypx < 0) pybypx = - pybypx;
1188 phi1 = TMath::ATan(pybypx)*180./3.14159;
1190 if(xPos > 0 && yPos > 0) phi = phi1;
1191 if(xPos < 0 && yPos > 0) phi = 180 - phi1;
1192 if(xPos < 0 && yPos < 0) phi = 180 + phi1;
1193 if(xPos > 0 && yPos < 0) phi = 360 - phi1;
1196 phi = phi*3.14159/180.;
1213 Double_t chiA(1.), chiC(1.), dQX(0.), dQY(0.);
1223 dQX = chiA*chiA*vB.X()+chiC*chiC*vA.X();
1224 dQY = chiA*chiA*vB.Y()+chiC*chiC*vA.Y();
1232 fEvent->GetEventplane()->CalculateVZEROEventPlane(
fEvent, 10, n, dQX, dQY);
1283 }
else if (n == 3) {
1295 Double_t QxaCor = (Qxa - Qxamean)/Qxarms;
1296 Double_t QyaCor = (Qya - Qyamean)/Qyarms;
1297 Double_t QxcCor = (Qxc - Qxcmean)/Qxcrms;
1298 Double_t QycCor = (Qyc - Qycmean)/Qycrms;
1300 vA.Set(QxcCor, QycCor);
1301 vB.Set(QxaCor, QyaCor);
1310 fEvent->GetEventplane()->CalculateVZEROEventPlane(
fEvent, 8, n, QxaCor, QyaCor);
1311 fEvent->GetEventplane()->CalculateVZEROEventPlane(
fEvent, 9, n, QxcCor, QycCor);
1314 vA.Set(QxcCor, QycCor);
1315 vB.Set(QxaCor, QyaCor);
1329 if(
fEvent->GetRunNumber() < 209122){
1332 Cen =
fEvent->GetCentrality()->GetCentralityPercentile(
"V0M");
1334 AliMultSelection *MultSelection = 0x0;
1335 MultSelection = (AliMultSelection * )
fEvent->FindListObject(
"MultSelection");
1336 if( !MultSelection) {
1338 AliWarning(
"AliMultSelection not found, did you Run AliMultSelectionTask? \n");
1340 Cen = MultSelection->GetMultiplicityPercentile(
"V0M");
1367 AliFatal(
"no calibration available for n>4 for VZEROs \n");
1374 if(
fDivSigma && Qxarms>0. && Qyarms>0. && Qxcrms>0. && Qycrms>0.) {
1398 if(
fEvent->GetRunNumber() < 209122){
1401 Cen =
fEvent->GetCentrality()->GetCentralityPercentile(
"V0M");
1403 AliMultSelection *MultSelection = 0x0;
1404 MultSelection = (AliMultSelection * )
fEvent->FindListObject(
"MultSelection");
1405 if( !MultSelection) {
1407 AliWarning(
"AliMultSelection not found, did you Run AliMultSelectionTask? \n");
1409 Cen = MultSelection->GetMultiplicityPercentile(
"V0M");
1424 Double_t QxaR = Qxa - Qxamean*MultA;
1425 Double_t QyaR = Qya - Qyamean*MultA;
1426 Double_t QxcR = Qxc - Qxcmean*MultC;
1427 Double_t QycR = Qyc - Qycmean*MultC;
1428 if(
fDivSigma && Qxarms>0. && Qyarms>0. && Qxcrms>0. && Qycrms>0.) {
1439 cout <<
" WARNING: recentering not possible for harmonic " << n <<
" (delta calibration) " << endl;
1450 AliMultSelection *MultSelection = 0x0;
1451 MultSelection = (AliMultSelection * )
fEvent->FindListObject(
"MultSelection");
1452 if( !MultSelection) AliWarning(
"AliMultSelection not found, did you Run AliMultSelectionTask? \n");
1454 v0Centr = MultSelection->GetMultiplicityPercentile(
"V0M");
1455 spdCentr = MultSelection->GetMultiplicityPercentile(
"CL1");
1464 else if ((v0Centr >= 5.) && (v0Centr < 10.))
1466 else if ((v0Centr >= 10.) && (v0Centr < 20.))
1468 else if ((v0Centr >= 20.) && (v0Centr < 30.))
1470 else if ((v0Centr >= 30.) && (v0Centr < 40.))
1472 else if ((v0Centr >= 40.) && (v0Centr < 50.))
1474 else if ((v0Centr >= 50.) && (v0Centr < 60.))
1476 else if ((v0Centr >= 60.) && (v0Centr < 70.))
1478 else if ((v0Centr >= 70.) && (v0Centr < 80.))
1499 AliAODVZERO* aodV0 =
static_cast<AliAODVZERO*
>(
fEvent->GetVZEROData());
1501 for (
Int_t iV0 = 0; iV0 < 64; iV0++) {
1502 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
1503 Float_t multv0 = aodV0->GetMultiplicity(iV0);
1507 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(1);
1508 else if (iV0 >= 8 && iV0 < 16)
1509 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(9);
1510 else if (iV0 >= 16 && iV0 < 24)
1511 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(17);
1512 else if (iV0 >= 24 && iV0 < 32)
1513 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(25);
1516 cout<<
"Problem with multiplicity in V0C"<<endl;
1518 Qxcn += TMath::Cos(fNHarm*phiV0) * multCorC;
1519 Qycn += TMath::Sin(fNHarm*phiV0) * multCorC;
1521 sumMc = sumMc + multCorC;
1527 if (iV0 >= 32 && iV0 < 40)
1528 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(33);
1529 else if (iV0 >= 40 && iV0 < 48)
1530 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(41);
1531 else if (iV0 >= 48 && iV0 < 56)
1532 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(49);
1533 else if (iV0 >= 56 && iV0 < 64)
1534 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(57);
1537 cout<<
"Problem with multiplicity in V0A"<<endl;
1539 Qxan += TMath::Cos(fNHarm*phiV0) * multCorA;
1540 Qyan += TMath::Sin(fNHarm*phiV0) * multCorA;
1542 sumMa = sumMa + multCorA;
1547 if (sumMa <=0 || sumMc <= 0)
1551 Double_t QyanCor = (Qyan - fQynmV0A->GetBinContent(iCentSPD+1))/fQynsV0A->GetBinContent(iCentSPD+1);
1553 Double_t QycnCor = (Qycn - fQynmV0C->GetBinContent(iCentSPD+1))/fQynsV0C->GetBinContent(iCentSPD+1);
1556 QxanCor = (Qxan - fQxnmV0A->GetBinContent(iCentSPD+1))/fQxnsV0A->GetBinContent(iCentSPD+1);
1557 QxcnCor = (Qxcn - fQxnmV0C->GetBinContent(iCentSPD+1))/fQxnsV0C->GetBinContent(iCentSPD+1);
1560 vA.Set(QxcnCor, QycnCor);
1561 vB.Set(QxanCor, QyanCor);
1577 Float_t v0Centr(
fEvent->GetCentrality()->GetCentralityPercentile(
"V0M"));
1609 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
1610 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
1611 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
1612 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
1626 TFile *foadb = TFile::Open(
"$ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root");
1628 printf(
"OADB file $ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root cannot be opened, CALIBRATION FAILED !");
1632 AliOADBContainer *cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorr");
1634 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
1637 if(!(cont->GetObject(run))){
1640 Int_t runs11h[] = {170593, 170572, 170556, 170552, 170546, 170390, 170389, 170388, 170387, 170315, 170313, 170312, 170311, 170309, 170308, 170306, 170270, 170269, 170268, 170267, 170264, 170230, 170228, 170208, 170207, 170205, 170204, 170203, 170195, 170193, 170163, 170162, 170159, 170155, 170152, 170091, 170089, 170088, 170085, 170084, 170083, 170081, 170040, 170038, 170036, 170027, 169981, 169975, 169969, 169965, 169961, 169956, 169926, 169924, 169923, 169922, 169919, 169918, 169914, 169859, 169858, 169855, 169846, 169838, 169837, 169835, 169683, 169628, 169591, 169590, 169588, 169587, 169586, 169584, 169557, 169555, 169554, 169553, 169550, 169515, 169512, 169506, 169504, 169498, 169475, 169420, 169419, 169418, 169417, 169415, 169411, 169238, 169236, 169167, 169160, 169156, 169148, 169145, 169144, 169143, 169138, 169099, 169094, 169091, 169045, 169044, 169040, 169035, 168992, 168988, 168984, 168826, 168777, 168514, 168512, 168511, 168467, 168464, 168461, 168460, 168458, 168362, 168361, 168356, 168342, 168341, 168325, 168322, 168318, 168311, 168310, 168213, 168212, 168208, 168207, 168206, 168205, 168204, 168203, 168181, 168177, 168175, 168173, 168172, 168171, 168115, 168108, 168107, 168105, 168104, 168103, 168076, 168069, 168068, 168066, 167988, 167987, 167986, 167985, 167921, 167920, 167915, 167909, 167903, 167902, 167818, 167814, 167813, 167808, 167807, 167806, 167713, 167712, 167711, 167706, 167693};
1641 for(
Int_t r(0); r < 176; r++) {
1642 if(run == runs11h[r]) {
1643 printf(
" > run has been identified as 11h < \n");
1668 printf(
"OADB object hMultVZEROBefCorr is not available for run %i (used default run 137366)\n",run);
1671 printf(
" > run has been identified as 10h < \n");
1673 TProfile* fMultVZERO = ((
TH2F *) cont->GetObject(run))->ProfileX();
1675 TF1 *fpol0 =
new TF1(
"fpol0",
"pol0");
1679 fMultVZERO->Fit(fpol0,
"N0",
"", 0, 8);
1681 fMultVZERO->Fit(fpol0,
"N0",
"", 8, 16);
1683 fMultVZERO->Fit(fpol0,
"N0",
"", 16, 24);
1685 fMultVZERO->Fit(fpol0,
"N0",
"", 24, 32);
1688 fMultVZERO->Fit(fpol0,
"N0",
"", 32, 40);
1690 fMultVZERO->Fit(fpol0,
"N0",
"", 40, 48);
1692 fMultVZERO->Fit(fpol0,
"N0",
"", 48, 56);
1694 fMultVZERO->Fit(fpol0,
"N0",
"", 56, 64);
1699 fMultVZERO->Fit(fpol0,
"N0",
"",0,31);
1701 fMultVZERO->Fit(fpol0,
"N0",
"",32,64);
1712 for(
Int_t iside=0;iside<2;iside++){
1713 for(
Int_t icoord=0;icoord<2;icoord++){
1714 for(
Int_t i=0;i < 9;i++){
1716 if(iside==0 && icoord==0)
1717 snprintf(namecont,100,
"hQxc2_%i",i);
1718 else if(iside==1 && icoord==0)
1719 snprintf(namecont,100,
"hQxa2_%i",i);
1720 else if(iside==0 && icoord==1)
1721 snprintf(namecont,100,
"hQyc2_%i",i);
1722 else if(iside==1 && icoord==1)
1723 snprintf(namecont,100,
"hQya2_%i",i);
1725 cont = (AliOADBContainer*) foadb->Get(namecont);
1727 printf(
"OADB object %s is not available in the file\n",namecont);
1731 if(!(cont->GetObject(run))){
1732 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
1740 fMeanQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
1741 fWidthQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
1744 if(iside==0 && icoord==0)
1745 snprintf(namecont,100,
"hQxc3_%i",i);
1746 else if(iside==1 && icoord==0)
1747 snprintf(namecont,100,
"hQxa3_%i",i);
1748 else if(iside==0 && icoord==1)
1749 snprintf(namecont,100,
"hQyc3_%i",i);
1750 else if(iside==1 && icoord==1)
1751 snprintf(namecont,100,
"hQya3_%i",i);
1753 cont = (AliOADBContainer*) foadb->Get(namecont);
1755 printf(
"OADB object %s is not available in the file\n",namecont);
1759 if(!(cont->GetObject(run))){
1760 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
1763 fMeanQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
1764 fWidthQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
1801 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
1802 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
1803 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
1804 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
1819 TFile *foadb = TFile::Open(
"$ALICE_PHYSICS/PWGCF/FLOW/database/calibV0_filtered.root");
1821 printf(
"OADB file $ALICE_PHYSICS/PWGCF/FLOW/database/calibV0_filtered.root cannot be opened, CALIBRATION FAILED !");
1826 AliOADBContainer *cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorr_filtered");
1828 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
1831 if(!(cont->GetObject(run))) {
1834 Int_t runs11h[] = {170593, 170572, 170556, 170552, 170546, 170390, 170389, 170388, 170387, 170315, 170313, 170312, 170311, 170309, 170308, 170306, 170270, 170269, 170268, 170267, 170264, 170230, 170228, 170208, 170207, 170205, 170204, 170203, 170195, 170193, 170163, 170162, 170159, 170155, 170152, 170091, 170089, 170088, 170085, 170084, 170083, 170081, 170040, 170038, 170036, 170027, 169981, 169975, 169969, 169965, 169961, 169956, 169926, 169924, 169923, 169922, 169919, 169918, 169914, 169859, 169858, 169855, 169846, 169838, 169837, 169835, 169683, 169628, 169591, 169590, 169588, 169587, 169586, 169584, 169557, 169555, 169554, 169553, 169550, 169515, 169512, 169506, 169504, 169498, 169475, 169420, 169419, 169418, 169417, 169415, 169411, 169238, 169236, 169167, 169160, 169156, 169148, 169145, 169144, 169143, 169138, 169099, 169094, 169091, 169045, 169044, 169040, 169035, 168992, 168988, 168984, 168826, 168777, 168514, 168512, 168511, 168467, 168464, 168461, 168460, 168458, 168362, 168361, 168356, 168342, 168341, 168325, 168322, 168318, 168311, 168310, 168213, 168212, 168208, 168207, 168206, 168205, 168204, 168203, 168181, 168177, 168175, 168173, 168172, 168171, 168115, 168108, 168107, 168105, 168104, 168103, 168076, 168069, 168068, 168066, 167988, 167987, 167986, 167985, 167921, 167920, 167915, 167909, 167903, 167902, 167818, 167814, 167813, 167808, 167807, 167806, 167713, 167712, 167711, 167706, 167693};
1835 for(
Int_t r(0); r < 176; r++) {
1836 if(run == runs11h[r]) {
1837 printf(
" > run has been identified as 11h < \n");
1862 printf(
"OADB object hMultVZEROBefCorr is not available for run %i (used default run 138275)\n",run);
1865 printf(
" > run has been identified as 10h < \n");
1867 TProfile* fMultVZERO =
static_cast<TProfile*
>(cont->GetObject(run));
1869 TF1 *fpol0 =
new TF1(
"fpol0",
"pol0");
1874 fMultVZERO->Fit(fpol0,
"N0",
"", 0, 8);
1876 fMultVZERO->Fit(fpol0,
"N0",
"", 8, 16);
1878 fMultVZERO->Fit(fpol0,
"N0",
"", 16, 24);
1880 fMultVZERO->Fit(fpol0,
"N0",
"", 24, 32);
1883 fMultVZERO->Fit(fpol0,
"N0",
"", 32, 40);
1885 fMultVZERO->Fit(fpol0,
"N0",
"", 40, 48);
1887 fMultVZERO->Fit(fpol0,
"N0",
"", 48, 56);
1889 fMultVZERO->Fit(fpol0,
"N0",
"", 56, 64);
1900 AliOADBContainer* h[5][4];
1901 for(
Int_t i(0); i < 5; i++) {
1902 h[i][0] = (AliOADBContainer*)foadb->Get(Form(
"hQxa%i_filtered", i+1));
1903 if(h[i][0])
fQxavsV0[i] =
static_cast<TH1F*
>(h[i][0]->GetObject(run));
1904 h[i][1] = (AliOADBContainer*)foadb->Get(Form(
"hQya%i_filtered", i+1));
1905 if(h[i][1])
fQyavsV0[i] =
static_cast<TH1F*
>(h[i][1]->GetObject(run));
1906 h[i][2] = (AliOADBContainer*)foadb->Get(Form(
"hQxc%i_filtered", i+1));
1907 if(h[i][2])
fQxcvsV0[i] =
static_cast<TH1F*
>(h[i][2]->GetObject(run));
1908 h[i][3] = (AliOADBContainer*)foadb->Get(Form(
"hQyc%i_filtered", i+1));
1909 if(h[i][3])
fQycvsV0[i] =
static_cast<TH1F*
>(h[i][3]->GetObject(run));
1948 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
1949 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
1950 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
1951 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
1966 TFile *foadb = TFile::Open(
"alien:///alice/cern.ch/user/j/jmargutt/gainVZERO.LHC11h.root");
1968 printf(
"file alien:///alice/cern.ch/user/j/jmargutt/gainVZERO.LHC11h.root cannot be opened, CALIBRATION FAILED !");
1971 TH3F* Weights =
dynamic_cast<TH3F*
>(foadb->FindObjectAny(
"LHC11h")->FindObject(
"gHistVZEROChannelGainEqualizationMap"));
1973 printf(
"gHistVZEROChannelGainEqualizationMap is not available in the file\n");
1996 Int_t runs11h[] = {167915, 168115, 168460, 169035, 169238, 169859, 170228, 167920, 168310, 168464, 169091, 169411, 169923, 170230, 167985, 168311, 168467, 169094, 169415, 170027, 170268, 167987, 168322, 168511, 169138, 169417, 170081, 170269, 167988, 168325, 168512, 169144, 169835, 170155, 170270, 168069, 168341, 168514, 169145, 169837, 170159, 170306, 168076, 168342, 168777, 169148, 169838, 170163, 170308, 168105, 168361, 168826, 169156, 169846, 170193, 170309, 168107, 168362, 168988, 169160, 169855, 170203, 168108, 168458, 168992, 169167, 169858, 170204};
1998 for(
Int_t r(0); r < 68; r++) {
1999 if(run == runs11h[r]) {
2004 printf(
" > run has been identified as 11h Full TPC Flow < \n");
2006 printf(
" > run has NOT been identified as 11h Full TPC Flow, use default for 11h < \n");
2015 Weights->GetXaxis()->SetRange(RunBin,RunBin);
2016 TH2D* fMultVZEROCen =
dynamic_cast<TH2D*
>(Weights->Project3D(
"zy"));
2020 TFile *fqvec = TFile::Open(
"alien:///alice/cern.ch/user/j/jmargutt/recenteringVZERO.LHC11h.root");
2022 printf(
"file alien:///alice/cern.ch/user/j/jmargutt/recenteringVZERO.LHC11h.root cannot be opened, CALIBRATION FAILED !");
2028 for(
Int_t i(0); i < 3; i++) {
2029 h[i][0] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROAQ%ixRecenteringMap",i+1)));
2030 if(h[i][0])
fQxavsV0[i] =
static_cast<TH1D*
>(h[i][0]->ProjectionY(Form(
"fQxavsV0[%i]",i),RunBin,RunBin));
2031 h[i][1] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROAQ%iyRecenteringMap",i+1)));
2032 if(h[i][1])
fQyavsV0[i] =
static_cast<TH1D*
>(h[i][1]->ProjectionY(Form(
"fQyavsV0[%i]",i),RunBin,RunBin));
2033 h[i][2] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROCQ%ixRecenteringMap",i+1)));
2034 if(h[i][2])
fQxcvsV0[i] =
static_cast<TH1D*
>(h[i][2]->ProjectionY(Form(
"fQxcvsV0[%i]",i),RunBin,RunBin));
2035 h[i][3] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROCQ%iyRecenteringMap",i+1)));
2036 if(h[i][3])
fQycvsV0[i] =
static_cast<TH1D*
>(h[i][3]->ProjectionY(Form(
"fQycvsV0[%i]",i),RunBin,RunBin));
2076 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
2077 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
2078 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
2079 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
2094 TFile *foadb = TFile::Open(
"alien:///alice/cern.ch/user/b/bhohlweg/gainVZERO.LHC15oLowIR.root");
2096 AliFatal(
"file alien:///alice/cern.ch/user/b/bhohlweg/gainVZERO.LHC15oLowIR.root cannot be opened, CALIBRATION FAILED !");
2099 TH3F* Weights =
dynamic_cast<TH3F*
>(foadb->FindObjectAny(
"LHC15oLowIR")->FindObject(
"gHistVZEROChannelGainEqualizationMapRun2"));
2101 AliFatal(
"gHistVZEROChannelGainEqualizationMapRun2 is not available in the file\n");
2126 Int_t runs15oLowIR[11] = {244917 ,244918,244975,244980,244982,244983,245064,245068,246390,246391,246392};
2128 for(
Int_t r(0); r < 11; r++) {
2129 if(run == runs15oLowIR[r]) {
2135 AliFatal(
"No calibration file existing for this run Number in SetKappaVZEROCalibrationForTrackCuts \n");
2140 Weights->GetXaxis()->SetRange(RunBin,RunBin);
2141 TH2D* fMultVZEROCen =
dynamic_cast<TH2D*
>(Weights->Project3D(
"zy"));
2145 TFile *fqvec = TFile::Open(
"alien:///alice/cern.ch/user/b/bhohlweg/recenteringVZERO.LHC15oLowIR.root");
2147 AliFatal(
"file alien:///alice/cern.ch/user/b/bhohlweg/recenteringVZERO.LHC15oLowIR.root cannot be opened, CALIBRATION FAILED !");
2152 for(
Int_t i(0); i < 3; i++) {
2153 h[i][0] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROAQ%ixRecenteringMap",i+1)));
2154 if(h[i][0])
fQxavsV0[i] =
static_cast<TH1D*
>(h[i][0]->ProjectionY(Form(
"fQxavsV0[%i]",i),RunBin,RunBin));
2155 h[i][1] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROAQ%iyRecenteringMap",i+1)));
2156 if(h[i][1])
fQyavsV0[i] =
static_cast<TH1D*
>(h[i][1]->ProjectionY(Form(
"fQyavsV0[%i]",i),RunBin,RunBin));
2157 h[i][2] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROCQ%ixRecenteringMap",i+1)));
2158 if(h[i][2])
fQxcvsV0[i] =
static_cast<TH1D*
>(h[i][2]->ProjectionY(Form(
"fQxcvsV0[%i]",i),RunBin,RunBin));
2159 h[i][3] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROCQ%iyRecenteringMap",i+1)));
2160 if(h[i][3])
fQycvsV0[i] =
static_cast<TH1D*
>(h[i][3]->ProjectionY(Form(
"fQycvsV0[%i]",i),RunBin,RunBin));
2188 if (!gGrid) TGrid::Connect(
"alien");
2189 TFile* foadb = TFile::Open(
"alien:///alice/cern.ch/user/r/rbertens/calibV0HIR.root");
2192 AliFatal(
"OADB V0 calibration file cannot be opened\n");
2215 AliOADBContainer* cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorPfpx");
2217 AliFatal(
"OADB object hMultV0BefCorr is not available in the file\n");
2220 if(!(cont->GetObject(run))){
2221 printf(
"OADB object hMultV0BefCorPfpx is not available for run %i\n", run);
2227 for(
Int_t harm = 2; harm < 4; harm++) {
2228 AliOADBContainer* contQxnam = 0;
2230 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa2m");
2232 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa3m");
2235 printf(
"OADB object fqxanm is not available in the file\n");
2238 if(!(contQxnam->GetObject(run))){
2239 printf(
"OADB object fqxanm is not available for run %i\n", run);
2242 fQxavsV0[0+(harm-2)*2] = ((
TH1D*) contQxnam->GetObject(run));
2246 AliOADBContainer* contQynam = 0;
2248 contQynam = (AliOADBContainer*) foadb->Get(
"fqya2m");
2250 contQynam = (AliOADBContainer*) foadb->Get(
"fqya3m");
2253 printf(
"OADB object fqyanm is not available in the file\n");
2256 if(!(contQynam->GetObject(run))){
2257 printf(
"OADB object fqyanm is not available for run %i\n", run);
2260 fQyavsV0[0+(harm-2)*2] = ((
TH1D*) contQynam->GetObject(run));
2264 AliOADBContainer* contQxnas = 0;
2266 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa2s");
2268 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa3s");
2271 printf(
"OADB object fqxans is not available in the file\n");
2274 if(!(contQxnas->GetObject(run))){
2275 printf(
"OADB object fqxans is not available for run %i\n", run);
2278 fQxavsV0[1+(harm-2)*2] = ((
TH1D*) contQxnas->GetObject(run));
2280 AliOADBContainer* contQynas = 0;
2282 contQynas = (AliOADBContainer*) foadb->Get(
"fqya2s");
2284 contQynas = (AliOADBContainer*) foadb->Get(
"fqya3s");
2287 printf(
"OADB object fqyans is not available in the file\n");
2290 if(!(contQynas->GetObject(run))){
2291 printf(
"OADB object fqyans is not available for run %i\n", run);
2294 fQyavsV0[1+(harm-2)*2] = ((
TH1D*) contQynas->GetObject(run));
2298 AliOADBContainer* contQxncm = 0;
2300 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc2m");
2302 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc3m");
2305 printf(
"OADB object fqxcnm is not available in the file\n");
2308 if(!(contQxncm->GetObject(run))){
2309 printf(
"OADB object fqxcnm is not available for run %i\n", run);
2312 fQxcvsV0[0+(harm-2)*2] = ((
TH1D*) contQxncm->GetObject(run));
2316 AliOADBContainer* contQyncm = 0;
2318 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc2m");
2320 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc3m");
2323 printf(
"OADB object fqyc2m is not available in the file\n");
2326 if(!(contQyncm->GetObject(run))){
2327 printf(
"OADB object fqyc2m is not available for run %i\n", run);
2330 fQycvsV0[0+(harm-2)*2] = ((
TH1D*) contQyncm->GetObject(run));
2332 AliOADBContainer* contQxncs = 0;
2334 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc2s");
2336 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc3s");
2339 printf(
"OADB object fqxc2s is not available in the file\n");
2342 if(!(contQxncs->GetObject(run))){
2343 printf(
"OADB object fqxc2s is not available for run %i\n", run);
2346 fQxcvsV0[1+(harm-2)*2] = ((
TH1D*) contQxncs->GetObject(run));
2350 AliOADBContainer* contQyncs = 0;
2352 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc2s");
2354 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc3s");
2357 printf(
"OADB object fqycnm is not available in the file\n");
2360 if(!(contQyncs->GetObject(run))){
2361 printf(
"OADB object fqycns is not available for run %i\n", run);
2364 fQycvsV0[1+(harm-2)*2] = ((
TH1D*) contQyncs->GetObject(run));
2371 for(
Int_t i(0); i < 4; i++) {
virtual AliFlowVector GetQ(Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE)
Float_t GetPmdEta(Float_t xPos, Float_t yPos, Float_t zPos)
TArrayD * fChi2A
current event
virtual void ClearCachedRun()
void FindDaughters(Bool_t keepDaughtersInRPselection=kFALSE)
void SetVZEROCalibrationForTrackCuts(AliFlowTrackCuts *cuts)
void SetChi3C(TArrayD *Chi3C)
virtual void SetDaughter(Int_t, AliFlowTrackSimple *)
virtual AliFlowVector GetQ(Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE)
void SetEta(Double_t eta)
virtual void Clear(Option_t *o="")
TObject * GetInputObject(Int_t i)
virtual Int_t GetNDaughters() const
void SetChi3A(TArrayD *Chi3A)
TArrayD * fChi3C
chi vs cent for vzero A ep_3
TArrayD * fChi2C
chi vs cent for vzero A ep_2
void SetMCReactionPlaneAngle(const AliMCEvent *mcEvent)
AliFlowEventSimple & operator=(const AliFlowEventSimple &anEvent)
AliFlowEvent & operator=(const AliFlowEvent &event)
void SetChi2A(TArrayD *Chi2A)
virtual Int_t GetIDDaughter(Int_t) const
void AddTrack(AliFlowTrackSimple *track)
virtual Bool_t IsSelected(TObject *obj, Int_t id=-666)
AliVEvent * fEvent
recentering
void SetVZEROgainEqualisationCen(TH2 *g)
ClassImp(AliFlowEvent) AliFlowEvent
trackParameterType GetParamType() const
void TagRP(Bool_t b=kTRUE)
void IncrementNumberOfPOIs(Int_t poiType=1)
AliFlowTrack * GetTrack(Int_t i)
Bool_t GetVZEROgainEqualizationPerRing() const
void SetForRPSelection(Bool_t b=kTRUE)
Bool_t GetApplyRecentering() const
Int_t GetNumberOfInputObjects() const
void SetDeltaVZEROCalibrationForTrackCuts(AliFlowTrackCuts *cuts)
void Fill(AliFlowTrackCuts *rpCuts, AliFlowTrackCuts *poiCuts)
Bool_t FillFlowTrack(AliFlowTrack *track) const
TH1 * fQxcvsV0[5]
recentering
void SetVZEROCpol(Int_t ring, Float_t f)
Bool_t GetDivSigma() const
Float_t fWidthQ[9][2][2]
recentering
void SetVZEROgainEqualisation(TH1 *g)
Float_t GetPmdPhi(Float_t xPos, Float_t yPos)
void Tag(Int_t n, Bool_t b=kTRUE)
AliVEvent * GetEvent() const
TObjArray * fTrackCollection
void SetKappaVZEROCalibrationForTrackCuts(AliFlowTrackCuts *cuts)
void SetSource(trackSource s)
Float_t fMeanQv3[9][2][2]
recentering
virtual void Get2Qsub(AliFlowVector *Qarray, Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE)
void SetPhi(Double_t phi)
Int_t fVZEROcentralityBin
cached calibration info for vzero
Bool_t GetUseVZERORing(Int_t i) const
void SetWeight(Double_t weight)
void SetBetaVZEROCalibrationForTrackCuts(AliFlowTrackCuts *cuts)
void SetForPOISelection(Bool_t b=kTRUE)
TObjArray * fMothersCollection
void SetMCReactionPlaneAngle(Double_t fPhiRP)
Float_t fMeanQ[9][2][2]
centrality bin for the current event
TH1 * fQycvsV0[5]
recentering
AliFlowTrack * ReuseTrack(Int_t i)
virtual void Get2Qsub(AliFlowVector *Qarray, Int_t n=2, TList *weightsList=0x0, Bool_t usePhiWeights=0x0, Bool_t usePtWeights=0x0, Bool_t useEtaWeights=0x0)
TH1 * fQyavsV0[5]
recentering
void SetHotfixVZEROCalibrationForTrackCuts(AliFlowTrackCuts *cuts)
void InsertTrack(AliFlowTrack *)
void SetChi2C(TArrayD *Chi2C)
TH1 * fQxavsV0[5]
recentering
TArrayD * fChi3A
chi vs cent for vzero C ep_2
Float_t fWidthQv3[9][2][2]
recentering
void SetVZEROApol(Int_t ring, Float_t f)