@@ -130,12 +130,6 @@ struct qaMatching {
130130 Configurable<float> fMuonTaggingSigmaPdcaUp{"cfgMuonTaggingPdcaUp", 4.f, ""};
131131 Configurable<float> fMuonTaggingChi2DiffLow{"cfgMuonTaggingChi2DiffLow", 100.f, ""};
132132
133- /// Variables to event mixing criteria
134- Configurable<float> fSaveMixedMatchingParamsRate{"cfgSaveMixedMatchingParamsRate", 0.002f, ""};
135- Configurable<int> fEventMaxDeltaNMFT{"cfgEventMaxDeltaNMFT", 1, ""};
136- Configurable<float> fEventMaxDeltaVtxZ{"cfgEventMaxDeltaVtxZ", 1.f, ""};
137- Configurable<int> fEventMinDeltaBc{"cfgEventMinDeltaBc", 500, ""};
138-
139133 //// Variables for ccdb
140134 Configurable<std::string> ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
141135 Configurable<std::string> grpPath{"grpPath", "GLO/GRP/GRP", "Path of the grp file"};
@@ -156,7 +150,8 @@ struct qaMatching {
156150 } fConfigQAs;
157151
158152 /// Variables for histograms configuration
159- Configurable<int> fNCandidatesMax{"nCandidatesMax", 5, ""};
153+ Configurable<int> fNCandidatesMax{"cfgNCandidatesMax", 5, "Number of matching candidates stored for each muon track"};
154+ Configurable<int> fMftTrackMultiplicityMax{"cfgMftTrackMultiplicityMax", 1000, "Maximum number of MFT tracks per collision"};
160155
161156 double mBzAtMftCenter{0};
162157
@@ -451,19 +446,19 @@ struct qaMatching {
451446 o2::framework::HistPtr histVsDeltaChi2;
452447 o2::framework::HistPtr histVsProdRanking;
453448
454- MatchRankingHistos(std::string histName, std::string histTitle, HistogramRegistry* registry)
449+ MatchRankingHistos(std::string histName, std::string histTitle, HistogramRegistry* registry, int mftMultMax, int numCandidates )
455450 {
456451 AxisSpec pAxis = {100, 0, 100, "p (GeV/c)"};
457452 AxisSpec ptAxis = {100, 0, 10, "p_{T} (GeV/c)"};
458453 AxisSpec dzAxis = {100, 0, 50, "#Deltaz (cm)"};
459- AxisSpec trackMultAxis = {100 , 0, 1000 , "MFT track mult."};
454+ AxisSpec trackMultAxis = {static_cast<int>(mftMultMax) / 10 , 0, static_cast<double>(mftMultMax) , "MFT track mult."};
460455 AxisSpec trackTypeAxis = {2, 0, 2, "MFT track type"};
461456 int matchTypeMax = static_cast<int>(kMatchTypeUndefined);
462457 AxisSpec matchTypeAxis = {matchTypeMax, 0, static_cast<double>(matchTypeMax), "match type"};
463458 AxisSpec dchi2Axis = {100, 0, 100, "#Delta#chi^{2}"};
464459 AxisSpec dqAxis = {3, -1.5, 1.5, "MFT #DeltaQ"};
465- AxisSpec indexAxis = {6 , 0, 6 , "ranking index"};
466- AxisSpec indexProdAxis = {6 , 0, 6 , "ranking index (production)"};
460+ AxisSpec indexAxis = {numCandidates + 1 , 0, static_cast<double>(numCandidates + 1) , "ranking index"};
461+ AxisSpec indexProdAxis = {numCandidates + 1 , 0, static_cast<double>(numCandidates + 1) , "ranking index (production)"};
467462
468463 hist = registry->add(histName.c_str(), histTitle.c_str(), {HistType::kTH1F, {indexAxis}});
469464 histVsP = registry->add((histName + "VsP").c_str(), (histTitle + " vs. p").c_str(), {HistType::kTH2F, {pAxis, indexAxis}});
@@ -529,7 +524,10 @@ struct qaMatching {
529524 HistogramRegistry* registry;
530525
531526 MatchingPlotter(std::string path,
532- HistogramRegistry* reg, bool createPdgMomHistograms)
527+ HistogramRegistry* reg,
528+ bool createPdgMomHistograms,
529+ int mftMultMax,
530+ int numCandidates)
533531 : fMatchingPurityPlotter(path + "matching-purity/", "Matching purity", *reg, createPdgMomHistograms),
534532 fPairingEfficiencyPlotter(path + "pairing-efficiency/", "Pairing efficiency", *reg, createPdgMomHistograms),
535533 fMatchingEfficiencyPlotter(path + "matching-efficiency/", "Matching efficiency", *reg, createPdgMomHistograms),
@@ -544,10 +542,10 @@ struct qaMatching {
544542 std::string histName = path + "matchRanking";
545543 std::string histTitle = "True match ranking";
546544
547- fMatchRanking = std::make_unique<MatchRankingHistos>(path + "matchRanking", "True match ranking", registry);
548- fMatchRankingGoodMCH = std::make_unique<MatchRankingHistos>(path + "matchRankingGoodMCH", "True match ranking (good MCH tracks)", registry);
549- fMatchRankingPaired = std::make_unique<MatchRankingHistos>(path + "matchRankingPaired", "True match ranking (paired MCH tracks)", registry);
550- fMatchRankingPairedGoodMCH = std::make_unique<MatchRankingHistos>(path + "matchRankingPairedGoodMCH", "True match ranking (good paired MCH tracks)", registry);
545+ fMatchRanking = std::make_unique<MatchRankingHistos>(path + "matchRanking", "True match ranking", registry, mftMultMax, numCandidates );
546+ fMatchRankingGoodMCH = std::make_unique<MatchRankingHistos>(path + "matchRankingGoodMCH", "True match ranking (good MCH tracks)", registry, mftMultMax, numCandidates );
547+ fMatchRankingPaired = std::make_unique<MatchRankingHistos>(path + "matchRankingPaired", "True match ranking (paired MCH tracks)", registry, mftMultMax, numCandidates );
548+ fMatchRankingPairedGoodMCH = std::make_unique<MatchRankingHistos>(path + "matchRankingPairedGoodMCH", "True match ranking (good paired MCH tracks)", registry, mftMultMax, numCandidates );
551549
552550 //-
553551 AxisSpec missedMatchAxis = {5, 0, 5, ""};
@@ -759,19 +757,19 @@ struct qaMatching {
759757 registry.add((histPath + "selectedMCHTracksAtMFTTrue").c_str(), "Selected MCH tracks position at MFT end - true", {HistType::kTH2F, {trackPositionXAtMFTAxis, trackPositionYAtMFTAxis}});
760758 registry.add((histPath + "selectedMCHTracksAtMFTFake").c_str(), "Selected MCH tracks position at MFT end - fake", {HistType::kTH2F, {trackPositionXAtMFTAxis, trackPositionYAtMFTAxis}});
761759
762- fChi2MatchingPlotter = std::make_unique<MatchingPlotter>(histPath + "Prod/", ®istryMatching, fConfigQAs.fCreatePdgMomHistograms);
760+ fChi2MatchingPlotter = std::make_unique<MatchingPlotter>(histPath + "Prod/", ®istryMatching, fConfigQAs.fCreatePdgMomHistograms, fMftTrackMultiplicityMax, fNCandidatesMax );
763761 int registryIndex = 0;
764762 for (const auto& [label, func] : matchingChi2Functions) {
765- fMatchingPlotters[label] = std::make_unique<MatchingPlotter>(histPath + label + "/", registryMatchingVec[registryIndex], fConfigQAs.fCreatePdgMomHistograms);
763+ fMatchingPlotters[label] = std::make_unique<MatchingPlotter>(histPath + label + "/", registryMatchingVec[registryIndex], fConfigQAs.fCreatePdgMomHistograms, fMftTrackMultiplicityMax, fNCandidatesMax );
766764 registryIndex += 1;
767765 }
768766 for (const auto& [label, response] : matchingMlResponses) {
769- fMatchingPlotters[label] = std::make_unique<MatchingPlotter>(histPath + label + "/", (registryMatchingVec[registryIndex]), fConfigQAs.fCreatePdgMomHistograms);
767+ fMatchingPlotters[label] = std::make_unique<MatchingPlotter>(histPath + label + "/", (registryMatchingVec[registryIndex]), fConfigQAs.fCreatePdgMomHistograms, fMftTrackMultiplicityMax, fNCandidatesMax );
770768 registryIndex += 1;
771769 }
772770
773- fTaggedMuonsMatchingPlotter = std::make_unique<MatchingPlotter>(histPath + "Tagged/", ®istryMatching, fConfigQAs.fCreatePdgMomHistograms);
774- fSelectedMuonsMatchingPlotter = std::make_unique<MatchingPlotter>(histPath + "Selected/", ®istryMatching, fConfigQAs.fCreatePdgMomHistograms);
771+ fTaggedMuonsMatchingPlotter = std::make_unique<MatchingPlotter>(histPath + "Tagged/", ®istryMatching, fConfigQAs.fCreatePdgMomHistograms, fMftTrackMultiplicityMax, fNCandidatesMax );
772+ fSelectedMuonsMatchingPlotter = std::make_unique<MatchingPlotter>(histPath + "Selected/", ®istryMatching, fConfigQAs.fCreatePdgMomHistograms, fMftTrackMultiplicityMax, fNCandidatesMax );
775773 }
776774
777775 void CreateDimuonHistos()
@@ -979,7 +977,7 @@ struct qaMatching {
979977 AxisSpec trackTypeAxis = {static_cast<int>(nTrackTypes), 0.0, static_cast<double>(nTrackTypes), "track type"};
980978 registry.add("nTracksPerType", "Number of tracks per type", {HistType::kTH1F, {trackTypeAxis}});
981979
982- AxisSpec tracksMultiplicityAxis = {10000 , 0, 10000 , "tracks multiplicity"};
980+ AxisSpec tracksMultiplicityAxis = {fMftTrackMultiplicityMax , 0, static_cast<double>(fMftTrackMultiplicityMax) , "tracks multiplicity"};
983981 registry.add("tracksMultiplicityMFT", "MFT tracks multiplicity", {HistType::kTH1F, {tracksMultiplicityAxis}});
984982 registry.add("tracksMultiplicityMCH", "MCH tracks multiplicity", {HistType::kTH1F, {tracksMultiplicityAxis}});
985983
@@ -2674,7 +2672,7 @@ struct qaMatching {
26742672 }
26752673 }
26762674
2677- PROCESS_SWITCH(qaMatching, processQAMC, "process qa MC ", true);
2675+ PROCESS_SWITCH(qaMatching, processQAMC, "processQAMC ", true);
26782676};
26792677
26802678WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
0 commit comments