|
55 | 55 | #include <cmath> |
56 | 56 | #include <cstdint> |
57 | 57 | #include <iostream> |
| 58 | +#include <random> |
58 | 59 | #include <string> |
59 | 60 | #include <string_view> |
60 | 61 | #include <utility> |
@@ -94,6 +95,7 @@ struct taggingHFE { |
94 | 95 | Configurable<bool> skipGRPOquery{"skipGRPOquery", true, "skip grpo query"}; |
95 | 96 | Configurable<float> d_bz_input{"d_bz_input", -999, "bz field in kG, -999 is automatic"}; |
96 | 97 | Configurable<int> cfgPdgLepton{"cfgPdgLepton", 11, "pdg code of desired lepton: 11 or 13"}; |
| 98 | + Configurable<float> cfgDownSampling{"cfgDownSampling", 1.1, "down sampling for fake matches"}; |
97 | 99 |
|
98 | 100 | struct : ConfigurableGroup { |
99 | 101 | std::string prefix = "dcaFitterGroup_eK"; |
@@ -267,6 +269,10 @@ struct taggingHFE { |
267 | 269 | ccdb->setLocalObjectValidityChecking(); |
268 | 270 | ccdb->setFatalWhenNull(false); |
269 | 271 |
|
| 272 | + std::random_device seed_gen; |
| 273 | + engine = std::mt19937(seed_gen()); |
| 274 | + dist01 = std::uniform_real_distribution<float>(0.0f, 1.0f); |
| 275 | + |
270 | 276 | fitter_eK.setPropagateToPCA(true); |
271 | 277 | fitter_eK.setMaxR(20.f); |
272 | 278 | fitter_eK.setMinParamChange(1e-3); |
@@ -303,6 +309,9 @@ struct taggingHFE { |
303 | 309 | int mRunNumber; |
304 | 310 | float d_bz; |
305 | 311 | Service<o2::ccdb::BasicCCDBManager> ccdb; |
| 312 | + std::mt19937 engine; |
| 313 | + std::uniform_real_distribution<float> dist01; |
| 314 | + |
306 | 315 | // o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrNONE; |
307 | 316 | o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrLUT; |
308 | 317 | const o2::dataformats::MeanVertexObject* mMeanVtx = nullptr; |
@@ -970,6 +979,10 @@ struct taggingHFE { |
970 | 979 | mVtx.setPos({collision.posX(), collision.posY(), collision.posZ()}); |
971 | 980 | mVtx.setCov(collision.covXX(), collision.covXY(), collision.covYY(), collision.covXZ(), collision.covYZ(), collision.covZZ()); |
972 | 981 |
|
| 982 | + if (dist01(engine) > cfgDownSampling) { // random sampling, if necessary |
| 983 | + continue; |
| 984 | + } |
| 985 | + |
973 | 986 | const auto& trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, collision.globalIndex()); |
974 | 987 | electronIds.reserve(trackIdsThisCollision.size()); |
975 | 988 | positronIds.reserve(trackIdsThisCollision.size()); |
|
0 commit comments