Skip to content

Commit 30228a2

Browse files
authored
[PWGEM/Dilepton] reduce data size for SCT (#16468)
1 parent bfecdc7 commit 30228a2

3 files changed

Lines changed: 51 additions & 44 deletions

File tree

PWGEM/Dilepton/DataModel/dileptonTables.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -691,15 +691,16 @@ DECLARE_SOA_COLUMN(PrefilterBit, pfb, uint8_t); //!
691691
DECLARE_SOA_COLUMN(PrefilterBitDerived, pfbderived, uint16_t); //!
692692
DECLARE_SOA_COLUMN(ProbElBDT, probElBDT, float); //!
693693

694-
DECLARE_SOA_COLUMN(BDTScorePromptUINT8, bdtScorePromptUINT8, std::vector<uint8_t>); //! scaling factor is 255.
694+
// As sum of probability is 1, keeping 3 out of 4 is enough.
695+
// DECLARE_SOA_COLUMN(BDTScorePromptUINT8, bdtScorePromptUINT8, std::vector<uint8_t>); //! scaling factor is 255.
695696
DECLARE_SOA_COLUMN(BDTScorePromptHcUINT8, bdtScorePromptHcUINT8, std::vector<uint8_t>); //! scaling factor is 255.
696697
DECLARE_SOA_COLUMN(BDTScoreNonpromptHcUINT8, bdtScoreNonpromptHcUINT8, std::vector<uint8_t>); //! scaling factor is 255.
697698
DECLARE_SOA_COLUMN(BDTScoreHbUINT8, bdtScoreHbUINT8, std::vector<uint8_t>); //! scaling factor is 255.
698699
DECLARE_SOA_COLUMN(HadronType, hadronType, std::vector<uint8_t>); //! 0:track, 1:K0S, 2:Lambda, 3:AntiLambda, 4:XiMinus, 5:XiPlus, 6:OmegaMinus, 7:OmegaPlus
699700

700-
DECLARE_SOA_DYNAMIC_COLUMN(ProbaSCT, probaSCT, [](gsl::span<const uint8_t> p0, gsl::span<const uint8_t> p1, gsl::span<const uint8_t> p2, gsl::span<const uint8_t> p3, gsl::span<const uint8_t> type, const int index) -> std::array<float, 5> {
701+
DECLARE_SOA_DYNAMIC_COLUMN(ProbaSCT, probaSCT, [](gsl::span<const uint8_t> p1, gsl::span<const uint8_t> p2, gsl::span<const uint8_t> p3, gsl::span<const uint8_t> type, const int index) -> std::array<float, 5> {
701702
return std::array<float, 5>{
702-
std::nextafter(p0[index] / 255.f, std::numeric_limits<float>::infinity()),
703+
1.f - (std::nextafter(p1[index] / 255.f, std::numeric_limits<float>::infinity()) + std::nextafter(p2[index] / 255.f, std::numeric_limits<float>::infinity()) + std::nextafter(p3[index] / 255.f, std::numeric_limits<float>::infinity())),
703704
std::nextafter(p1[index] / 255.f, std::numeric_limits<float>::infinity()),
704705
std::nextafter(p2[index] / 255.f, std::numeric_limits<float>::infinity()),
705706
std::nextafter(p3[index] / 255.f, std::numeric_limits<float>::infinity()),
@@ -1024,9 +1025,9 @@ DECLARE_SOA_TABLE(EMPrimaryElectronsPrefilterBitDerived, "AOD", "PRMELPFBDERIVED
10241025
using EMPrimaryElectronPrefilterBitDerived = EMPrimaryElectronsPrefilterBitDerived::iterator;
10251026

10261027
DECLARE_SOA_TABLE(EMPrimaryElectronsBDTSCT, "AOD", "ELBDTSCT", // To be joined with EMPrimaryElectrons table at analysis level.
1027-
emprimaryelectron::BDTScorePromptUINT8, emprimaryelectron::BDTScorePromptHcUINT8, emprimaryelectron::BDTScoreNonpromptHcUINT8, emprimaryelectron::BDTScoreHbUINT8, emprimaryelectron::HadronType,
1028+
/*emprimaryelectron::BDTScorePromptUINT8,*/ emprimaryelectron::BDTScorePromptHcUINT8, emprimaryelectron::BDTScoreNonpromptHcUINT8, emprimaryelectron::BDTScoreHbUINT8, emprimaryelectron::HadronType,
10281029
emprimaryelectron::NSV<emprimaryelectron::HadronType>,
1029-
emprimaryelectron::ProbaSCT<emprimaryelectron::BDTScorePromptUINT8, emprimaryelectron::BDTScorePromptHcUINT8, emprimaryelectron::BDTScoreNonpromptHcUINT8, emprimaryelectron::BDTScoreHbUINT8, emprimaryelectron::HadronType>);
1030+
emprimaryelectron::ProbaSCT</*emprimaryelectron::BDTScorePromptUINT8,*/ emprimaryelectron::BDTScorePromptHcUINT8, emprimaryelectron::BDTScoreNonpromptHcUINT8, emprimaryelectron::BDTScoreHbUINT8, emprimaryelectron::HadronType>);
10301031
// iterators
10311032
using EMPrimaryElectronBDTSCT = EMPrimaryElectronsBDTSCT::iterator;
10321033

PWGEM/Dilepton/Tasks/taggingHFE.cxx

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -274,20 +274,23 @@ struct taggingHFE {
274274
Configurable<float> cfg_min_cospa{"cfg_min_cospa", -1e+10, "min cospa"};
275275
Configurable<float> cfg_max_lxyz{"cfg_max_lxyz", 1e+10, "min rxy for v0hadron"};
276276
Configurable<float> cfg_max_chi2PCA{"cfg_max_chi2PCA", 1.0, "max chi2 at PCA"};
277+
o2::framework::Configurable<float> cfg_max_massLH{"cfg_max_massLH", 1e+10, "max massLH in GeV/c2"}; // set hb mass. SVs whose mass is above this mass cannot be HF hadrons.
277278
} lKPairCut;
278279

279280
struct : ConfigurableGroup {
280281
std::string prefix = "lV0PairCut";
281282
Configurable<float> cfg_min_cospa{"cfg_min_cospa", -1e+10, "min cospa"};
282283
Configurable<float> cfg_max_lxyz{"cfg_max_lxyz", 1e+10, "min rxy for v0hadron"};
283284
Configurable<float> cfg_max_chi2PCA{"cfg_max_chi2PCA", 1.0, "max chi2 at PCA"};
285+
o2::framework::Configurable<float> cfg_max_massLH{"cfg_max_massLH", 1e+10, "max massLH in GeV/c2"}; // set hb mass. SVs whose mass is above this mass cannot be HF hadrons.
284286
} lV0PairCut;
285287

286288
struct : ConfigurableGroup {
287289
std::string prefix = "lCPairCut";
288290
Configurable<float> cfg_min_cospa{"cfg_min_cospa", -1e+10, "min cospa"};
289291
Configurable<float> cfg_max_lxyz{"cfg_max_lxyz", 1e+10, "min rxy for v0hadron"};
290292
Configurable<float> cfg_max_chi2PCA{"cfg_max_chi2PCA", 1.0, "max chi2 at PCA"};
293+
o2::framework::Configurable<float> cfg_max_massLH{"cfg_max_massLH", 1e+10, "max massLH in GeV/c2"}; // set hb mass. SVs whose mass is above this mass cannot be HF hadrons.
291294
} lCPairCut;
292295

293296
o2::aod::rctsel::RCTFlagsChecker rctChecker;
@@ -1727,7 +1730,7 @@ struct taggingHFE {
17271730
continue;
17281731
}
17291732

1730-
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) {
1733+
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA || lKPairCut.cfg_max_massLH < eKpair.mass) {
17311734
continue;
17321735
}
17331736

@@ -1788,7 +1791,7 @@ struct taggingHFE {
17881791
if (!eKpair.isOK) {
17891792
continue;
17901793
}
1791-
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) {
1794+
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA || lKPairCut.cfg_max_massLH < eKpair.mass) {
17921795
continue;
17931796
}
17941797

@@ -1858,7 +1861,7 @@ struct taggingHFE {
18581861
if (!eV0pair.isOK) {
18591862
continue;
18601863
}
1861-
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) {
1864+
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA || lV0PairCut.cfg_max_massLH < eV0pair.mass) {
18621865
continue;
18631866
}
18641867

@@ -1937,7 +1940,7 @@ struct taggingHFE {
19371940
if (!eV0pair.isOK) {
19381941
continue;
19391942
}
1940-
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) {
1943+
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA || lV0PairCut.cfg_max_massLH < eV0pair.mass) {
19411944
continue;
19421945
}
19431946

@@ -1999,7 +2002,7 @@ struct taggingHFE {
19992002
if (!eCpair.isOK) {
20002003
continue;
20012004
}
2002-
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) {
2005+
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA || lCPairCut.cfg_max_massLH < eCpair.mass) {
20032006
continue;
20042007
}
20052008

@@ -2067,7 +2070,7 @@ struct taggingHFE {
20672070
if (!eCpair.isOK) {
20682071
continue;
20692072
}
2070-
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) {
2073+
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA || lCPairCut.cfg_max_massLH < eCpair.mass) {
20712074
continue;
20722075
}
20732076

@@ -2163,7 +2166,7 @@ struct taggingHFE {
21632166
continue;
21642167
}
21652168

2166-
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) {
2169+
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA || lKPairCut.cfg_max_massLH < eKpair.mass) {
21672170
continue;
21682171
}
21692172

@@ -2225,7 +2228,7 @@ struct taggingHFE {
22252228
if (!eKpair.isOK) {
22262229
continue;
22272230
}
2228-
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) {
2231+
if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA || lKPairCut.cfg_max_massLH < eKpair.mass) {
22292232
continue;
22302233
}
22312234

@@ -2295,7 +2298,7 @@ struct taggingHFE {
22952298
if (!eV0pair.isOK) {
22962299
continue;
22972300
}
2298-
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) {
2301+
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA || lV0PairCut.cfg_max_massLH < eV0pair.mass) {
22992302
continue;
23002303
}
23012304

@@ -2373,7 +2376,7 @@ struct taggingHFE {
23732376
if (!eV0pair.isOK) {
23742377
continue;
23752378
}
2376-
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) {
2379+
if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA || lV0PairCut.cfg_max_massLH < eV0pair.mass) {
23772380
continue;
23782381
}
23792382

@@ -2435,7 +2438,7 @@ struct taggingHFE {
24352438
if (!eCpair.isOK) {
24362439
continue;
24372440
}
2438-
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) {
2441+
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA || lCPairCut.cfg_max_massLH < eCpair.mass) {
24392442
continue;
24402443
}
24412444

@@ -2503,7 +2506,7 @@ struct taggingHFE {
25032506
if (!eCpair.isOK) {
25042507
continue;
25052508
}
2506-
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) {
2509+
if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA || lCPairCut.cfg_max_massLH < eCpair.mass) {
25072510
continue;
25082511
}
25092512

0 commit comments

Comments
 (0)