diff --git a/PWGCF/TwoParticleCorrelations/TableProducer/longrangeMaker.cxx b/PWGCF/TwoParticleCorrelations/TableProducer/longrangeMaker.cxx index 71fbbf5e408..d17bf1418b2 100644 --- a/PWGCF/TwoParticleCorrelations/TableProducer/longrangeMaker.cxx +++ b/PWGCF/TwoParticleCorrelations/TableProducer/longrangeMaker.cxx @@ -142,7 +142,8 @@ struct LongrangeMaker { Configurable cfigFt0aEtaMin{"cfigFt0aEtaMin", 3.5f, "Minimum FT0A eta cut"}; Configurable cfigFt0cEtaMax{"cfigFt0cEtaMax", -2.1f, "Maximum FT0C eta cut"}; Configurable cfigFt0cEtaMin{"cfigFt0cEtaMin", -3.3f, "Minimum FT0C eta cut"}; - Configurable useGainCallib{"useGainCallib", true, "use gain calibration"}; + Configurable cfigVerbosity{"cfigVerbosity", 0, "print statement"}; + Configurable useGainCalib{"useGainCalib", true, "use gain calibration"}; Configurable ConfGainPath{"ConfGainPath", "Analysis/EventPlane/GainEq/FT0", "Path to gain calibration"}; } cfgfittrksel; @@ -306,8 +307,6 @@ struct LongrangeMaker { using MftTrkTable = aod::MFTTracks; using BCs = soa::Join; - int currentRunNumber = -999; - int lastRunNumber = -999; std::vector ft0gainvalues{}; void processData(CollTable::iterator const& col, TrksTable const& tracks, aod::FT0s const&, MftTrkTable const& mfttracks, @@ -320,9 +319,10 @@ struct LongrangeMaker { auto multiplicity = countNTracks(tracks); auto centrality = selColCent(col); auto bc = col.bc_as(); - currentRunNumber = bc.runNumber(); - if (cfgfittrksel.useGainCallib && (currentRunNumber != lastRunNumber)) { - const auto ft0GainObj = ccdb->getForTimeStamp>(cfgfittrksel.ConfGainPath.value, bc.timestamp()); + ft0gainvalues.clear(); + ft0gainvalues = {}; + if (cfgfittrksel.useGainCalib) { + const auto ft0GainObj = ccdb->getForTimeStamp>(cfgfittrksel.ConfGainPath, bc.timestamp()); if (!ft0GainObj) { for (auto i{0u}; i < TotFt0Channels; i++) { ft0gainvalues.push_back(1.); @@ -330,6 +330,10 @@ struct LongrangeMaker { } else { ft0gainvalues = *(ft0GainObj); } + } else { + for (auto i{0u}; i < TotFt0Channels; i++) { + ft0gainvalues.push_back(1.); + } } lrcollision(bc.runNumber(), col.posZ(), multiplicity, centrality, bc.timestamp()); @@ -354,9 +358,9 @@ struct LongrangeMaker { float ampl = ft0.amplitudeA()[iCh]; auto phi = getPhiFT0(chanelid, 0); auto eta = getEtaFT0(chanelid, 0); - auto gainampl = 1.0; - if (cfgfittrksel.useGainCallib) { - gainampl = ampl / ft0gainvalues[chanelid]; + auto gainampl = ampl / ft0gainvalues[chanelid]; + if (cfgfittrksel.cfigVerbosity > 0) { + LOGF(info, "FT0A info: Channel = %d | indexchannel = %d | %f | %f", chanelid, iCh, ft0gainvalues[chanelid], ft0gainvalues[iCh]); } lrft0atracks(lrcollision.lastIndex(), chanelid, ampl, gainampl, eta, phi); } @@ -365,9 +369,9 @@ struct LongrangeMaker { float ampl = ft0.amplitudeC()[iCh]; auto phi = getPhiFT0(chanelid, 1); auto eta = getEtaFT0(chanelid, 1); - auto gainampl = 1.0; - if (cfgfittrksel.useGainCallib) { - gainampl = ampl / ft0gainvalues[chanelid]; + auto gainampl = ampl / ft0gainvalues[chanelid]; + if (cfgfittrksel.cfigVerbosity > 0) { + LOGF(info, "FT0C info: Channel = %d | indexchannel = %d | %f | %f", chanelid, iCh, ft0gainvalues[chanelid], ft0gainvalues[iCh]); } lrft0ctracks(lrcollision.lastIndex(), chanelid, ampl, gainampl, eta, phi); } @@ -427,7 +431,6 @@ struct LongrangeMaker { v0.pt(), v0.eta(), v0.phi(), massV0, aod::lrcorrtrktable::kSpALambda); } // end of Lambda and Anti-Lambda processing } - lastRunNumber = currentRunNumber; } // process function void processUpc(CollTable::iterator const& col, BCs const& bcs, @@ -591,9 +594,10 @@ struct LongrangeMaker { auto multiplicity = countNTracks(recTracksPart); auto centrality = selColCent(RecCol); auto bc = RecCol.bc_as(); - currentRunNumber = bc.runNumber(); - if (cfgfittrksel.useGainCallib && (currentRunNumber != lastRunNumber)) { - const auto ft0GainObj = ccdb->getForTimeStamp>(cfgfittrksel.ConfGainPath.value, bc.timestamp()); + ft0gainvalues.clear(); + ft0gainvalues = {}; + if (cfgfittrksel.useGainCalib) { + const auto ft0GainObj = ccdb->getForTimeStamp>(cfgfittrksel.ConfGainPath, bc.timestamp()); if (!ft0GainObj) { for (auto i{0u}; i < TotFt0Channels; i++) { ft0gainvalues.push_back(1.); @@ -601,6 +605,10 @@ struct LongrangeMaker { } else { ft0gainvalues = *(ft0GainObj); } + } else { + for (auto i{0u}; i < TotFt0Channels; i++) { + ft0gainvalues.push_back(1.); + } } lrcollision(bc.runNumber(), RecCol.posZ(), multiplicity, centrality, bc.timestamp()); lrcollisionMcLabel(RecCol.mcCollisionId()); @@ -631,10 +639,7 @@ struct LongrangeMaker { float ampl = ft0.amplitudeA()[iCh]; auto phi = getPhiFT0(chanelid, 0); auto eta = getEtaFT0(chanelid, 0); - auto gainampl = 1.0; - if (cfgfittrksel.useGainCallib) { - gainampl = ampl / ft0gainvalues[chanelid]; - } + auto gainampl = ampl / ft0gainvalues[chanelid]; lrft0atracks(lrcollision.lastIndex(), chanelid, ampl, gainampl, eta, phi); } for (std::size_t iCh = 0; iCh < ft0.channelC().size(); iCh++) { @@ -642,10 +647,7 @@ struct LongrangeMaker { float ampl = ft0.amplitudeC()[iCh]; auto phi = getPhiFT0(chanelid, 1); auto eta = getEtaFT0(chanelid, 1); - auto gainampl = 1.0; - if (cfgfittrksel.useGainCallib) { - gainampl = ampl / ft0gainvalues[chanelid]; - } + auto gainampl = ampl / ft0gainvalues[chanelid]; lrft0ctracks(lrcollision.lastIndex(), chanelid, ampl, gainampl, eta, phi); } } @@ -696,7 +698,6 @@ struct LongrangeMaker { if (cfgmfttrksel.cfigMftEtaMin < particle.eta() && particle.eta() < cfgmfttrksel.cfigMftEtaMax) lrmftmctracks(lrmccollision.lastIndex(), particle.pt(), particle.eta(), particle.phi()); } - lastRunNumber = currentRunNumber; } } diff --git a/PWGCF/TwoParticleCorrelations/Tasks/longrangecorrDerived.cxx b/PWGCF/TwoParticleCorrelations/Tasks/longrangecorrDerived.cxx index ced66b323bc..b1d57cf4ed6 100644 --- a/PWGCF/TwoParticleCorrelations/Tasks/longrangecorrDerived.cxx +++ b/PWGCF/TwoParticleCorrelations/Tasks/longrangecorrDerived.cxx @@ -259,8 +259,13 @@ struct LongrangecorrDerived { template void fillCorrHist(TTarget target, TTriggers const& triggers, TAssocs const& assocs, bool mixing, float vz, float multiplicity, float eventWeight) { - auto trigAmpl = 1.0f; for (auto const& triggerTrack : triggers) { + auto trigAmpl = 1.0f; + if constexpr (std::experimental::is_detected::value) { + trigAmpl = triggerTrack.gainAmplitude(); + } else { + trigAmpl = 1.0; + } if constexpr (std::experimental::is_detected::value) { if (cfgPidMask != 0 && (cfgPidMask & (1u << static_cast(triggerTrack.trackType()))) == 0u) continue; @@ -268,9 +273,6 @@ struct LongrangecorrDerived { if (cfgV0Mask != 0 && (cfgV0Mask & (1u << static_cast(triggerTrack.v0Type()))) == 0u) continue; } - if constexpr (std::experimental::is_detected::value) { - trigAmpl *= triggerTrack.gainAmplitude(); - } if (!mixing) { fillTrigTrackQA(triggerTrack); if constexpr (std::experimental::is_detected::value) { @@ -281,10 +283,12 @@ struct LongrangecorrDerived { histos.fill(HIST("Trig_hist"), vz, multiplicity, triggerTrack.pt(), 1.0, eventWeight * trigAmpl); } } - auto assoAmpl = 1.0f; for (auto const& assoTrack : assocs) { + auto assoAmpl = 1.0f; if constexpr (std::experimental::is_detected::value) { - assoAmpl *= assoTrack.gainAmplitude(); + assoAmpl = assoTrack.gainAmplitude(); + } else { + assoAmpl = 1.0f; } float deltaPhi = RecoDecay::constrainAngle(triggerTrack.phi() - assoTrack.phi(), -PIHalf); float deltaEta = triggerTrack.eta() - assoTrack.eta(); @@ -294,7 +298,6 @@ struct LongrangecorrDerived { } else { histos.fill(HIST("deltaEta_deltaPhi_mixed"), deltaPhi, deltaEta, eventWeight * trigAmpl * assoAmpl); } - if constexpr (std::experimental::is_detected::value) { target->getPairHist()->Fill(step, vz, multiplicity, 1.0, 1.0, deltaPhi, deltaEta, 1.0, eventWeight * trigAmpl * assoAmpl); } else if constexpr (std::experimental::is_detected::value) {