Skip to content

Commit b34d08b

Browse files
lhusovaLucia Anna Tarasovicova
andauthored
[PWGLF] Update the cosPA pt dep selection (#17373)
Co-authored-by: Lucia Anna Tarasovicova <lucia.anna.husova@cern.ch>
1 parent 26fcae3 commit b34d08b

1 file changed

Lines changed: 45 additions & 4 deletions

File tree

PWGLF/Tasks/Strangeness/derivedcascadeanalysis.cxx

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ struct Derivedcascadeanalysis {
8585
Configurable<int> nPtBinsForNsigmaTPC{"nPtBinsForNsigmaTPC", 100, ""};
8686
Configurable<std::string> irSource{"irSource", "T0VTX", "Estimator of the interaction rate (Recommended: pp --> T0VTX, Pb-Pb --> ZNC hadronic)"};
8787
Configurable<std::string> ccdburl{"ccdburl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
88+
Configurable<std::string> histoCCDBPath{"histoCCDBPath", "Users/l/lhusova/LHC2025/PointingAngleSelection", "Path for the selection histograms in the CCDB"};
8889

8990
o2::aod::rctsel::RCTFlagsChecker rctFlagsChecker{rctConfigurations.cfgRCTLabel.value};
9091

@@ -201,6 +202,7 @@ struct Derivedcascadeanalysis {
201202
Configurable<bool> doAtLeastOneTrackAB{"doAtLeastOneTrackAB", false, "require that at least one of the daughter tracks is from Afterburner"};
202203
Configurable<bool> doBachelorITSTracking{"doBachelorITSTracking", false, "require that the bachelor track is from the ITS tracking"};
203204
Configurable<bool> doAllTracksMinITSClusters{"doAllTracksMinITSClusters", false, "require that all daughter tracks have minimal ITS hits"};
205+
Configurable<bool> useInterpolationForCosPACut{"useInterpolationForCosPACut", true, "use interpolation for pt dependent cosPA cut"};
204206
} candidateSelectionFlags;
205207

206208
struct : ConfigurableGroup {
@@ -256,6 +258,11 @@ struct Derivedcascadeanalysis {
256258
Configurable<float> dcaCacsDauPtSelectionHigh{"dcaCacsDauPtSelectionHigh", 4.0, "high pt selection for range where DCA selection changes to Par2"};
257259
} candidateSelectionValues;
258260

261+
TH1F* hXiPointingAngleSelection = nullptr;
262+
TH1F* hOmegaPointingAngleSelection = nullptr;
263+
TH1F* hXiLambdaPointingAngleSelection = nullptr;
264+
TH1F* hOmegaLambdaPointingAngleSelection = nullptr;
265+
259266
o2::ccdb::CcdbApi ccdbApi;
260267
Service<o2::ccdb::BasicCCDBManager> ccdb;
261268
ctpRateFetcher rateFetcher;
@@ -574,6 +581,20 @@ struct Derivedcascadeanalysis {
574581
}
575582
}
576583
}
584+
void initCosPASelectionHistograms(float timeStamp)
585+
{
586+
587+
auto* listHistograms = ccdb->getForTimeStamp<TList>(histoCCDBPath, timeStamp);
588+
589+
if (!listHistograms) {
590+
LOG(fatal) << "Problem getting TList object with histograms!";
591+
}
592+
593+
hOmegaLambdaPointingAngleSelection = dynamic_cast<TH1F*>(listHistograms->FindObject("hOmegaLambdaPointingAngleSelection"));
594+
hXiPointingAngleSelection = dynamic_cast<TH1F*>(listHistograms->FindObject("hXiPointingAngleSelection"));
595+
hOmegaPointingAngleSelection = dynamic_cast<TH1F*>(listHistograms->FindObject("hOmegaPointingAngleSelection"));
596+
hXiLambdaPointingAngleSelection = dynamic_cast<TH1F*>(listHistograms->FindObject("hXiLambdaPointingAngleSelection"));
597+
}
577598
// Return slicing output
578599
template <bool run3, typename TCollisions>
579600
auto getGroupedCollisions(TCollisions const& collisions, int globalIndex)
@@ -590,12 +611,28 @@ struct Derivedcascadeanalysis {
590611

591612
if (ptdepcut) {
592613
double ptdepCut = -1;
593-
if (isCascPa) {
594-
ptdepCut = candidateSelectionValues.cosPApar0 + candidateSelectionValues.cosPApar1 * casc.pt();
614+
if (candidateSelectionFlags.useInterpolationForCosPACut) {
615+
if (isCascPa) {
616+
if (isXi) {
617+
ptdepCut = hXiPointingAngleSelection->Interpolate(casc.pt());
618+
} else {
619+
ptdepCut = hOmegaPointingAngleSelection->Interpolate(casc.pt());
620+
}
621+
} else {
622+
if (isXi) {
623+
ptdepCut = hXiLambdaPointingAngleSelection->Interpolate(casc.pt());
624+
} else {
625+
ptdepCut = hOmegaLambdaPointingAngleSelection->Interpolate(casc.pt());
626+
}
627+
}
595628
} else {
596-
ptdepCut = candidateSelectionValues.v0cosPApar0 + candidateSelectionValues.v0cosPApar1 * casc.pt();
629+
if (isCascPa) {
630+
ptdepCut = candidateSelectionValues.cosPApar0 + candidateSelectionValues.cosPApar1 * casc.pt();
631+
} else {
632+
ptdepCut = candidateSelectionValues.v0cosPApar0 + candidateSelectionValues.v0cosPApar1 * casc.pt();
633+
}
597634
}
598-
if (ptdepCut > candidateSelectionValues.ptdepCosPACutMaxValue && casc.pt() < candidateSelectionValues.minPtForCosPAcut) {
635+
if (ptdepCut > candidateSelectionValues.ptdepCosPACutMaxValue) {
599636
ptdepCut = candidateSelectionValues.ptdepCosPACutMaxValue;
600637
}
601638
if (ptdepCut < candidateSelectionValues.ptdepCosPACutMinValue) {
@@ -1209,6 +1246,10 @@ struct Derivedcascadeanalysis {
12091246
float nChEta1 = -1;
12101247
float occupancy = -2;
12111248

1249+
if (candidateSelectionFlags.useInterpolationForCosPACut) {
1250+
initCosPASelectionHistograms(coll.timestamp());
1251+
}
1252+
12121253
if constexpr (requires { coll.centFT0C(); }) {
12131254
nChEta1 = coll.multNTracksPVeta1();
12141255
centrality = coll.centFT0C();

0 commit comments

Comments
 (0)