diff --git a/PWGCF/JCorran/Tasks/jEPFlowAnalysis.cxx b/PWGCF/JCorran/Tasks/jEPFlowAnalysis.cxx index d3afbfe1963..0654c2305f0 100644 --- a/PWGCF/JCorran/Tasks/jEPFlowAnalysis.cxx +++ b/PWGCF/JCorran/Tasks/jEPFlowAnalysis.cxx @@ -127,6 +127,9 @@ struct JEPFlowAnalysis { Configurable> cfgMultq2high{"cfgMultq2high", {}, ""}; Configurable> cfgMultq2low{"cfgMultq2low", {}, ""}; + Configurable cfgJetSubEvtSel{"cfgJetSubEvtSel", 0, "0: none, 1: Ratio, 2: relative ratio"}; + Configurable> cfgJetSubEvlSelVar{"cfgJetSubEvlSelVar", {}, ""}; + Configurable cfgDetName{"cfgDetName", "FT0C", "The name of detector to be analyzed"}; Configurable cfgRefAName{"cfgRefAName", "TPCPos", "The name of detector for reference A"}; Configurable cfgRefBName{"cfgRefBName", "TPCNeg", "The name of detector for reference B"}; @@ -139,6 +142,7 @@ struct JEPFlowAnalysis { ConfigurableAxis cfgAxisQ2{"cfgAxisQ2", {100, 0, 10}, ""}; ConfigurableAxis cfgAxisAmp{"cfgAxisAmp", {100, 0, 1e5}, ""}; ConfigurableAxis cfgAxisAmpR{"cfgAxisAmpR", {VARIABLE_WIDTH, 0.0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1.0}, ""}; + ConfigurableAxis cfgAxisActR{"cfgAxisActR", {100, 0, 100}, ""}; ConfigurableAxis cfgAxisCentMC{"cfgAxisCentMC", {5, 0, 100}, ""}; ConfigurableAxis cfgAxisVtxZMC{"cfgAxisVtxZMC", {20, -10, 10}, ""}; @@ -268,6 +272,27 @@ struct JEPFlowAnalysis { return qVecFT0C.Rho(); } + template + float calcFT0CLocalActivity(const Col& coll) + { + float amp = 0.0; + float amp2 = 0.0; + if (!coll.has_foundFT0()) { + return false; + } + + auto ft0 = coll.foundFT0(); + + for (std::size_t iChC = 0; iChC < ft0.channelC().size(); ++iChC) { + int ft0CChId = ft0.channelC()[iChC] + 96; + float ampl = ft0.amplitudeC()[iChC] / (cfgGainEq ? ft0RelGainConst[ft0CChId] : 1.); + amp += ampl; + amp2 += ampl * ampl; + } + + return amp2 / (amp * amp); + } + template uint8_t trackSel(const Trk& track) { @@ -384,6 +409,28 @@ struct JEPFlowAnalysis { } } + float qOvecM; + float activity; + if (i == 0) { // second harmonic only + qOvecM = calcFT0CRawQVecMag(coll, i + 2) / coll.qvecAmp()[detId]; + + epFlowHistograms.fill(HIST("hQoverM2M"), cent, coll.qvecAmp()[detId], qOvecM); + epFlowHistograms.fill(HIST("hQoverM2Q2"), cent, q2Mag, qOvecM); + + activity = calcFT0CLocalActivity(coll); + } + + if (cfgJetSubEvtSel & 1) { + if (cfgJetSubEvlSelVar->at(0) > qOvecM) { + return; + } + } + if (cfgJetSubEvtSel & 2) { + if (cfgJetSubEvlSelVar->at(1) > activity) { + return; + } + } + highestPt = 0.0; for (const auto& track : tracks) { if (cfgTrkSelFlag && trackSel(track)) @@ -415,11 +462,8 @@ struct JEPFlowAnalysis { } } if (i == 0) { // second harmonic only - auto qOvecM = calcFT0CRawQVecMag(coll, i + 2) / coll.qvecAmp()[detId]; - epFlowHistograms.fill(HIST("hQoverM"), cent, highestPt, qOvecM); - epFlowHistograms.fill(HIST("hQoverM2M"), cent, coll.qvecAmp()[detId], qOvecM); - epFlowHistograms.fill(HIST("hQoverM2Q2"), cent, q2Mag, qOvecM); + epFlowHistograms.fill(HIST("hActivity"), cent, highestPt, activity); } } } @@ -461,6 +505,7 @@ struct JEPFlowAnalysis { AxisSpec axisQ2{cfgAxisQ2, "Q2"}; AxisSpec axisAmp{cfgAxisAmp, "M"}; AxisSpec axisAmpR{cfgAxisAmpR, "QoverM"}; + AxisSpec axisActR{cfgAxisActR, "Activity"}; AxisSpec axisCentMC{cfgAxisCentMC, "cent"}; AxisSpec axisVtxZMC{cfgAxisVtxZMC, "vtxz"}; @@ -480,6 +525,7 @@ struct JEPFlowAnalysis { epFlowHistograms.add("hQoverM", "", {HistType::kTH3F, {axisCent, axisPt, axisAmpR}}); epFlowHistograms.add("hQoverM2M", "", {HistType::kTH3F, {axisCent, axisAmp, axisAmpR}}); epFlowHistograms.add("hQoverM2Q2", "", {HistType::kTH3F, {axisCent, axisQ2, axisAmpR}}); + epFlowHistograms.add("hActivity", "", {HistType::kTH3F, {axisCent, axisPt, axisActR}}); epFlowHistograms.add("vncos", "", {HistType::kTHnSparseF, {axisMod, axisCent, axisPt, axisCos}}); epFlowHistograms.add("vnsin", "", {HistType::kTHnSparseF, {axisMod, axisCent, axisPt, axisCos}});