Skip to content

Commit ab22cff

Browse files
Add options to use material LUT + add DCA fitter configurable group
1 parent 0a191a3 commit ab22cff

1 file changed

Lines changed: 23 additions & 7 deletions

File tree

PWGLF/Tasks/Strangeness/forwardlambdakzeroanalysis.cxx

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,17 @@ struct forwardlambdakzeroanalysis {
287287
// Configurable<float> gapSel{"gapSel", 2, "Gap selection"};
288288
} upcCuts;
289289

290+
// DCA fitter configurations
291+
struct : ConfigurableGroup {
292+
std::string prefix = "fitterConfigurations"; // JSON group name
293+
Configurable<bool> propagateToPCA{"propagateToPCA", true, "Propagate to PCA?"};
294+
Configurable<float> minParamChange{"minParamChange", 4., "Stop minimization iterations if largest change of any X is smaller than this."};
295+
Configurable<float> minRelChi2Change{"minRelChi2Change", 0.9, "Stop iterations is chi2/chi2old > this"};
296+
Configurable<bool> useAbsDCA{"useAbsDCA", true, "Use abs. distance minimization rather than chi2"};
297+
Configurable<bool> useLUTMatCorr{"useLUTMatCorr", true, "Use material LUT correction, instead of TGeo material correction or no material correction."};
298+
Configurable<bool> useTGeoMatCorr{"useTGeoMatCorr", false, "Use material TGeo correction, instead of LUT material correction or no material correction."};
299+
} fitterConfigurations;
300+
290301
o2::base::MatLayerCylSet* lut; // material LUT for DCA fitter
291302
o2::vertexing::FwdDCAFitterN<2> fitter;
292303

@@ -951,20 +962,22 @@ struct forwardlambdakzeroanalysis {
951962
histos.add("h2dGenAntiD0VsMultMC", "h2dGenAntiD0VsMultMC", kTH2D, {axisConfigurations.axisNch, axisConfigurations.axisPt});
952963
}
953964

965+
if (fitterConfigurations.useLUTMatCorr || fitterConfigurations.useTGeoMatCorr) {
966+
LOG(fatal) << "Cannot run with both useLUTMatCorr = on and useTGeoMatCorr = on. Please check your configuration!";
967+
}
968+
954969
// standards hardcoded in builder ...
955970
// ...but can be changed easily since fitter is public
956-
// standards hardcoded in builder ...
957-
// ...but can be changed easily since fitter is public
958-
fitter.setPropagateToPCA(true);
971+
fitter.setPropagateToPCA(fitterConfigurations.propagateToPCA);
959972
fitter.setMaxR(200.);
960-
fitter.setMinParamChange(4.0); // 1e-3 for DCAfitter ; 4.0 for FwdDCAfitter
961-
fitter.setMinRelChi2Change(0.9); // 0.9 for DCAfitter ; 1e-3 for FwdDCAfitter
973+
fitter.setMinParamChange(fitterConfigurations.minParamChange); // 1e-3 for DCAfitter ; 4.0 for FwdDCAfitter
974+
fitter.setMinRelChi2Change(fitterConfigurations.minRelChi2Change); // 0.9 for DCAfitter ; 1e-3 for FwdDCAfitter
962975
// fitter.setMaxDZIni(1e9);
963976
// fitter.setMaxDXYIni(4.0f);
964977
// fitter.setMaxChi2(1e9);
965-
fitter.setUseAbsDCA(true);
978+
fitter.setUseAbsDCA(fitterConfigurations.useAbsDCA);
966979
// fitter.setWeightedFinalPCA(false);
967-
fitter.setTGeoMat(false);
980+
fitter.setTGeoMat(fitterConfigurations.useTGeoMatCorr);
968981
// LUT has to be loaded later
969982
lut = nullptr;
970983
// fitter.setMatCorrType(o2::base::Propagator::MatCorrType::USEMatCorrLUT);
@@ -1050,6 +1063,9 @@ struct forwardlambdakzeroanalysis {
10501063
LOG(info) << "Setting global propagator material propagation LUT";
10511064
o2::base::Propagator::Instance()->setMatLUT(lut);
10521065

1066+
if (fitterConfigurations.useLUTMatCorr) {
1067+
fitter.setMatLUT(lut);
1068+
}
10531069
fitter.setBz(magField);
10541070
}
10551071

0 commit comments

Comments
 (0)