Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 14 additions & 19 deletions PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,12 @@

template <o2::aod::pwgem::photonmeson::photonpair::PairType pairtype, o2::soa::is_table... Types>
struct Pi0EtaToGammaGamma {
o2::framework::Configurable<std::string> ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};

Check failure on line 82 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/configurable]

Use lowerCamelCase for names of configurables and use the same name for the struct member as for the JSON string. (Declare the type and names on the same line.)
o2::framework::Configurable<std::string> grpPath{"grpPath", "GLO/GRP/GRP", "Path of the grp file"};
o2::framework::Configurable<std::string> grpmagPath{"grpmagPath", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object"};
o2::framework::Configurable<bool> skipGRPOquery{"skipGRPOquery", true, "skip grpo query"};
o2::framework::Configurable<float> d_bz_input{"d_bz_input", -999, "bz field in kG, -999 is automatic"};

Check failure on line 86 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/configurable]

Use lowerCamelCase for names of configurables and use the same name for the struct member as for the JSON string. (Declare the type and names on the same line.)
o2::framework::Configurable<uint64_t> ndiff_bc_mix{"ndiff_bc_mix", 594, "difference in global BC required in mixed events"};

Check failure on line 87 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/configurable]

Use lowerCamelCase for names of configurables and use the same name for the struct member as for the JSON string. (Declare the type and names on the same line.)

o2::framework::Configurable<int> cfgQvecEstimator{"cfgQvecEstimator", 0, "FT0M:0, FT0A:1, FT0C:2"};
o2::framework::Configurable<int> cfgCentEstimator{"cfgCentEstimator", 2, "FT0M:0, FT0A:1, FT0C:2"};
Expand Down Expand Up @@ -266,10 +266,10 @@
std::vector<float> occ_bin_edges;

o2::ccdb::CcdbApi ccdbApi;
o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb;
int mRunNumber;
float d_bz;
o2::emcal::Geometry* emcalGeom;
o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb{};
int mRunNumber = -1;
float d_bz = 0;
o2::emcal::Geometry* emcalGeom = nullptr;

//---------------------------------------------------------------------------
// In the following are tags defined which help to select the correct preslice and cuts
Expand Down Expand Up @@ -424,10 +424,10 @@
}

// In case override, don't proceed, please - no CCDB access required
if (d_bz_input > -990) {

Check failure on line 427 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
d_bz = d_bz_input;
o2::parameters::GRPMagField grpmag;
if (std::fabs(d_bz) > 1e-5) {

Check failure on line 430 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
grpmag.setL3Current(30000.f / (d_bz / 5.0f));
}
mRunNumber = collision.runNumber();
Expand All @@ -435,10 +435,11 @@
}

auto run3grp_timestamp = collision.timestamp();
o2::parameters::GRPObject* grpo = 0x0;
o2::parameters::GRPMagField* grpmag = 0x0;
if (!skipGRPOquery)
o2::parameters::GRPObject* grpo = nullptr;
o2::parameters::GRPMagField* grpmag = nullptr;
if (!skipGRPOquery) {
grpo = ccdb->getForTimeStamp<o2::parameters::GRPObject>(grpPath, run3grp_timestamp);
}
if (grpo) {
// Fetch magnetic field from ccdb for current collision
d_bz = grpo->getNominalL3Field();
Expand All @@ -459,9 +460,9 @@
~Pi0EtaToGammaGamma()
{
delete emh1;
emh1 = 0x0;
emh1 = nullptr;
delete emh2;
emh2 = 0x0;
emh2 = nullptr;

used_photonIds_per_col.clear();
used_photonIds_per_col.shrink_to_fit();
Expand Down Expand Up @@ -522,8 +523,7 @@
fV0PhotonCut.SetNClassesMl(pcmcuts.cfg_nclasses_ml);
fV0PhotonCut.SetMlTimestampCCDB(pcmcuts.cfg_timestamp_ccdb);
fV0PhotonCut.SetCcdbUrl(ccdburl);
CentType mCentralityTypeMlEnum;
mCentralityTypeMlEnum = static_cast<CentType>(cfgCentEstimator.value);
auto mCentralityTypeMlEnum = static_cast<CentType>(cfgCentEstimator.value);
fV0PhotonCut.SetCentralityTypeMl(mCentralityTypeMlEnum);
fV0PhotonCut.SetCutDirMl(pcmcuts.cfg_cut_dir_ml);
fV0PhotonCut.SetMlModelPathsCCDB(pcmcuts.cfg_model_paths_ccdb);
Expand Down Expand Up @@ -617,9 +617,7 @@
int iRowLast = 24;
if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::EMCAL_HALF) {
iRowLast /= 2; // 2/3 sm case
} else if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::EMCAL_THIRD) {
iRowLast /= 3; // 1/3 sm case
} else if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::DCAL_EXT) {
} else if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::EMCAL_THIRD || emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::DCAL_EXT) {
iRowLast /= 3; // 1/3 sm case
}

Expand All @@ -638,7 +636,7 @@
void RotationBackground(const ROOT::Math::PtEtaPhiMVector& meson, ROOT::Math::PtEtaPhiMVector photon1, ROOT::Math::PtEtaPhiMVector photon2, TPhotons const& photons_coll, unsigned int ig1, unsigned int ig2, float eventWeight)
{
// if less than 3 clusters are present skip event since we need at least 3 clusters
if (photons_coll.size() < 3) {

Check failure on line 639 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
return;
}
const float rotationAngle = o2::constants::math::PIHalf; // rotaion angle 90 degree
Expand Down Expand Up @@ -693,7 +691,6 @@
fRegistry.fill(HIST("Pair/rotation/hs"), mother2.M(), mother2.Pt(), eventWeight);
}
}
return;
}

/// \brief function to run the photon pairing
Expand Down Expand Up @@ -732,7 +729,7 @@
continue;
}

const float centralities[3] = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
const std::array<float, 3> centralities = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
fV0PhotonCut.SetCentrality(centralities[cfgCentEstimator]);
if (centralities[cfgCentEstimator] < cfgCentMin || cfgCentMax < centralities[cfgCentEstimator]) {
continue;
Expand All @@ -749,7 +746,7 @@
int zbin = lower_bound(zvtx_bin_edges.begin(), zvtx_bin_edges.end(), collision.posZ()) - zvtx_bin_edges.begin() - 1;
if (zbin < 0) {
zbin = 0;
} else if (static_cast<int>(zvtx_bin_edges.size()) - 2 < zbin) {

Check failure on line 749 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
zbin = static_cast<int>(zvtx_bin_edges.size()) - 2;
}

Expand All @@ -757,7 +754,7 @@
int centbin = lower_bound(cent_bin_edges.begin(), cent_bin_edges.end(), centrality) - cent_bin_edges.begin() - 1;
if (centbin < 0) {
centbin = 0;
} else if (static_cast<int>(cent_bin_edges.size()) - 2 < centbin) {

Check failure on line 757 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
centbin = static_cast<int>(cent_bin_edges.size()) - 2;
}

Expand All @@ -765,14 +762,12 @@
int epbin = lower_bound(ep_bin_edges.begin(), ep_bin_edges.end(), ep2) - ep_bin_edges.begin() - 1;
if (epbin < 0) {
epbin = 0;
} else if (static_cast<int>(ep_bin_edges.size()) - 2 < epbin) {

Check failure on line 765 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
epbin = static_cast<int>(ep_bin_edges.size()) - 2;
}

int occbin = -1;
if (cfgOccupancyEstimator == 0) {
occbin = lower_bound(occ_bin_edges.begin(), occ_bin_edges.end(), collision.ft0cOccupancyInTimeRange()) - occ_bin_edges.begin() - 1;
} else if (cfgOccupancyEstimator == 1) {
if (cfgOccupancyEstimator == 1) {
occbin = lower_bound(occ_bin_edges.begin(), occ_bin_edges.end(), collision.trackOccupancyInTimeRange()) - occ_bin_edges.begin() - 1;
} else {
occbin = lower_bound(occ_bin_edges.begin(), occ_bin_edges.end(), collision.ft0cOccupancyInTimeRange()) - occ_bin_edges.begin() - 1;
Expand All @@ -780,7 +775,7 @@

if (occbin < 0) {
occbin = 0;
} else if (static_cast<int>(occ_bin_edges.size()) - 2 < occbin) {

Check failure on line 778 in PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
occbin = static_cast<int>(occ_bin_edges.size()) - 2;
}

Expand Down
31 changes: 16 additions & 15 deletions PWGEM/PhotonMeson/Core/Pi0EtaToGammaGammaMC.h
Original file line number Diff line number Diff line change
Expand Up @@ -228,16 +228,16 @@ struct Pi0EtaToGammaGammaMC {
o2::framework::Configurable<float> cfg_min_Ecluster{"cfg_min_Ecluster", 0.3, "Minimum cluster energy for PHOS in GeV"};
} phoscuts;

TF1* f1fd_k0s_to_pi0;
TF1* f1fd_k0s_to_pi0 = nullptr;
o2::framework::HistogramRegistry fRegistry{"output", {}, o2::framework::OutputObjHandlingPolicy::AnalysisObject, false, false};
// static constexpr std::string_view event_types[2] = {"before/", "after/"};
// static constexpr std::string_view event_pair_types[2] = {"same/", "mix/"};
static constexpr std::string_view kParnames[2] = {"Pi0/", "Eta/"};
static constexpr std::array<std::string_view, 2> kParnames = {"Pi0/", "Eta/"};

o2::ccdb::CcdbApi ccdbApi;
o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb;
int mRunNumber;
float d_bz;
o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb{};
int mRunNumber = 0;
float d_bz = 0;

void init(o2::framework::InitContext&)
{
Expand Down Expand Up @@ -291,10 +291,11 @@ struct Pi0EtaToGammaGammaMC {
}

auto run3grp_timestamp = collision.timestamp();
o2::parameters::GRPObject* grpo = 0x0;
o2::parameters::GRPMagField* grpmag = 0x0;
if (!skipGRPOquery)
o2::parameters::GRPObject* grpo = nullptr;
o2::parameters::GRPMagField* grpmag = nullptr;
if (!skipGRPOquery) {
grpo = ccdb->getForTimeStamp<o2::parameters::GRPObject>(grpPath, run3grp_timestamp);
}
if (grpo) {
// Fetch magnetic field from ccdb for current collision
d_bz = grpo->getNominalL3Field();
Expand All @@ -315,7 +316,7 @@ struct Pi0EtaToGammaGammaMC {
~Pi0EtaToGammaGammaMC()
{
delete f1fd_k0s_to_pi0;
f1fd_k0s_to_pi0 = 0x0;
f1fd_k0s_to_pi0 = nullptr;
}

void DefineEMEventCut()
Expand Down Expand Up @@ -370,8 +371,7 @@ struct Pi0EtaToGammaGammaMC {
fV0PhotonCut.SetNClassesMl(pcmcuts.cfg_nclasses_ml);
fV0PhotonCut.SetMlTimestampCCDB(pcmcuts.cfg_timestamp_ccdb);
fV0PhotonCut.SetCcdbUrl(ccdburl);
CentType mCentralityTypeMlEnum;
mCentralityTypeMlEnum = static_cast<CentType>(cfgCentEstimator.value);
auto mCentralityTypeMlEnum = static_cast<CentType>(cfgCentEstimator.value);
fV0PhotonCut.SetCentralityTypeMl(mCentralityTypeMlEnum);
fV0PhotonCut.SetCutDirMl(pcmcuts.cfg_cut_dir_ml);
fV0PhotonCut.SetMlModelPathsCCDB(pcmcuts.cfg_model_paths_ccdb);
Expand Down Expand Up @@ -597,7 +597,7 @@ struct Pi0EtaToGammaGammaMC {
continue;
}

const float centralities[3] = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
const std::array<float, 3> centralities = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
fV0PhotonCut.SetCentrality(centralities[cfgCentEstimator]);
if (centralities[cfgCentEstimator] < cfgCentMin || cfgCentMax < centralities[cfgCentEstimator]) {
continue;
Expand Down Expand Up @@ -730,10 +730,11 @@ struct Pi0EtaToGammaGammaMC {
}

if (g1mc.globalIndex() == g2mc.globalIndex()) {
if (o2::aod::pwgem::dilepton::utils::mcutil::getMotherPDGCode(g1mc, mcparticles) == PDG_t::kPi0)
if (o2::aod::pwgem::dilepton::utils::mcutil::getMotherPDGCode(g1mc, mcparticles) == PDG_t::kPi0) {
fRegistry.fill(HIST("Pair/Pi0/hs_FromSameGamma"), v12.M(), v12.Pt(), wpair);
else if (o2::aod::pwgem::dilepton::utils::mcutil::getMotherPDGCode(g1mc, mcparticles) == o2::constants::physics::Pdg::kEta)
} else if (o2::aod::pwgem::dilepton::utils::mcutil::getMotherPDGCode(g1mc, mcparticles) == o2::constants::physics::Pdg::kEta) {
fRegistry.fill(HIST("Pair/Eta/hs_FromSameGamma"), v12.M(), v12.Pt(), wpair);
}
continue;
}

Expand Down Expand Up @@ -951,7 +952,7 @@ struct Pi0EtaToGammaGammaMC {
continue;
}

float centralities[3] = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
std::array<float, 3> centralities = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
if (centralities[cfgCentEstimator] < cfgCentMin || cfgCentMax < centralities[cfgCentEstimator]) {
continue;
}
Expand Down
8 changes: 4 additions & 4 deletions PWGEM/PhotonMeson/Core/V0PhotonCut.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ void V0PhotonCut::SetAPRange(float max_alpha, float max_qt)
}
void V0PhotonCut::SetMaxMeePsiPairDep(std::function<float(float)> psiDepCut)
{
mMaxMeePsiPairDep = psiDepCut;
mMaxMeePsiPairDep = std::move(psiDepCut);
LOG(info) << "V0 Photon Cut, set max mee psi pair dep: " << mMaxMeePsiPairDep(0.1);
}
void V0PhotonCut::SetRxyRange(float min, float max, float midL, float midH)
Expand Down Expand Up @@ -209,7 +209,7 @@ void V0PhotonCut::SetMaxDcaZ(float maxDcaZ)

void V0PhotonCut::SetMaxDcaXYPtDep(std::function<float(float)> ptDepCut)
{
mMaxDcaXYPtDep = ptDepCut;
mMaxDcaXYPtDep = std::move(ptDepCut);
LOG(info) << "V0 Photon Cut, set max DCA xy pt dep: " << mMaxDcaXYPtDep(1.0);
}

Expand Down Expand Up @@ -341,9 +341,9 @@ void V0PhotonCut::SetNClassesMl(int nClasses)
LOG(info) << "V0 Photon Cut, set number of classes ML: " << mNClassesMl;
}

void V0PhotonCut::SetNamesInputFeatures(const std::vector<std::string>& featureNames)
void V0PhotonCut::SetNamesInputFeatures(const std::vector<std::string>& namesInputFeaturesVec)
{
mNamesInputFeatures = featureNames;
mNamesInputFeatures = namesInputFeaturesVec;
mMlInputFeatures.reserve(mNamesInputFeatures.size());
LOG(info) << "V0 Photon Cut, set ML input feature names with size:" << mNamesInputFeatures.size();
}
Expand Down
74 changes: 34 additions & 40 deletions PWGEM/PhotonMeson/Core/V0PhotonCut.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,7 @@
#include <utility>
#include <vector>

namespace o2::analysis
{

// namespace per channel
namespace em_cuts_ml
namespace o2::analysis::em_cuts_ml
{
// direction of the cut
enum CutDirection {
Expand All @@ -64,7 +60,7 @@ static constexpr int NBins = 12;
static constexpr int NBinsPt = 12;
static constexpr int NCutScores = 2;
// default values for the pT bin edges, offset by 1 from the bin numbers in cuts array
constexpr double BinsPt[NBinsPt + 1] = {
constexpr std::array<double, NBins + 1> BinsPt = {
0.,
0.25,
0.5,
Expand All @@ -78,9 +74,9 @@ constexpr double BinsPt[NBinsPt + 1] = {
20.,
50.,
100.};
const auto vecBinsPt = std::vector<double>{BinsPt, BinsPt + NBinsPt + 1};
const auto vecBinsPt = std::vector<double>{BinsPt.begin(), BinsPt.end()};
static constexpr int NBinsCent = 11;
constexpr double BinsCent[NBinsCent + 1] = {
constexpr std::array<double, NBinsCent + 1> BinsCent = {
0.,
5,
10,
Expand All @@ -93,30 +89,29 @@ constexpr double BinsCent[NBinsCent + 1] = {
80,
90,
100.};
const auto vecBinsCent = std::vector<double>{BinsCent, BinsCent + NBinsCent + 1};
const auto vecBinsCent = std::vector<double>{BinsCent.begin(), BinsCent.end()};

// default values for the ML model paths, one model per pT bin
static const std::vector<std::string> modelPaths = {
""};

// default values for the cut directions
constexpr int CutDir[NCutScores] = {CutGreater, CutSmaller};
const auto vecCutDir = std::vector<int>{CutDir, CutDir + NCutScores};
constexpr std::array<int, NCutScores> CutDir = {CutGreater, CutSmaller};
const auto vecCutDir = std::vector<int>{CutDir.begin(), CutDir.end()};

// default values for the cuts
constexpr double Cuts[NBins][NCutScores] = {
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5}};
constexpr std::array<std::array<double, NCutScores>, NBins> Cuts = {{{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5},
{0.5, 0.5}}};

// row labels
static const std::vector<std::string> labelsPt = {
Expand Down Expand Up @@ -148,9 +143,8 @@ static const std::vector<std::string> labelsCent = {

// column labels
static const std::vector<std::string> labelsCutScore = {"score background", "score primary photons"};
} // namespace em_cuts_ml

} // namespace o2::analysis
} // namespace o2::analysis::em_cuts_ml

namespace o2::analysis::em::v0
{
Expand Down Expand Up @@ -214,8 +208,8 @@ class V0PhotonCut : public TNamed
kRadAndAngle = 2
};

const std::string getName() const { return name; }
const std::string getTitle() const { return title; }
const std::string& getName() const { return name; }
const std::string& getTitle() const { return title; }

/// \brief add histograms to registry
/// \param fRegistry pointer to histogram registry
Expand Down Expand Up @@ -307,7 +301,7 @@ class V0PhotonCut : public TNamed
void fillBeforePhotonHistogram(TV0 const& v0, TLeg1 const& pos, TLeg2 const& ele, o2::framework::HistogramRegistry* fRegistry = nullptr) const
{

if (mDoQA == false || fRegistry == nullptr) {
if (!mDoQA || fRegistry == nullptr) {
return;
}

Expand Down Expand Up @@ -337,7 +331,7 @@ class V0PhotonCut : public TNamed
void fillAfterPhotonHistogram(TV0 const& v0, TLeg1 const& pos, TLeg2 const& ele, o2::framework::HistogramRegistry* fRegistry = nullptr) const
{

if (mDoQA == false || fRegistry == nullptr) {
if (!mDoQA || fRegistry == nullptr) {
return;
}

Expand Down Expand Up @@ -1018,7 +1012,7 @@ class V0PhotonCut : public TNamed
int binsNCent = static_cast<int>(mBinsCentMl.size()) - 1;
int binsN = binsNPt * binsNCent;
if (binsN * static_cast<int>(mCutDirMl.size()) != static_cast<int>(mCutsMlFlat.size())) {
LOG(fatal) << "Mismatch in number of bins and cuts provided for 2D ML application: binsN * mCutDirMl: " << int(binsN) * int(mCutDirMl.size()) << " bins vs. mCutsMlFlat: " << mCutsMlFlat.size() << " cuts";
LOG(fatal) << "Mismatch in number of bins and cuts provided for 2D ML application: binsN * mCutDirMl: " << binsN * static_cast<int>(mCutDirMl.size()) << " bins vs. mCutsMlFlat: " << mCutsMlFlat.size() << " cuts";
}
if (binsN != static_cast<int>(mOnnxFileNames.size())) {
LOG(fatal) << "Mismatch in number of bins and ONNX files provided for 2D ML application: binsN " << binsN << " bins vs. mOnnxFileNames: " << mOnnxFileNames.size() << " ONNX files";
Expand Down Expand Up @@ -1064,7 +1058,7 @@ class V0PhotonCut : public TNamed
mEmMlResponse->init();
}

const std::span<float> getBDTValue() const
std::span<float> getBDTValue() const
{
return mMlBDTScores;
}
Expand Down Expand Up @@ -1178,15 +1172,15 @@ class V0PhotonCut : public TNamed
float mMaxPCA{2.f};
float mMaxChi2KF{1e+10};
float mMaxMarginZ{7.f};
std::function<float(float)> mMaxMeePsiPairDep{}; // max mee as a function of psipair
std::function<float(float)> mMaxMeePsiPairDep; // max mee as a function of psipair
bool mIsOnWwireIB{false};
bool mIsOnWwireOB{false};
bool mRejectITSib{false};
TooCloseCuts mTooCloseType{V0PhotonCut::TooCloseCuts::kRadAndAngle}; // for TooCloseV0Cut: either squared distance between conversion points OR opening angle and deltaR
float mMinV0DistSquared{1.}; // for TooCloseV0Cut: cut value when using squared distance between conversion points
float mDeltaR{6.}; // for TooCloseV0Cut: V0PhotonCut::TooCloseCuts::kRadAndAngle when deltaR < this -> compare chi2
float mMinOpeningAngle{0.02}; // for TooCloseV0Cut: V0PhotonCut::TooCloseCuts::kRadAndAngle when opening angle < this -> compare chi2
mutable std::vector<uint8_t> mRejectMask{};
mutable std::vector<uint8_t> mRejectMask;

// ML cuts
bool mApplyMlCuts{false};
Expand All @@ -1208,9 +1202,9 @@ class V0PhotonCut : public TNamed
std::vector<double> mCutsMlFlat{std::vector<double>{0.5}};
o2::analysis::EmMlResponsePCM<float>* mEmMlResponse{nullptr};
mutable bool mIsSelectedMl{false};
mutable std::vector<float> mOutputML{};
mutable std::vector<float> mMlInputFeatures{};
mutable std::span<float> mMlBDTScores{};
mutable std::vector<float> mOutputML;
mutable std::vector<float> mMlInputFeatures;
mutable std::span<float> mMlBDTScores;
CentType mCentralityTypeMl{CentType::CentFT0C};
mutable V0PhotonCandidate mV0PhotonForMl;

Expand All @@ -1232,9 +1226,9 @@ class V0PhotonCut : public TNamed
float mMinChi2PerClusterITS{-1e10f}, mMaxChi2PerClusterITS{1e10f}; // max its fit chi2 per ITS cluster
float mMinMeanClusterSizeITS{-1e10f}, mMaxMeanClusterSizeITS{1e10f}; // max <its cluster size> x cos(Lmabda)

float mMaxDcaXY{1e10f}; // max dca in xy plane
float mMaxDcaZ{1e10f}; // max dca in z direction
std::function<float(float)> mMaxDcaXYPtDep{}; // max dca in xy plane as function of pT
float mMaxDcaXY{1e10f}; // max dca in xy plane
float mMaxDcaZ{1e10f}; // max dca in z direction
std::function<float(float)> mMaxDcaXYPtDep; // max dca in xy plane as function of pT
bool mRequireITSTPC{false};
bool mRequireITSonly{false};
bool mRequireTPConly{false};
Expand Down
Loading
Loading