Skip to content
Merged
4 changes: 2 additions & 2 deletions PWGHF/D2H/Tasks/taskLc.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -264,8 +264,8 @@ struct HfTaskLc {
addHistogramsRec("hDecLenErrVsPt", "decay length error (cm)", "#it{p}_{T} (GeV/#it{c})", {HistType::kTH2F, {{100, 0., 1.}, {vbins}}});

if (isUpc) {
qaRegistry.add("Data/fitInfo/ampFT0A_vs_ampFT0C", "FT0-A vs FT0-C amplitude;FT0-A amplitude (a.u.);FT0-C amplitude (a.u.)", {HistType::kTH2F, {{1500, 0., 1500}, {1500, 0., 1500}}});
qaRegistry.add("Data/zdc/energyZNA_vs_energyZNC", "ZNA vs ZNC common energy;E_{ZNA}^{common} (a.u.);E_{ZNC}^{common} (a.u.)", {HistType::kTH2F, {{200, 0., 20}, {200, 0., 20}}});
qaRegistry.add("Data/fitInfo/ampFT0A_vs_ampFT0C", "FT0-A vs FT0-C amplitude;FT0-A amplitude (a.u.);FT0-C amplitude (a.u.)", {HistType::kTH2F, {{500, 0., 500}, {500, 0., 500}}});
qaRegistry.add("Data/zdc/energyZNA_vs_energyZNC", "ZNA vs ZNC common energy;E_{ZNA}^{common} (a.u.);E_{ZNC}^{common} (a.u.)", {HistType::kTH2F, {{100, 0., 10}, {100, 0., 10}}});
qaRegistry.add("Data/zdc/timeZNA_vs_timeZNC", "ZNA vs ZNC time;ZNA Time;ZNC time", {HistType::kTH2F, {{200, -10., 10}, {200, -10., 10}}});
qaRegistry.add("Data/hUpcGapAfterSelection", "UPC gap type after selection;Gap side;Counts", {HistType::kTH1F, {{7, -1.5, 5.5}}});
}
Expand Down
24 changes: 20 additions & 4 deletions PWGHF/Utils/utilsUpcHf.h
Comment thread
vkucera marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
/// \brief Utility functions for Ultra-Peripheral Collision (UPC) analysis in Heavy Flavor physics
///
/// \author Minjung Kim <minjung.kim@cern.ch>, CERN
/// \author Ran Tu <ran.tu@cern.ch>, Fudan University, GSI Darmstadt

#ifndef PWGHF_UTILS_UTILSUPCHF_H_
#define PWGHF_UTILS_UTILSUPCHF_H_
Expand All @@ -35,6 +36,11 @@ using o2::aod::sgselector::TrueGap;
/// \brief Configurable group for UPC gap determination thresholds
struct HfUpcGapThresholds : o2::framework::ConfigurableGroup {
std::string prefix = "upc"; // JSON group name
o2::framework::Configurable<int> fNDtColl{"fNDtColl", 1, "Number of standard deviations to consider in BC range"};
o2::framework::Configurable<int> fNBCsMin{"fNBCsMin", 2, "Minimum number of BCs to consider in BC range"};
o2::framework::Configurable<int> fNPVCsMin{"fNPVCsMin", 2, "Minimum number of PV contributors"};
o2::framework::Configurable<int> fNPVCsMax{"fNPVCsMax", 1000, "Maximum number of PV contributors"};
o2::framework::Configurable<float> fFITTimeMax{"fFITTimeMax", 34, "Maximum time in FIT"};
Comment thread
vkucera marked this conversation as resolved.
Outdated
o2::framework::Configurable<float> fv0aThreshold{"fv0aThreshold", 100.0f, "FV0-A amplitude threshold for UPC gap determination (a.u.)"};
o2::framework::Configurable<float> ft0aThreshold{"ft0aThreshold", 100.0f, "FT0-A amplitude threshold for UPC gap determination (a.u.)"};
o2::framework::Configurable<float> ft0cThreshold{"ft0cThreshold", 50.0f, "FT0-C amplitude threshold for UPC gap determination (a.u.)"};
Expand Down Expand Up @@ -66,6 +72,11 @@ constexpr int MaxNTracks = 100; ///< Maximum number of tracks
template <typename TCollision, typename TBCs>
inline auto determineGapType(TCollision const& collision,
TBCs const& bcs,
int nDtColl = defaults::NDtColl,
int nBCsMin = defaults::MinNBCs,
int nPVCsMin = defaults::MinNTracks,
int nPVCsMax = defaults::MaxNTracks,
float fITTimeMax = defaults::MaxFITTime,
Comment thread
vkucera marked this conversation as resolved.
Outdated
float amplitudeThresholdFV0A = defaults::AmplitudeThresholdFV0A,
float amplitudeThresholdFT0A = defaults::AmplitudeThresholdFT0A,
float amplitudeThresholdFT0C = defaults::AmplitudeThresholdFT0C)
Expand All @@ -74,10 +85,10 @@ inline auto determineGapType(TCollision const& collision,

// Configure SGSelector thresholds
SGCutParHolder sgCuts;
sgCuts.SetNDtcoll(defaults::NDtColl);
sgCuts.SetMinNBCs(defaults::MinNBCs);
sgCuts.SetNTracks(defaults::MinNTracks, defaults::MaxNTracks);
sgCuts.SetMaxFITtime(defaults::MaxFITTime);
sgCuts.SetNDtcoll(nDtColl);
sgCuts.SetMinNBCs(nBCsMin);
sgCuts.SetNTracks(nPVCsMin, nPVCsMax);
sgCuts.SetMaxFITtime(fITTimeMax);
sgCuts.SetFITAmpLimits({amplitudeThresholdFV0A, amplitudeThresholdFT0A, amplitudeThresholdFT0C});

// Get BC and BC range
Expand Down Expand Up @@ -108,6 +119,11 @@ inline auto determineGapType(TCollision const& collision,
HfUpcGapThresholds const& thresholds)
{
return determineGapType(collision, bcs,
thresholds.fNDtColl.value,
thresholds.fNBCsMin.value,
thresholds.fNPVCsMin.value,
thresholds.fNPVCsMax.value,
thresholds.fFITTimeMax.value,
thresholds.fv0aThreshold.value,
thresholds.ft0aThreshold.value,
thresholds.ft0cThreshold.value);
Expand Down
Loading