diff --git a/PWGCF/Femto/Core/cascadeBuilder.h b/PWGCF/Femto/Core/cascadeBuilder.h index 8e278388adf..0843bfdc1f2 100644 --- a/PWGCF/Femto/Core/cascadeBuilder.h +++ b/PWGCF/Femto/Core/cascadeBuilder.h @@ -66,6 +66,8 @@ struct ConfCascadeFilters : o2::framework::ConfigurableGroup { #define CASCADE_DEFAULT_BITS \ o2::framework::Configurable passThrough{"passThrough", false, "If true, all Cascades are passed through. Bits for all selections are stored."}; \ o2::framework::Configurable> cascadeCpaMin{"cascadeCpaMin", {0.95f}, "Minimum cosine of pointing angle"}; \ + o2::framework::Configurable cascadeCpaPtDependent{"cascadeCpaPtDependent", false, "If true, use cascadeCpaMinFormula instead of cascadeCpaMin"}; \ + o2::framework::Configurable> cascadeCpaMinFormula{"cascadeCpaMinFormula", {"0.95"}, "Minimum CPA as TFormula, x=pt"}; \ o2::framework::Configurable> cascadeTransRadMin{"cascadeTransRadMin", {0.9f}, "Minimum transverse radius (cm)"}; \ o2::framework::Configurable> cascadeDcaDauMax{"cascadeDcaDauMax", {0.25f}, "Maximum DCA between the daughters at decay vertex (cm)"}; \ o2::framework::Configurable> lambdaCpaMin{"lambdaCpaMin", {0.78f}, "Minimum cosine of pointing angle"}; \ @@ -243,6 +245,7 @@ class CascadeSelection : public baseselection::BaseSelectionaddSelection(kPosDauTof, cascadeSelectionNames.at(kPosDauTof), config.posDauTof.value, limits::kAbsUpperLimit, true, mRequireTof, false); this->addSelection(kNegDauTof, cascadeSelectionNames.at(kNegDauTof), config.negDauTof.value, limits::kAbsUpperLimit, true, mRequireTof, false); - this->addSelection(kCascadeCpaMin, cascadeSelectionNames.at(kCascadeCpaMin), config.cascadeCpaMin.value, limits::kLowerLimit, true, true, false); + if (mCpaPtDependent) { + this->addSelection(kCascadeCpaMin, cascadeSelectionNames.at(kCascadeCpaMin), filter.ptMin.value, filter.ptMax.value, config.cascadeCpaMinFormula.value, limits::kLowerFunctionLimit, true, true, false); + } else { + this->addSelection(kCascadeCpaMin, cascadeSelectionNames.at(kCascadeCpaMin), config.cascadeCpaMin.value, limits::kLowerLimit, true, true, false); + } this->addSelection(kCascadeTransRadMin, cascadeSelectionNames.at(kCascadeTransRadMin), config.cascadeTransRadMin.value, limits::kLowerLimit, true, true, false); this->addSelection(kCascadeDcaDaughMax, cascadeSelectionNames.at(kCascadeDcaDaughMax), config.cascadeDcaDauMax.value, limits::kUpperLimit, true, true, false); this->addSelection(kLambdaCpaMin, cascadeSelectionNames.at(kLambdaCpaMin), config.lambdaCpaMin.value, limits::kLowerLimit, true, true, false); @@ -307,6 +314,9 @@ class CascadeSelection : public baseselection::BaseSelectionreset(); // cascade selections + if (mCpaPtDependent) { + this->updateLimits(kCascadeCpaMin, cascade.pt()); + } this->evaluateObservable(kCascadeCpaMin, cascade.casccosPA(col.posX(), col.posY(), col.posZ())); this->evaluateObservable(kCascadeDcaDaughMax, cascade.dcacascdaughters()); this->evaluateObservable(kCascadeTransRadMin, cascade.cascradius()); @@ -489,6 +499,7 @@ class CascadeSelection : public baseselection::BaseSelection