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.))
1503 AliAODVZERO* aodV0 =
static_cast<AliAODVZERO*
>(
fEvent->GetVZEROData());
1505 for (
Int_t iV0 = 0; iV0 < 64; iV0++) {
1506 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
1507 Float_t multv0 = aodV0->GetMultiplicity(iV0);
1511 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(1);
1512 else if (iV0 >= 8 && iV0 < 16)
1513 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(9);
1514 else if (iV0 >= 16 && iV0 < 24)
1515 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(17);
1516 else if (iV0 >= 24 && iV0 < 32)
1517 multCorC = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(25);
1520 cout<<
"Problem with multiplicity in V0C"<<endl;
1522 Qxcn += TMath::Cos(fNHarm*phiV0) * multCorC;
1523 Qycn += TMath::Sin(fNHarm*phiV0) * multCorC;
1525 sumMc = sumMc + multCorC;
1531 if (iV0 >= 32 && iV0 < 40)
1532 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(33);
1533 else if (iV0 >= 40 && iV0 < 48)
1534 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(41);
1535 else if (iV0 >= 48 && iV0 < 56)
1536 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(49);
1537 else if (iV0 >= 56 && iV0 < 64)
1538 multCorA = multv0/fMultV0->GetBinContent(iV0+1)*fMultV0->GetBinContent(57);
1541 cout<<
"Problem with multiplicity in V0A"<<endl;
1543 Qxan += TMath::Cos(fNHarm*phiV0) * multCorA;
1544 Qyan += TMath::Sin(fNHarm*phiV0) * multCorA;
1546 sumMa = sumMa + multCorA;
1551 if (sumMa <=0 || sumMc <= 0)
1555 Double_t QyanCor = (Qyan - fQynmV0A->GetBinContent(iCentSPD+1))/fQynsV0A->GetBinContent(iCentSPD+1);
1557 Double_t QycnCor = (Qycn - fQynmV0C->GetBinContent(iCentSPD+1))/fQynsV0C->GetBinContent(iCentSPD+1);
1560 QxanCor = (Qxan - fQxnmV0A->GetBinContent(iCentSPD+1))/fQxnsV0A->GetBinContent(iCentSPD+1);
1561 QxcnCor = (Qxcn - fQxnmV0C->GetBinContent(iCentSPD+1))/fQxnsV0C->GetBinContent(iCentSPD+1);
1564 vA.Set(QxcnCor, QycnCor);
1565 vB.Set(QxanCor, QyanCor);
1581 Float_t v0Centr(
fEvent->GetCentrality()->GetCentralityPercentile(
"V0M"));
1613 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
1614 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
1615 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
1616 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
1630 TFile *foadb = TFile::Open(
"$ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root");
1632 printf(
"OADB file $ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root cannot be opened, CALIBRATION FAILED !");
1636 AliOADBContainer *cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorr");
1638 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
1641 if(!(cont->GetObject(run))){
1644 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};
1645 for(
Int_t r(0); r < 176; r++) {
1646 if(run == runs11h[r]) {
1647 printf(
" > run has been identified as 11h < \n");
1672 printf(
"OADB object hMultVZEROBefCorr is not available for run %i (used default run 137366)\n",run);
1675 printf(
" > run has been identified as 10h < \n");
1677 TProfile* fMultVZERO = ((
TH2F *) cont->GetObject(run))->ProfileX();
1679 TF1 *fpol0 =
new TF1(
"fpol0",
"pol0");
1683 fMultVZERO->Fit(fpol0,
"N0",
"", 0, 8);
1685 fMultVZERO->Fit(fpol0,
"N0",
"", 8, 16);
1687 fMultVZERO->Fit(fpol0,
"N0",
"", 16, 24);
1689 fMultVZERO->Fit(fpol0,
"N0",
"", 24, 32);
1692 fMultVZERO->Fit(fpol0,
"N0",
"", 32, 40);
1694 fMultVZERO->Fit(fpol0,
"N0",
"", 40, 48);
1696 fMultVZERO->Fit(fpol0,
"N0",
"", 48, 56);
1698 fMultVZERO->Fit(fpol0,
"N0",
"", 56, 64);
1703 fMultVZERO->Fit(fpol0,
"N0",
"",0,31);
1705 fMultVZERO->Fit(fpol0,
"N0",
"",32,64);
1716 for(
Int_t iside=0;iside<2;iside++){
1717 for(
Int_t icoord=0;icoord<2;icoord++){
1718 for(
Int_t i=0;i < 9;i++){
1720 if(iside==0 && icoord==0)
1721 snprintf(namecont,100,
"hQxc2_%i",i);
1722 else if(iside==1 && icoord==0)
1723 snprintf(namecont,100,
"hQxa2_%i",i);
1724 else if(iside==0 && icoord==1)
1725 snprintf(namecont,100,
"hQyc2_%i",i);
1726 else if(iside==1 && icoord==1)
1727 snprintf(namecont,100,
"hQya2_%i",i);
1729 cont = (AliOADBContainer*) foadb->Get(namecont);
1731 printf(
"OADB object %s is not available in the file\n",namecont);
1735 if(!(cont->GetObject(run))){
1736 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
1744 fMeanQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
1745 fWidthQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
1748 if(iside==0 && icoord==0)
1749 snprintf(namecont,100,
"hQxc3_%i",i);
1750 else if(iside==1 && icoord==0)
1751 snprintf(namecont,100,
"hQxa3_%i",i);
1752 else if(iside==0 && icoord==1)
1753 snprintf(namecont,100,
"hQyc3_%i",i);
1754 else if(iside==1 && icoord==1)
1755 snprintf(namecont,100,
"hQya3_%i",i);
1757 cont = (AliOADBContainer*) foadb->Get(namecont);
1759 printf(
"OADB object %s is not available in the file\n",namecont);
1763 if(!(cont->GetObject(run))){
1764 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
1767 fMeanQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
1768 fWidthQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
1805 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
1806 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
1807 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
1808 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
1823 TFile *foadb = TFile::Open(
"$ALICE_PHYSICS/PWGCF/FLOW/database/calibV0_filtered.root");
1825 printf(
"OADB file $ALICE_PHYSICS/PWGCF/FLOW/database/calibV0_filtered.root cannot be opened, CALIBRATION FAILED !");
1830 AliOADBContainer *cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorr_filtered");
1832 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
1835 if(!(cont->GetObject(run))) {
1838 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};
1839 for(
Int_t r(0); r < 176; r++) {
1840 if(run == runs11h[r]) {
1841 printf(
" > run has been identified as 11h < \n");
1866 printf(
"OADB object hMultVZEROBefCorr is not available for run %i (used default run 138275)\n",run);
1869 printf(
" > run has been identified as 10h < \n");
1871 TProfile* fMultVZERO =
static_cast<TProfile*
>(cont->GetObject(run));
1873 TF1 *fpol0 =
new TF1(
"fpol0",
"pol0");
1878 fMultVZERO->Fit(fpol0,
"N0",
"", 0, 8);
1880 fMultVZERO->Fit(fpol0,
"N0",
"", 8, 16);
1882 fMultVZERO->Fit(fpol0,
"N0",
"", 16, 24);
1884 fMultVZERO->Fit(fpol0,
"N0",
"", 24, 32);
1887 fMultVZERO->Fit(fpol0,
"N0",
"", 32, 40);
1889 fMultVZERO->Fit(fpol0,
"N0",
"", 40, 48);
1891 fMultVZERO->Fit(fpol0,
"N0",
"", 48, 56);
1893 fMultVZERO->Fit(fpol0,
"N0",
"", 56, 64);
1904 AliOADBContainer* h[5][4];
1905 for(
Int_t i(0); i < 5; i++) {
1906 h[i][0] = (AliOADBContainer*)foadb->Get(Form(
"hQxa%i_filtered", i+1));
1907 if(h[i][0])
fQxavsV0[i] =
static_cast<TH1F*
>(h[i][0]->GetObject(run));
1908 h[i][1] = (AliOADBContainer*)foadb->Get(Form(
"hQya%i_filtered", i+1));
1909 if(h[i][1])
fQyavsV0[i] =
static_cast<TH1F*
>(h[i][1]->GetObject(run));
1910 h[i][2] = (AliOADBContainer*)foadb->Get(Form(
"hQxc%i_filtered", i+1));
1911 if(h[i][2])
fQxcvsV0[i] =
static_cast<TH1F*
>(h[i][2]->GetObject(run));
1912 h[i][3] = (AliOADBContainer*)foadb->Get(Form(
"hQyc%i_filtered", i+1));
1913 if(h[i][3])
fQycvsV0[i] =
static_cast<TH1F*
>(h[i][3]->GetObject(run));
1952 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
1953 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
1954 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
1955 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
1970 TFile *foadb = TFile::Open(
"alien:///alice/cern.ch/user/j/jmargutt/gainVZERO.LHC11h.root");
1972 printf(
"file alien:///alice/cern.ch/user/j/jmargutt/gainVZERO.LHC11h.root cannot be opened, CALIBRATION FAILED !");
1975 TH3F* Weights =
dynamic_cast<TH3F*
>(foadb->FindObjectAny(
"LHC11h")->FindObject(
"gHistVZEROChannelGainEqualizationMap"));
1977 printf(
"gHistVZEROChannelGainEqualizationMap is not available in the file\n");
2000 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};
2002 for(
Int_t r(0); r < 68; r++) {
2003 if(run == runs11h[r]) {
2008 printf(
" > run has been identified as 11h Full TPC Flow < \n");
2010 printf(
" > run has NOT been identified as 11h Full TPC Flow, use default for 11h < \n");
2019 Weights->GetXaxis()->SetRange(RunBin,RunBin);
2020 TH2D* fMultVZEROCen =
dynamic_cast<TH2D*
>(Weights->Project3D(
"zy"));
2024 TFile *fqvec = TFile::Open(
"alien:///alice/cern.ch/user/j/jmargutt/recenteringVZERO.LHC11h.root");
2026 printf(
"file alien:///alice/cern.ch/user/j/jmargutt/recenteringVZERO.LHC11h.root cannot be opened, CALIBRATION FAILED !");
2032 for(
Int_t i(0); i < 3; i++) {
2033 h[i][0] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROAQ%ixRecenteringMap",i+1)));
2034 if(h[i][0])
fQxavsV0[i] =
static_cast<TH1D*
>(h[i][0]->ProjectionY(Form(
"fQxavsV0[%i]",i),RunBin,RunBin));
2035 h[i][1] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROAQ%iyRecenteringMap",i+1)));
2036 if(h[i][1])
fQyavsV0[i] =
static_cast<TH1D*
>(h[i][1]->ProjectionY(Form(
"fQyavsV0[%i]",i),RunBin,RunBin));
2037 h[i][2] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROCQ%ixRecenteringMap",i+1)));
2038 if(h[i][2])
fQxcvsV0[i] =
static_cast<TH1D*
>(h[i][2]->ProjectionY(Form(
"fQxcvsV0[%i]",i),RunBin,RunBin));
2039 h[i][3] = (
TH2D*)(fqvec->FindObjectAny(
"LHC11h")->FindObject(Form(
"gHistVZEROCQ%iyRecenteringMap",i+1)));
2040 if(h[i][3])
fQycvsV0[i] =
static_cast<TH1D*
>(h[i][3]->ProjectionY(Form(
"fQycvsV0[%i]",i),RunBin,RunBin));
2080 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
2081 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
2082 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
2083 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
2098 TFile *foadb = TFile::Open(
"alien:///alice/cern.ch/user/b/bhohlweg/gainVZERO.LHC15oLowIR.root");
2100 AliFatal(
"file alien:///alice/cern.ch/user/b/bhohlweg/gainVZERO.LHC15oLowIR.root cannot be opened, CALIBRATION FAILED !");
2103 TH3F* Weights =
dynamic_cast<TH3F*
>(foadb->FindObjectAny(
"LHC15oLowIR")->FindObject(
"gHistVZEROChannelGainEqualizationMapRun2"));
2105 AliFatal(
"gHistVZEROChannelGainEqualizationMapRun2 is not available in the file\n");
2130 Int_t runs15oLowIR[11] = {244917 ,244918,244975,244980,244982,244983,245064,245068,246390,246391,246392};
2132 for(
Int_t r(0); r < 11; r++) {
2133 if(run == runs15oLowIR[r]) {
2139 AliFatal(
"No calibration file existing for this run Number in SetKappaVZEROCalibrationForTrackCuts \n");
2144 Weights->GetXaxis()->SetRange(RunBin,RunBin);
2145 TH2D* fMultVZEROCen =
dynamic_cast<TH2D*
>(Weights->Project3D(
"zy"));
2149 TFile *fqvec = TFile::Open(
"alien:///alice/cern.ch/user/b/bhohlweg/recenteringVZERO.LHC15oLowIR.root");
2151 AliFatal(
"file alien:///alice/cern.ch/user/b/bhohlweg/recenteringVZERO.LHC15oLowIR.root cannot be opened, CALIBRATION FAILED !");
2156 for(
Int_t i(0); i < 3; i++) {
2157 h[i][0] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROAQ%ixRecenteringMap",i+1)));
2158 if(h[i][0])
fQxavsV0[i] =
static_cast<TH1D*
>(h[i][0]->ProjectionY(Form(
"fQxavsV0[%i]",i),RunBin,RunBin));
2159 h[i][1] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROAQ%iyRecenteringMap",i+1)));
2160 if(h[i][1])
fQyavsV0[i] =
static_cast<TH1D*
>(h[i][1]->ProjectionY(Form(
"fQyavsV0[%i]",i),RunBin,RunBin));
2161 h[i][2] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROCQ%ixRecenteringMap",i+1)));
2162 if(h[i][2])
fQxcvsV0[i] =
static_cast<TH1D*
>(h[i][2]->ProjectionY(Form(
"fQxcvsV0[%i]",i),RunBin,RunBin));
2163 h[i][3] = (
TH2D*)(fqvec->FindObjectAny(
"LHC15oLowIR")->FindObject(Form(
"gHistVZEROCQ%iyRecenteringMap",i+1)));
2164 if(h[i][3])
fQycvsV0[i] =
static_cast<TH1D*
>(h[i][3]->ProjectionY(Form(
"fQycvsV0[%i]",i),RunBin,RunBin));
2195 if (!gGrid) TGrid::Connect(
"alien");
2196 TFile* foadb = TFile::Open(
"alien:///alice/cern.ch/user/r/rbertens/calibV0HIR.root");
2199 AliFatal(
"OADB V0 calibration file cannot be opened\n");
2224 AliOADBContainer* cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorPfpx");
2226 AliFatal(
"OADB object hMultV0BefCorr is not available in the file\n");
2229 if(!(cont->GetObject(run))){
2230 printf(
"OADB object hMultV0BefCorPfpx is not available for run %i\n", run);
2237 AliOADBContainer* contQxnam = 0;
2239 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa2m");
2242 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa3m");
2245 printf(
"OADB object fqxanm is not available in the file\n");
2248 if(!(contQxnam->GetObject(run))){
2249 printf(
"OADB object fqxanm is not available for run %i\n", run);
2256 AliOADBContainer* contQynam = 0;
2258 contQynam = (AliOADBContainer*) foadb->Get(
"fqya2m");
2259 else if (fNHarm == 3.)
2260 contQynam = (AliOADBContainer*) foadb->Get(
"fqya3m");
2261 else if (fNHarm == 4.)
2262 contQynam = (AliOADBContainer*) foadb->Get(
"fqya4m");
2265 printf(
"OADB object fqyanm is not available in the file\n");
2268 if(!(contQynam->GetObject(run))){
2269 printf(
"OADB object fqyanm is not available for run %i\n", run);
2276 AliOADBContainer* contQxnas = 0;
2278 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa2s");
2281 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa3s");
2284 printf(
"OADB object fqxans is not available in the file\n");
2287 if(!(contQxnas->GetObject(run))){
2288 printf(
"OADB object fqxans is not available for run %i\n", run);
2295 AliOADBContainer* contQynas = 0;
2297 contQynas = (AliOADBContainer*) foadb->Get(
"fqya2s");
2298 else if (fNHarm == 3.)
2299 contQynas = (AliOADBContainer*) foadb->Get(
"fqya3s");
2300 else if (fNHarm == 4.)
2301 contQynas = (AliOADBContainer*) foadb->Get(
"fqya4s");
2304 printf(
"OADB object fqyans is not available in the file\n");
2307 if(!(contQynas->GetObject(run))){
2308 printf(
"OADB object fqyans is not available for run %i\n", run);
2315 AliOADBContainer* contQxncm = 0;
2317 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc2m");
2320 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc3m");
2323 printf(
"OADB object fqxcnm is not available in the file\n");
2326 if(!(contQxncm->GetObject(run))){
2327 printf(
"OADB object fqxcnm is not available for run %i\n", run);
2334 AliOADBContainer* contQyncm = 0;
2336 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc2m");
2337 else if (fNHarm == 3.)
2338 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc3m");
2339 else if (fNHarm == 4.)
2340 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc4m");
2343 printf(
"OADB object fqyc2m is not available in the file\n");
2346 if(!(contQyncm->GetObject(run))){
2347 printf(
"OADB object fqyc2m is not available for run %i\n", run);
2354 AliOADBContainer* contQxncs = 0;
2356 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc2s");
2359 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc3s");
2362 printf(
"OADB object fqxc2s is not available in the file\n");
2365 if(!(contQxncs->GetObject(run))){
2366 printf(
"OADB object fqxc2s is not available for run %i\n", run);
2373 AliOADBContainer* contQyncs = 0;
2375 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc2s");
2376 else if (fNHarm == 3.)
2377 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc3s");
2378 else if (fNHarm == 4.)
2379 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc4s");
2382 printf(
"OADB object fqycnm is not available in the file\n");
2385 if(!(contQyncs->GetObject(run))){
2386 printf(
"OADB object fqycns is not available for run %i\n", run);
2396 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)