@@ -136,7 +136,7 @@ struct FlowSP {
136136 using ZDCCollisions = soa::Filtered<soa::Join<GeneralCollisions, aod::SPTableZDC>>;
137137
138138 // For MC Reco and Gen
139- using CCs = soa::Filtered<soa::Join<GeneralCollisions, aod::McCollisionLabels>>; // without SPTableZDC
139+ using CCs = soa::Filtered<soa::Join<GeneralCollisions, aod::McCollisionLabels>>; // without SPTableZDC
140140 using CC = CCs::iterator;
141141 using TCs = soa::Join<UnfilteredTracks, aod::McTrackLabels>;
142142 using FilteredTCs = soa::Filtered<TCs>;
@@ -179,7 +179,6 @@ struct FlowSP {
179179 HistogramRegistry registry{" registry" };
180180 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::QAObject};
181181
182-
183182 // Event selection cuts
184183 TF1 * fPhiCutLow = nullptr ;
185184 TF1 * fPhiCutHigh = nullptr ;
@@ -340,22 +339,22 @@ struct FlowSP {
340339 histos.add (" QA/after/CentFT0C_vs_CentFV0A" , " ; Cent FT0C (%); Cent FV0A (%) " , {HistType::kTH2D , {axisCent, axisCent}});
341340 histos.add (" QA/after/CentFT0C_vs_CentNGlobal" , " ; Cent FT0C (%); Cent NGlobal (%) " , {HistType::kTH2D , {axisCent, axisCent}});
342341
343- if (cfgFillEventPlaneQA && doprocessData){
344- histos.add (" QA/after/PsiA_vs_Cent" , " " , {HistType::kTH2D , {axisPhiPlane, axisCent}});
345- histos.add (" QA/after/PsiC_vs_Cent" , " " , {HistType::kTH2D , {axisPhiPlane, axisCent}});
346- histos.add (" QA/after/PsiFull_vs_Cent" , " " , {HistType::kTH2D , {axisPhiPlane, axisCent}});
347- histos.add (" QA/after/PsiA_vs_Vx" , " " , {HistType::kTH2D , {axisPhiPlane, axisVx}});
348- histos.add (" QA/after/PsiC_vs_Vx" , " " , {HistType::kTH2D , {axisPhiPlane, axisVx}});
349- histos.add (" QA/after/PsiFull_vs_Vx" , " " , {HistType::kTH2D , {axisPhiPlane, axisVx}});
350- histos.add (" QA/after/PsiA_vs_Vy" , " " , {HistType::kTH2D , {axisPhiPlane, axisVy}});
351- histos.add (" QA/after/PsiC_vs_Vy" , " " , {HistType::kTH2D , {axisPhiPlane, axisVy}});
352- histos.add (" QA/after/PsiFull_vs_Vy" , " " , {HistType::kTH2D , {axisPhiPlane, axisVy}});
353- histos.add (" QA/after/PsiA_vs_Vz" , " " , {HistType::kTH2D , {axisPhiPlane, axisVz}});
354- histos.add (" QA/after/PsiC_vs_Vz" , " " , {HistType::kTH2D , {axisPhiPlane, axisVz}});
355- histos.add (" QA/after/PsiFull_vs_Vz" , " " , {HistType::kTH2D , {axisPhiPlane, axisVz}});
342+ if (cfgFillEventPlaneQA && doprocessData) {
343+ histos.add (" QA/after/PsiA_vs_Cent" , " " , {HistType::kTH2D , {axisPhiPlane, axisCent}});
344+ histos.add (" QA/after/PsiC_vs_Cent" , " " , {HistType::kTH2D , {axisPhiPlane, axisCent}});
345+ histos.add (" QA/after/PsiFull_vs_Cent" , " " , {HistType::kTH2D , {axisPhiPlane, axisCent}});
346+ histos.add (" QA/after/PsiA_vs_Vx" , " " , {HistType::kTH2D , {axisPhiPlane, axisVx}});
347+ histos.add (" QA/after/PsiC_vs_Vx" , " " , {HistType::kTH2D , {axisPhiPlane, axisVx}});
348+ histos.add (" QA/after/PsiFull_vs_Vx" , " " , {HistType::kTH2D , {axisPhiPlane, axisVx}});
349+ histos.add (" QA/after/PsiA_vs_Vy" , " " , {HistType::kTH2D , {axisPhiPlane, axisVy}});
350+ histos.add (" QA/after/PsiC_vs_Vy" , " " , {HistType::kTH2D , {axisPhiPlane, axisVy}});
351+ histos.add (" QA/after/PsiFull_vs_Vy" , " " , {HistType::kTH2D , {axisPhiPlane, axisVy}});
352+ histos.add (" QA/after/PsiA_vs_Vz" , " " , {HistType::kTH2D , {axisPhiPlane, axisVz}});
353+ histos.add (" QA/after/PsiC_vs_Vz" , " " , {HistType::kTH2D , {axisPhiPlane, axisVz}});
354+ histos.add (" QA/after/PsiFull_vs_Vz" , " " , {HistType::kTH2D , {axisPhiPlane, axisVz}});
356355 }
357356
358- if (cfgFillQABefore){
357+ if (cfgFillQABefore) {
359358 histos.addClone (" QA/after/" , " QA/before/" );
360359 }
361360 }
@@ -371,7 +370,7 @@ struct FlowSP {
371370 histos.add (" incl/QA/after/hSharedClusters_pt" , " " , {HistType::kTH2D , {axisPt, axisShCl}});
372371 histos.add (" incl/QA/after/hCrossedRows_pt" , " " , {HistType::kTH2D , {axisPt, axisCl}});
373372 histos.add (" incl/QA/after/hCrossedRows_vs_SharedClusters" , " " , {HistType::kTH2D , {axisCl, axisShCl}});
374-
373+
375374 if (cfgTrackSelDoTrackQAvsCent) {
376375 histos.add <TH3 >(" incl/QA/after/hPt_Eta" , " " , kTH3D , {axisPt, axisEta, axisCent});
377376 histos.add <TH3 >(" incl/QA/after/hPt_Eta_uncorrected" , " " , kTH3D , {axisPt, axisEta, axisCent});
@@ -380,15 +379,14 @@ struct FlowSP {
380379 } else {
381380 histos.add <TH3 >(" incl/QA/after/hPhi_Eta_Pt" , " " , kTH3D , {axisPhi, axisEta, axisPt});
382381 histos.add <TH3 >(" incl/QA/after/hPhi_Eta_Pt_corrected" , " " , kTH3D , {axisPhi, axisEta, axisPt});
383-
384382 }
385383
386384 if (cfgFillQABefore)
387385 histos.addClone (" incl/QA/after/" , " incl/QA/before/" );
388386 }
389387
390388 if (cfgFillPIDQA) {
391- histos.add <TH2 >(" hPIDcounts" , " " , kTH2D , {{{4 , 0 , 4 }, axisPt}});
389+ histos.add <TH2 >(" hPIDcounts" , " " , kTH2D , {{{4 , 0 , 4 }, axisPt}});
392390 histos.get <TH2 >(HIST (" hPIDcounts" ))->GetXaxis ()->SetBinLabel (1 , " UFO" );
393391 histos.get <TH2 >(HIST (" hPIDcounts" ))->GetXaxis ()->SetBinLabel (2 , " Pion" );
394392 histos.get <TH2 >(HIST (" hPIDcounts" ))->GetXaxis ()->SetBinLabel (3 , " Kaon" );
@@ -398,10 +396,10 @@ struct FlowSP {
398396 histos.add (" incl/QA/after/hBetaTOF_pt" , " " , {HistType::kTH2D , {axisPt, axisBeta}});
399397 histos.add (" incl/QA/before/hdEdxTPC_pt" , " " , {HistType::kTH2D , {axisPt, axisdEdx}});
400398 histos.add (" incl/QA/before/hBetaTOF_pt" , " " , {HistType::kTH2D , {axisPt, axisBeta}});
401-
399+
402400 histos.add (" incl/pion/QA/after/hNsigmaTPC_pt" , " " , {HistType::kTH2D , {axisPt, axisNsigma}});
403401 histos.add (" incl/pion/QA/after/hNsigmaTOF_pt" , " " , {HistType::kTH2D , {axisPt, axisNsigma}});
404-
402+
405403 histos.add <TH3 >(" incl/pion/QA/after/hPhi_Eta_vz" , " " , kTH3D , {axisPhi, axisEta, axisVz});
406404 histos.add <TH3 >(" incl/pion/QA/after/hPhi_Eta_vz_corrected" , " " , kTH3D , {axisPhi, axisEta, axisVz});
407405 histos.add <TH3 >(" incl/pion/QA/after/hPhi_Eta_Pt" , " " , kTH3D , {axisPhi, axisEta, axisPt});
@@ -412,7 +410,7 @@ struct FlowSP {
412410 histos.add (" incl/pion/QA/after/hCrossedRows_pt" , " " , {HistType::kTH2D , {axisPt, axisCl}});
413411 histos.add (" incl/pion/QA/after/hCrossedRows_vs_SharedClusters" , " " , {HistType::kTH2D , {axisCl, axisShCl}});
414412
415- if (cfgFillQABefore){
413+ if (cfgFillQABefore) {
416414 histos.addClone (" incl/pion/QA/after/" , " incl/pion/QA/before/" );
417415 }
418416
@@ -442,7 +440,7 @@ struct FlowSP {
442440 registry.add <TProfile>(" QQCorrelations/qAXqCY" , " " , kTProfile , {axisCent});
443441 registry.add <TProfile>(" QQCorrelations/qAYqCX" , " " , kTProfile , {axisCent});
444442 registry.add <TProfile>(" QQCorrelations/qAXYqCXY" , " " , kTProfile , {axisCent});
445-
443+
446444 if (cfgFillGeneralV1Histos) {
447445 // track properties per centrality and per eta, pt bin
448446 registry.add <TProfile2D>(" incl/vnC_eta" , " " , kTProfile2D , {axisEtaVn, axisCentrality});
@@ -557,7 +555,7 @@ struct FlowSP {
557555 registry.addClone (" incl/" , " pos/" );
558556 registry.addClone (" incl/" , " neg/" );
559557 }
560- if (cfgFillPIDQA){
558+ if (cfgFillPIDQA) {
561559 histos.addClone (" incl/" , " pos/" );
562560 histos.addClone (" incl/" , " neg/" );
563561 }
@@ -1032,7 +1030,7 @@ struct FlowSP {
10321030 registry.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" vnCy_pt" ), track.pt (), centrality, (uy * qyC) / std::sqrt (std::fabs (corrQQy)), weight);
10331031 }
10341032
1035- if (cfgFillEventPlane && pt== 0 ) { // only fill for inclusive!
1033+ if (cfgFillEventPlane && pt == 0 ) { // only fill for inclusive!
10361034 registry.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" vnA_eta_EP" ), track.eta (), centrality, vnA, weight);
10371035 registry.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" vnC_eta_EP" ), track.eta (), centrality, vnC, weight);
10381036 registry.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" vnFull_eta_EP" ), track.eta (), centrality, vnFull, weight);
@@ -1111,7 +1109,6 @@ struct FlowSP {
11111109 histos.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" QA/" ) + HIST (Time[ft]) + HIST (" hPt_Eta_uncorrected" ), track.pt (), track.eta (), centrality);
11121110 histos.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" QA/" ) + HIST (Time[ft]) + HIST (" hPhi_Eta" ), track.phi (), track.eta (), centrality, wacc * weff);
11131111 histos.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" QA/" ) + HIST (Time[ft]) + HIST (" hPhi_Eta_uncorrected" ), track.phi (), track.eta (), centrality);
1114-
11151112
11161113 histos.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" QA/" ) + HIST (Time[ft]) + HIST (" hPhi_Eta_vz" ), track.phi (), track.eta (), vz);
11171114 histos.fill (HIST (Charge[ct]) + HIST (Species[pt]) + HIST (" QA/" ) + HIST (Time[ft]) + HIST (" hPhi_Eta_vz_corrected" ), track.phi (), track.eta (), vz, wacc);
@@ -1231,7 +1228,8 @@ struct FlowSP {
12311228 LOGF (info, " Size of mAcceptance: %i (should be 0)" , (int )cfg.mAcceptance .size ());
12321229 }
12331230
1234- if (cfgFillQABefore) fillEventQA<kBefore >(collision, tracks);
1231+ if (cfgFillQABefore)
1232+ fillEventQA<kBefore >(collision, tracks);
12351233
12361234 loadCorrections (bc.timestamp ());
12371235
@@ -1265,7 +1263,7 @@ struct FlowSP {
12651263 // https://twiki.cern.ch/twiki/pub/ALICE/DirectedFlowAnalysisNote/vn_ZDC_ALICE_INT_NOTE_version02.pdf
12661264 double psiFull = 1.0 * std::atan2 (qyA + qyC, qxA + qxC);
12671265
1268- // always fill these histograms!
1266+ // always fill these histograms!
12691267 registry.fill (HIST (" QQCorrelations/qAqCXY" ), centrality, qxA * qxC + qyA * qyC);
12701268 registry.fill (HIST (" QQCorrelations/qAXqCY" ), centrality, qxA * qyC);
12711269 registry.fill (HIST (" QQCorrelations/qAYqCX" ), centrality, qyA * qxC);
@@ -1375,7 +1373,7 @@ struct FlowSP {
13751373 auto phi = RecoDecay::constrainAngle (track.phi (), 0 );
13761374
13771375 // Fill NUA weights (last 0 is for Data see GFWWeights class (not a weight))
1378- // ToDo: Add pi, ka, proton here!
1376+ // ToDo: Add pi, ka, proton here!
13791377 if (cfgFillWeights) {
13801378 fWeights ->fill (phi, track.eta (), vtxz, track.pt (), centrality, 0 );
13811379 registry.fill (HIST (" weights2D/hPhi_Eta_vz" ), phi, track.eta (), vtxz, 1 );
@@ -1431,22 +1429,27 @@ struct FlowSP {
14311429
14321430 fillHistograms<kInclusive , kUnidentified >(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
14331431
1434-
1435- // NOTE: these are not the right wacc and weff!! Need to do for each particle species! This is just to test for now.
1436- if (cfgFillPID){
1437- if (trackPID== kPions ){
1432+ // NOTE: these are not the right wacc and weff!! Need to do for each particle species! This is just to test for now.
1433+ if (cfgFillPID) {
1434+ if (trackPID == kPions ) {
14381435 fillHistograms<kInclusive , kPions >(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1439- if (pos) fillHistograms<kPositive , kPions >(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1440- else fillHistograms<kNegative , kPions >(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1441- } else if (trackPID== kKaons ){
1442- fillHistograms<kInclusive , kKaons >(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1443- if (pos) fillHistograms<kPositive , kKaons >(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1444- else fillHistograms<kNegative , kKaons >(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1445- } else if (trackPID==kProtons ){
1446- fillHistograms<kInclusive , kProtons >(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1447- if (pos) fillHistograms<kPositive , kProtons >(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1448- else fillHistograms<kNegative , kProtons >(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1449- }
1436+ if (pos)
1437+ fillHistograms<kPositive , kPions >(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1438+ else
1439+ fillHistograms<kNegative , kPions >(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1440+ } else if (trackPID == kKaons ) {
1441+ fillHistograms<kInclusive , kKaons >(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1442+ if (pos)
1443+ fillHistograms<kPositive , kKaons >(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1444+ else
1445+ fillHistograms<kNegative , kKaons >(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1446+ } else if (trackPID == kProtons ) {
1447+ fillHistograms<kInclusive , kProtons >(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1448+ if (pos)
1449+ fillHistograms<kPositive , kProtons >(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1450+ else
1451+ fillHistograms<kNegative , kProtons >(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality);
1452+ }
14501453 }
14511454
14521455 if (cfgFillChargeDependence) {
@@ -1479,7 +1482,8 @@ struct FlowSP {
14791482 if (cfgCentNGlobal)
14801483 centrality = collision.centNGlobal ();
14811484
1482- if (cfgFillQABefore) fillEventQA<kBefore >(collision, filteredTracks);
1485+ if (cfgFillQABefore)
1486+ fillEventQA<kBefore >(collision, filteredTracks);
14831487
14841488 if (!eventSelected (collision, filteredTracks.size ()))
14851489 return ;
@@ -1506,34 +1510,34 @@ struct FlowSP {
15061510 histos.fill (HIST (" hTrackCount" ), trackSel_ZeroCharge);
15071511
15081512 fillMCPtHistos<kBefore , kReco >(track, mcParticle.pdgCode (), centrality);
1509- bool pos = (track.sign () > 0 ) ? true : false ;
1513+ bool pos = (track.sign () > 0 ) ? true : false ;
15101514
1511- fillPrimaryHistos<kBefore >(mcParticle, centrality);
1515+ fillPrimaryHistos<kBefore >(mcParticle, centrality);
15121516
1513- // This neglects PID (for now) later use getPID like in data.
1517+ // This neglects PID (for now) later use getPID like in data.
15141518 if (cfgFillQABefore) {
1515- switch (std::abs (mcParticle.pdgCode ())) {
1516- case kPions :
1517- fillAllQA<kBefore , kPions >(track, vtxz, centrality, pos);
1518- break ;
1519- case kKaons :
1520- fillAllQA<kBefore , kKaons >(track, vtxz, centrality, pos);
1521- break ;
1522- case kProtons :
1523- fillAllQA<kBefore , kProtons >(track, vtxz, centrality, pos);
1524- break ;
1525- default :
1526- fillAllQA<kBefore , kUnidentified >(track, vtxz, centrality, pos);
1527- }
1519+ switch (std::abs (mcParticle.pdgCode ())) {
1520+ case kPions :
1521+ fillAllQA<kBefore , kPions >(track, vtxz, centrality, pos);
1522+ break ;
1523+ case kKaons :
1524+ fillAllQA<kBefore , kKaons >(track, vtxz, centrality, pos);
1525+ break ;
1526+ case kProtons :
1527+ fillAllQA<kBefore , kProtons >(track, vtxz, centrality, pos);
1528+ break ;
1529+ default :
1530+ fillAllQA<kBefore , kUnidentified >(track, vtxz, centrality, pos);
15281531 }
1532+ }
15291533
15301534 if (!trackSelected (track, field))
15311535 continue ;
15321536
15331537 fillMCPtHistos<kAfter , kReco >(track, mcParticle.pdgCode (), centrality);
15341538
15351539 fillTrackQA<kAfter , kInclusive , kUnidentified >(track, vtxz);
1536- fillPrimaryHistos<kAfter >(mcParticle, centrality);
1540+ fillPrimaryHistos<kAfter >(mcParticle, centrality);
15371541
15381542 } // end of track loop
15391543 }
@@ -1572,7 +1576,8 @@ struct FlowSP {
15721576 if (cfgCentNGlobal)
15731577 centrality = col.centNGlobal ();
15741578
1575- if (cfgFillQABefore) fillEventQA<kBefore >(col, filteredTrackSlice);
1579+ if (cfgFillQABefore)
1580+ fillEventQA<kBefore >(col, filteredTrackSlice);
15761581
15771582 if (trackSlice.size () < 1 ) {
15781583 colSelected = false ;
0 commit comments