diff --git a/PWGUD/Core/SGSelector.h b/PWGUD/Core/SGSelector.h index cf0747108b3..fc49b2ef1cf 100644 --- a/PWGUD/Core/SGSelector.h +++ b/PWGUD/Core/SGSelector.h @@ -19,63 +19,69 @@ #include "PWGUD/Core/UDHelpers.h" #include "PWGUD/Core/SGCutParHolder.h" -class SGSelector { -public: - SGSelector() : fPDG(TDatabasePDG::Instance()) {} - - template - int Print(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, TCs& tracks, FWs& fwdtracks) { - LOGF(info, "Size of array %i", collision.size()); - return 1; +class SGSelector +{ + public: + SGSelector() : fPDG(TDatabasePDG::Instance()) {} + + template + int Print(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, TCs& tracks, FWs& fwdtracks) + { + LOGF(info, "Size of array %i", collision.size()); + return 1; + } + + template + int IsSelected(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, TCs& tracks, FWs& fwdtracks) + { + LOGF(debug, "Collision %f", collision.collisionTime()); + LOGF(debug, "Number of close BCs: %i", bcRange.size()); + + bool gA = true, gC = true; + for (auto const& bc : bcRange) { + if (!udhelpers::cleanFITA(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) + gA = false; + if (!udhelpers::cleanFITC(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) + gC = false; } + if (!gA && !gC) + return 3; - template - int IsSelected(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, TCs& tracks, FWs& fwdtracks) { - LOGF(debug, "Collision %f", collision.collisionTime()); - LOGF(debug, "Number of close BCs: %i", bcRange.size()); - - bool gA = true, gC = true; - for (auto const& bc : bcRange) { - if (!udhelpers::cleanFITA(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) gA = false; - if (!udhelpers::cleanFITC(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) gC = false; - } - if (!gA && !gC) return 3; - - LOGF(debug, "FwdTracks %i", fwdtracks.size()); - for (auto& fwdtrack : fwdtracks) { - if (fwdtrack.trackType() == 0 || fwdtrack.trackType() == 3) { - return 4; - } - } + LOGF(debug, "FwdTracks %i", fwdtracks.size()); + for (auto& fwdtrack : fwdtracks) { + if (fwdtrack.trackType() == 0 || fwdtrack.trackType() == 3) { + return 4; + } + } - double rgtrwTOF = 0.0; - for (auto& track : tracks) { - if (track.isGlobalTrack() && !track.isPVContributor()) { - return 5; - } - if (diffCuts.globalTracksOnly() && track.isPVContributor() && !track.isGlobalTrack()) { - return 6; - } - if (!diffCuts.ITSOnlyTracks() && track.isPVContributor() && !track.hasTPC()) { - return 7; - } - if (track.isPVContributor() && track.hasTOF()) { - rgtrwTOF += 1.0; - } - } - if (collision.numContrib() > 0) { - rgtrwTOF /= static_cast(collision.numContrib()); - } - if (rgtrwTOF < diffCuts.minRgtrwTOF()) { - return 8; - } + double rgtrwTOF = 0.0; + for (auto& track : tracks) { + if (track.isGlobalTrack() && !track.isPVContributor()) { + return 5; + } + if (diffCuts.globalTracksOnly() && track.isPVContributor() && !track.isGlobalTrack()) { + return 6; + } + if (!diffCuts.ITSOnlyTracks() && track.isPVContributor() && !track.hasTPC()) { + return 7; + } + if (track.isPVContributor() && track.hasTOF()) { + rgtrwTOF += 1.0; + } + } + if (collision.numContrib() > 0) { + rgtrwTOF /= static_cast(collision.numContrib()); + } + if (rgtrwTOF < diffCuts.minRgtrwTOF()) { + return 8; + } - if (collision.numContrib() < diffCuts.minNTracks() || collision.numContrib() > diffCuts.maxNTracks()) { - return 9; - } + if (collision.numContrib() < diffCuts.minNTracks() || collision.numContrib() > diffCuts.maxNTracks()) { + return 9; + } -// PID, pt, and eta of tracks, invariant mass, and net charge -// consider only vertex tracks + // PID, pt, and eta of tracks, invariant mass, and net charge + // consider only vertex tracks // which particle hypothesis? auto mass2Use = 0.; @@ -103,13 +109,11 @@ class SGSelector { } } + return gA && gC ? 2 : (gA ? 0 : 1); + } - return gA && gC ? 2 : (gA ? 0 : 1); - } - -private: - TDatabasePDG* fPDG; + private: + TDatabasePDG* fPDG; }; #endif // PWGUD_CORE_SGSELECTOR_H_ - diff --git a/PWGUD/TableProducer/SGCandProducer.cxx b/PWGUD/TableProducer/SGCandProducer.cxx index eccb4c32036..d9ec28f9965 100644 --- a/PWGUD/TableProducer/SGCandProducer.cxx +++ b/PWGUD/TableProducer/SGCandProducer.cxx @@ -152,7 +152,7 @@ struct SGCandProducer { // obtain slice of compatible BCs auto bcRange = udhelpers::compatibleBCs(collision, sameCuts.NDtcoll(), bcs, sameCuts.minNBCs()); - auto isSGEvent = sgSelector.IsSelected(sameCuts, collision, bcRange, tracks, fwdtracks); + auto isSGEvent = sgSelector.IsSelected(sameCuts, collision, bcRange, tracks, fwdtracks); registry.get(HIST("reco/Stat"))->Fill(0., 1.); registry.get(HIST("reco/Stat"))->Fill(isSGEvent + 1, 1.); if (isSGEvent <= 2) { @@ -184,13 +184,12 @@ struct SGCandProducer { for (auto& fwdtrack : fwdtracks) { updateUDFwdTrackTables(fwdtrack, bc.globalBC()); } - if (bc.has_zdc()) { - auto zdc = bc.zdc(); - udZdcsReduced(outputCollisions.lastIndex(), zdc.timeZNA(), zdc.timeZNC(), zdc.energyCommonZNA(), zdc.energyCommonZNC()); - } - else{ - udZdcsReduced(outputCollisions.lastIndex(), -999, -999, -999, -999); - } + if (bc.has_zdc()) { + auto zdc = bc.zdc(); + udZdcsReduced(outputCollisions.lastIndex(), zdc.timeZNA(), zdc.timeZNC(), zdc.energyCommonZNA(), zdc.energyCommonZNC()); + } else { + udZdcsReduced(outputCollisions.lastIndex(), -999, -999, -999, -999); + } } } };