1212// / \author Dong Jo Kim (djkim@jyu.fi)
1313// / \since Sep 2022
1414
15- #include < deque>
15+ #include " Common/Core/TrackSelection.h"
16+ #include " Common/DataModel/Centrality.h"
17+ #include " Common/DataModel/EventSelection.h"
18+ #include " Common/DataModel/TrackSelectionTables.h"
1619
17- #include " Framework/AnalysisTask.h"
1820#include " Framework/ASoAHelpers.h"
19- #include " Framework/RunningWorkflowInfo .h"
21+ #include " Framework/AnalysisTask .h"
2022#include " Framework/HistogramRegistry.h"
21-
22- #include " Common/DataModel/EventSelection.h"
23- #include " Common/Core/TrackSelection.h"
24- #include " Common/DataModel/TrackSelectionTables.h"
25- #include " Common/DataModel/Centrality.h"
23+ #include " Framework/RunningWorkflowInfo.h"
2624#include " ReconstructionDataFormats/V0.h"
2725
26+ #include < deque>
27+
2828// #include "CCDB/BasicCCDBManager.h"
2929
30- #include " PWGCF/JCorran/DataModel/JCatalyst.h"
31- #include " PWGCF/DataModel/CorrelationsDerived.h"
3230#include " JFFlucAnalysis.h"
3331#include " JFFlucAnalysisO2Hist.h"
32+
33+ #include " PWGCF/DataModel/CorrelationsDerived.h"
34+ #include " PWGCF/JCorran/DataModel/JCatalyst.h"
35+
3436#include " Framework/runDataProcessing.h"
3537
3638using namespace o2 ;
@@ -52,6 +54,7 @@ struct jflucAnalysisTask {
5254 O2_DEFINE_CONFIGURABLE (etamax, float , 0.8 , " Maximum eta for tracks" );
5355 O2_DEFINE_CONFIGURABLE (ptmin, float , 0.2 , " Minimum pt for tracks" );
5456 O2_DEFINE_CONFIGURABLE (ptmax, float , 5.0 , " Maximum pt for tracks" );
57+ O2_DEFINE_CONFIGURABLE (cfgCentBinsForMC, int , 0 , " 0 = OFF and 1 = ON for data like multiplicity/centrality bins for MC process" );
5558
5659 ConfigurableAxis axisMultiplicity{" axisMultiplicity" , {VARIABLE_WIDTH, 0 , 5 , 10 , 20 , 30 , 40 , 50 , 100.1 }, " multiplicity / centrality axis for histograms" };
5760 ConfigurableAxis phiAxis{" axisPhi" , {50 , 0.0 , o2::constants::math::TwoPI}, " phi axis for histograms" };
@@ -60,8 +63,9 @@ struct jflucAnalysisTask {
6063 ConfigurableAxis ptAxis{" axisPt" , {60 , 0.0 , 300.0 }, " pt axis for histograms" };
6164 ConfigurableAxis massAxis{" axisMass" , {1 , 0.0 , 10.0 }, " mass axis for histograms" };
6265
63- Filter jtrackFilter = (aod::jtrack::pt > ptmin) && (aod::jtrack::pt < ptmax); // eta cuts done by jfluc
64- Filter cftrackFilter = (aod::cftrack::pt > ptmin) && (aod::cftrack::pt < ptmax); // eta cuts done by jfluc
66+ Filter jtrackFilter = (aod::jtrack::pt > ptmin) && (aod::jtrack::pt < ptmax); // eta cuts done by jfluc
67+ Filter cftrackFilter = (aod::cftrack::pt > ptmin) && (aod::cftrack::pt < ptmax); // eta cuts done by jfluc
68+ Filter cfmcparticleFilter = (aod::cfmcparticle::pt > ptmin) && (aod::cfmcparticle::pt < ptmax) && (aod::cfmcparticle::sign != 0 ); // eta cuts done by jfluc
6569 Filter cf2pFilter = (aod::cf2prongtrack::pt > ptmin) && (aod::cf2prongtrack::pt < ptmax);
6670
6771 HistogramRegistry registry{" registry" };
@@ -74,7 +78,7 @@ struct jflucAnalysisTask {
7478 auto axisSpecZvt = AxisSpec (zvtAxis);
7579 auto axisSpecPt = AxisSpec (ptAxis);
7680 auto axisSpecMass = AxisSpec (massAxis);
77- if (doprocessJDerived || doprocessJDerivedCorrected || doprocessCFDerived || doprocessCFDerivedCorrected) {
81+ if (doprocessJDerived || doprocessJDerivedCorrected || doprocessCFDerived || doprocessCFDerivedCorrected || doprocessMCCFDerived ) {
7882 pcf = new JFFlucAnalysisO2Hist (registry, axisSpecMult, axisSpecPhi, axisSpecEta, axisSpecZvt, axisSpecPt, axisSpecMass, " jfluc" );
7983 pcf->AddFlags (JFFlucAnalysis::kFlucEbEWeighting );
8084 pcf->UserCreateOutputObjects ();
@@ -166,6 +170,27 @@ struct jflucAnalysisTask {
166170 }
167171 PROCESS_SWITCH (jflucAnalysisTask, processCF2ProngDerivedCorrected, " Process CF derived data with 2-prongs as POI and charged particles as REF with corrections." , false );
168172
173+ void processMCCFDerived (aod::CFMcCollision const & mcCollision, soa::Filtered<aod::CFMcParticles> const & particles, soa::SmallGroups<aod::CFCollisionsWithLabel> const & collisions)
174+ {
175+ auto multiplicity = mcCollision.multiplicity ();
176+ if (cfgCentBinsForMC > 0 ) {
177+ if (collisions.size () == 0 ) {
178+ return ;
179+ }
180+ for (const auto & collision : collisions) {
181+ multiplicity = collision.multiplicity ();
182+ }
183+ }
184+ pcf->Init ();
185+ pcf->SetEventCentrality (multiplicity);
186+ pcf->SetEventVertex (mcCollision.posZ ());
187+ pcf->FillQA (particles);
188+ qvecs.Calculate (particles, etamin, etamax);
189+ pcf->SetJQVectors (&qvecs);
190+ pcf->UserExec (" " );
191+ }
192+ PROCESS_SWITCH (jflucAnalysisTask, processMCCFDerived, " Process CF derived MC data" , false );
193+
169194 JFFlucAnalysis::JQVectorsT qvecs;
170195 JFFlucAnalysis::JQVectorsT qvecsRef;
171196 JFFlucAnalysisO2Hist* pcf;
0 commit comments