From cb9b3e625cc67ae45f84d15296676256076fe5b5 Mon Sep 17 00:00:00 2001 From: "se.gorbunov" <se.gorbunov@gsi.de> Date: Wed, 6 Mar 2024 01:01:14 +0000 Subject: [PATCH] BBA: exclude hits from the fit when calculating residuals --- reco/alignment/CbmBbaAlignmentTask.cxx | 34 +++++++++++++++----------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/reco/alignment/CbmBbaAlignmentTask.cxx b/reco/alignment/CbmBbaAlignmentTask.cxx index 807ff71c70..c8d4f6f4c4 100644 --- a/reco/alignment/CbmBbaAlignmentTask.cxx +++ b/reco/alignment/CbmBbaAlignmentTask.cxx @@ -184,7 +184,7 @@ InitStatus CbmBbaAlignmentTask::Init() fHistoDir->mkdir(n1); fHistoDir->cd(n1); - int nBins = 1000; + int nBins = 100; double sizeX = 0.1; double sizeY = 0.1; @@ -199,12 +199,12 @@ InitStatus CbmBbaAlignmentTask::Init() if (i == -1) { sizeX = 20.; sizeY = 20.; - sizePX = 100.; - sizePY = 100.; + sizePX = 20.; + sizePY = 20.; } if (i == 0 || i == 1) { - sizeX = 0.1; + sizeX = 1.0; sizeY = 1.0; } if (i == 2) { @@ -212,14 +212,14 @@ InitStatus CbmBbaAlignmentTask::Init() sizeY = 5.; } if (i == 3) { - sizeX = 10.; + sizeX = 5.; sizeY = 20.; - sizePX = 100.; + sizePX = 10.; } if (i == 4) { - sizeX = 20.; + sizeX = 5.; sizeY = 10.; - sizePY = 100.; + sizePY = 10.; } if (i >= 5) { sizeX = 5.; @@ -600,9 +600,12 @@ void CbmBbaAlignmentTask::Finish() if (!t.fIsActive) continue; // calculate the residuals for all tracks at each fitNode before alignment for (unsigned int in = 0; in < t.fAlignedTrack.fNodes.size(); in++) { - CbmKfTrackFitter::FitNode& node = t.fAlignedTrack.fNodes[in]; - - if (!node.fIsFitted || !node.fIsXySet) continue; + CbmKfTrackFitter::Track tr = t.fAlignedTrack; + CbmKfTrackFitter::FitNode& node = tr.fNodes[in]; + if (!node.fIsXySet) continue; + node.fIsXySet = false; + tr.MakeConsistent(); + fFitter.FitTrack(tr); Sensor& s = fSensors[node.fReference1]; @@ -663,9 +666,12 @@ void CbmBbaAlignmentTask::Finish() if (!t.fIsActive) continue; // calculate the residuals for all tracks at each fitNode before alignment for (unsigned int in = 0; in < t.fAlignedTrack.fNodes.size(); in++) { - CbmKfTrackFitter::FitNode& node = t.fAlignedTrack.fNodes[in]; - - if (!node.fIsFitted || !node.fIsXySet) continue; + CbmKfTrackFitter::Track tr = t.fAlignedTrack; + CbmKfTrackFitter::FitNode& node = tr.fNodes[in]; + if (!node.fIsXySet) continue; + node.fIsXySet = false; + tr.MakeConsistent(); + fFitter.FitTrack(tr); Sensor& s = fSensors[node.fReference1]; -- GitLab