From aa23332bc4b2b93311fbe8f85aceee2e2f36df3e Mon Sep 17 00:00:00 2001 From: "se.gorbunov" <se.gorbunov@gsi.de> Date: Mon, 16 Sep 2024 19:51:36 +0200 Subject: [PATCH] Ca: remove ca::FieldRegion --- algo/ca/core/CMakeLists.txt | 2 -- algo/ca/core/data/CaWindowData.h | 10 +++--- algo/ca/core/pars/CaField.cxx | 5 --- algo/ca/core/pars/CaField.h | 19 ----------- algo/ca/core/pars/CaInitManager.cxx | 6 ++-- algo/ca/core/pars/CaInitManager.h | 4 +-- algo/ca/core/pars/CaParameters.h | 16 ++++----- algo/ca/core/pars/CaStation.h | 4 +-- algo/ca/core/pars/CaStationInitializer.cxx | 2 +- algo/ca/core/tracking/CaCloneMerger.cxx | 4 +-- algo/ca/core/tracking/CaFramework.h | 1 - algo/ca/core/tracking/CaTrackExtender.cxx | 16 ++++----- algo/ca/core/tracking/CaTrackFit.cxx | 14 ++++---- algo/ca/core/tracking/CaTrackFit.h | 33 ++++++++++--------- algo/ca/core/tracking/CaTrackFitter.cxx | 16 ++++----- .../ca/core/tracking/CaTripletConstructor.cxx | 22 ++++++------- algo/ca/core/tracking/CaTripletConstructor.h | 10 +++--- algo/kf/core/data/KfMeasurementTime.h | 2 +- algo/kf/core/data/KfMeasurementU.h | 2 +- algo/kf/core/data/KfMeasurementXy.h | 2 +- reco/KF/CbmKfTrackFitter.cxx | 2 +- reco/KF/KFQA/CbmKFTrackQa.cxx | 1 - reco/KF/ParticleFitter/CbmL1PFFitter.cxx | 28 ++++++++-------- reco/KF/ParticleFitter/CbmL1PFFitter.h | 10 +++--- reco/L1/CbmL1.cxx | 2 +- reco/L1/CbmL1Performance.cxx | 8 ++--- reco/L1/catools/CaToolsField.h | 2 +- reco/L1/qa/CbmCaTrackFitQa.cxx | 4 +-- reco/L1/qa/CbmCaTrackFitQa.h | 2 +- reco/L1/qa/CbmCaTrackTypeQa.cxx | 2 +- reco/L1/qa/CbmCaTrackTypeQa.h | 6 ++-- 31 files changed, 115 insertions(+), 142 deletions(-) delete mode 100644 algo/ca/core/pars/CaField.cxx delete mode 100644 algo/ca/core/pars/CaField.h diff --git a/algo/ca/core/CMakeLists.txt b/algo/ca/core/CMakeLists.txt index 33b3558c1b..5087591147 100644 --- a/algo/ca/core/CMakeLists.txt +++ b/algo/ca/core/CMakeLists.txt @@ -17,7 +17,6 @@ set(SRCS ${CMAKE_CURRENT_SOURCE_DIR}/data/CaWindowData.cxx ${CMAKE_CURRENT_SOURCE_DIR}/data/CaTimesliceHeader.cxx ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaConfigReader.cxx - ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaField.cxx ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaInitManager.cxx ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaIteration.cxx ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaMaterialMap.cxx @@ -90,7 +89,6 @@ install( data/CaWindowData.h data/CaTimesliceHeader.h pars/CaDefs.h - pars/CaField.h pars/CaInitManager.h pars/CaIteration.h pars/CaMaterialMap.h diff --git a/algo/ca/core/data/CaWindowData.h b/algo/ca/core/data/CaWindowData.h index da0e0753e9..150b5610fb 100644 --- a/algo/ca/core/data/CaWindowData.h +++ b/algo/ca/core/data/CaWindowData.h @@ -10,11 +10,11 @@ #pragma once #include "CaDefs.h" -#include "CaField.h" #include "CaGrid.h" #include "CaHit.h" #include "CaIteration.h" #include "CaTrack.h" +#include "KfFieldRegion.h" #include "KfMeasurementXy.h" #include <array> @@ -150,10 +150,10 @@ namespace cbm::algo::ca [[gnu::always_inline]] const Iteration* CurrentIteration() const { return fpCurrentIteration; } /// \brief Accesses magnetic field in starting point (target or first station) - [[gnu::always_inline]] ca::FieldValue<fvec>& TargB() { return fTargB; } + [[gnu::always_inline]] kf::FieldValue<fvec>& TargB() { return fTargB; } /// \brief Accesses magnetic field in starting point (target or first station) - [[gnu::always_inline]] const ca::FieldValue<fvec>& TargB() const { return fTargB; } + [[gnu::always_inline]] const kf::FieldValue<fvec>& TargB() const { return fTargB; } /// \brief Measurement of the target with the uncertainty [[gnu::always_inline]] kf::MeasurementXy<fvec>& TargetMeasurement() { return fTargetMeasurement; } @@ -198,8 +198,8 @@ namespace cbm::algo::ca /// \brief Current track-finder iteration const Iteration* fpCurrentIteration = nullptr; - ca::FieldValue<fvec> fTargB _fvecalignment{}; ///< field in the target point (modifiable, do not touch!!) - kf::MeasurementXy<fvec> fTargetMeasurement _fvecalignment{}; ///< target constraint + kf::FieldValue<fvec> fTargB{}; ///< field in the target point (modifiable, do not touch!!) + kf::MeasurementXy<fvec> fTargetMeasurement{}; ///< target constraint } _fvecalignment; } // namespace cbm::algo::ca diff --git a/algo/ca/core/pars/CaField.cxx b/algo/ca/core/pars/CaField.cxx deleted file mode 100644 index dcfcbdb625..0000000000 --- a/algo/ca/core/pars/CaField.cxx +++ /dev/null @@ -1,5 +0,0 @@ -/* Copyright (C) 2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt - SPDX-License-Identifier: GPL-3.0-only - Authors: Sergey Gorbunov, Sergei Zharko [committer] */ - -#include "CaField.h" diff --git a/algo/ca/core/pars/CaField.h b/algo/ca/core/pars/CaField.h deleted file mode 100644 index 18c73b1ad6..0000000000 --- a/algo/ca/core/pars/CaField.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright (C) 2007-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt - SPDX-License-Identifier: GPL-3.0-only - Authors: Sergey Gorbunov [committer], Igor Kulakov, Maksym Zyzak, Sergei Zharko */ - -#pragma once // include this header only once per compilation unit - - -#include "CaDefs.h" -#include "CaSimd.h" -#include "KfFieldRegion.h" -#include "KfFieldValue.h" -#include "KfTrackParam.h" - -namespace cbm::algo::ca -{ - using cbm::algo::kf::FieldRegion; - using cbm::algo::kf::FieldSlice; - using cbm::algo::kf::FieldValue; -} // namespace cbm::algo::ca diff --git a/algo/ca/core/pars/CaInitManager.cxx b/algo/ca/core/pars/CaInitManager.cxx index 443226f132..b19b370ed2 100644 --- a/algo/ca/core/pars/CaInitManager.cxx +++ b/algo/ca/core/pars/CaInitManager.cxx @@ -70,8 +70,8 @@ void InitManager::ClearSetupInfo() fInitController.SetFlag(EInitKey::kActiveDetectorIDs, false); // Clear field info - fParameters.fVertexFieldRegion = ca::FieldRegion<fvec>(); - fParameters.fVertexFieldValue = ca::FieldValue<fvec>(); + fParameters.fVertexFieldRegion = kf::FieldRegion<fvec>(); + fParameters.fVertexFieldValue = kf::FieldValue<fvec>(); fInitController.SetFlag(EInitKey::kPrimaryVertexField, false); // Clear target position @@ -294,7 +294,7 @@ void InitManager::InitTargetField(double zStep) constexpr int nPointsNodal{3}; std::array<double, nPointsNodal> inputNodalZ{fTargetZ, fTargetZ + zStep, fTargetZ + 2. * zStep}; - std::array<ca::FieldValue<fvec>, nPointsNodal> B{}; + std::array<kf::FieldValue<fvec>, nPointsNodal> B{}; std::array<fvec, nPointsNodal> z{}; // loop over nodal points for (int idx = 0; idx < nPointsNodal; ++idx) { diff --git a/algo/ca/core/pars/CaInitManager.h b/algo/ca/core/pars/CaInitManager.h index 0e555c3374..699c1117ae 100644 --- a/algo/ca/core/pars/CaInitManager.h +++ b/algo/ca/core/pars/CaInitManager.h @@ -10,12 +10,12 @@ #pragma once // include this header only once per compilation unit #include "CaDefs.h" -#include "CaField.h" #include "CaIteration.h" #include "CaObjectInitController.h" #include "CaParameters.h" #include "CaSimd.h" #include "CaStationInitializer.h" +#include "KfFieldRegion.h" #include <array> #include <bitset> @@ -160,7 +160,7 @@ namespace cbm::algo::ca /// and is available for modifications. void InitStationLayout(); - /// \brief Calculates ca::FieldValue and L1FieldReference values for a selected step in z-axis from the target position + /// \brief Calculates kf::FieldValue and L1FieldReference values for a selected step in z-axis from the target position /// \param zStep step between nodal points void InitTargetField(double zStep); diff --git a/algo/ca/core/pars/CaParameters.h b/algo/ca/core/pars/CaParameters.h index 3512f2a49d..1c4d138765 100644 --- a/algo/ca/core/pars/CaParameters.h +++ b/algo/ca/core/pars/CaParameters.h @@ -10,12 +10,12 @@ #pragma once // include this header only once per compilation unit #include "CaDefs.h" -#include "CaField.h" #include "CaIteration.h" #include "CaMaterialMap.h" #include "CaSearchWindow.h" #include "CaStation.h" #include "CaVector.h" +#include "KfFieldRegion.h" #include <boost/serialization/array.hpp> #include <boost/serialization/utility.hpp> @@ -112,7 +112,7 @@ namespace cbm::algo::ca Parameters& operator=(const Parameters& other) = default; /// \brief Move constructor - Parameters(Parameters&& other) noexcept = default; + Parameters(Parameters&& other) = default; /// \brief Move assignment operator Parameters& operator=(Parameters&& other) = default; @@ -264,11 +264,11 @@ namespace cbm::algo::ca /// \brief Gets Z component of target position DataT GetTargetPositionZ() const { return fTargetPos[2]; } - /// \brief Gets ca::FieldRegion object at primary vertex - const FieldRegion<DataT>& GetVertexFieldRegion() const { return fVertexFieldRegion; } + /// \brief Gets kf::FieldRegion object at primary vertex + const kf::FieldRegion<DataT>& GetVertexFieldRegion() const { return fVertexFieldRegion; } - /// \brief Gets ca::FieldValue object at primary vertex - const FieldValue<DataT>& GetVertexFieldValue() const { return fVertexFieldValue; } + /// \brief Gets kf::FieldValue object at primary vertex + const kf::FieldValue<DataT>& GetVertexFieldValue() const { return fVertexFieldValue; } /// \brief Gets random seed /// @@ -357,10 +357,10 @@ namespace cbm::algo::ca alignas(constants::misc::Alignment) std::array<DataT, 3> fTargetPos{Undef<float>, Undef<float>, Undef<float>}; /// Field value object at primary vertex (between target and the first station) - alignas(constants::misc::Alignment) ca::FieldValue<DataT> fVertexFieldValue{}; + kf::FieldValue<DataT> fVertexFieldValue{}; /// Field region object at primary vertex (between target and the first station) - alignas(constants::misc::Alignment) ca::FieldRegion<DataT> fVertexFieldRegion{}; + kf::FieldRegion<DataT> fVertexFieldRegion{}; /// Array of stations alignas(constants::misc::Alignment) StationsContainer_t<DataT> fStations{}; diff --git a/algo/ca/core/pars/CaStation.h b/algo/ca/core/pars/CaStation.h index d9c5930957..0ecc40f15d 100644 --- a/algo/ca/core/pars/CaStation.h +++ b/algo/ca/core/pars/CaStation.h @@ -5,8 +5,8 @@ #pragma once // include this header only once per compilation unit #include "CaDefs.h" -#include "CaField.h" #include "CaSimd.h" +#include "KfFieldRegion.h" #include <string> @@ -29,7 +29,7 @@ namespace cbm::algo::ca DataT Xmax = constants::Undef<DataT>; ///< min radius of the station [cm] DataT Ymax = constants::Undef<DataT>; ///< max radius of the station [cm] - FieldSlice<DataT> fieldSlice{}; ///< Magnetic field near the station + kf::FieldSlice<DataT> fieldSlice{}; ///< Magnetic field near the station Station() = default; diff --git a/algo/ca/core/pars/CaStationInitializer.cxx b/algo/ca/core/pars/CaStationInitializer.cxx index 3052dc9662..3bfcea6e3f 100644 --- a/algo/ca/core/pars/CaStationInitializer.cxx +++ b/algo/ca/core/pars/CaStationInitializer.cxx @@ -118,7 +118,7 @@ void StationInitializer::SetFieldFunction( return std::tuple<double, double, double>(B[0], B[1], B[2]); }; - fStation.fieldSlice = FieldSlice<fvec>(glambda, fXmax, fYmax, fZref); + fStation.fieldSlice = kf::FieldSlice<fvec>(glambda, fXmax, fYmax, fZref); fInitController.SetFlag(EInitKey::kFieldSlice); } diff --git a/algo/ca/core/tracking/CaCloneMerger.cxx b/algo/ca/core/tracking/CaCloneMerger.cxx index 955636d674..40884abbc4 100644 --- a/algo/ca/core/tracking/CaCloneMerger.cxx +++ b/algo/ca/core/tracking/CaCloneMerger.cxx @@ -92,8 +92,8 @@ void CloneMerger::Exec(const ca::InputData& input, WindowData& wData) TrackParamV& Tb = fitB.Tr(); TrackParamV& Tf = fitF.Tr(); - ca::FieldValue<fvec> fBm, fBb, fBf _fvecalignment; - ca::FieldRegion<fvec> fld _fvecalignment; + kf::FieldValue<fvec> fBm, fBb, fBf _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; // Max length for merging unsigned char maxLengthForMerge = static_cast<unsigned char>(fParameters.GetNstationsActive() - 3); diff --git a/algo/ca/core/tracking/CaFramework.h b/algo/ca/core/tracking/CaFramework.h index cf3e8d62fc..5c783ca162 100644 --- a/algo/ca/core/tracking/CaFramework.h +++ b/algo/ca/core/tracking/CaFramework.h @@ -7,7 +7,6 @@ #include "CaBranch.h" #include "CaCloneMerger.h" #include "CaDefs.h" -#include "CaField.h" #include "CaGrid.h" #include "CaGridEntry.h" #include "CaHit.h" diff --git a/algo/ca/core/tracking/CaTrackExtender.cxx b/algo/ca/core/tracking/CaTrackExtender.cxx index 6e3ccf6656..09123e0208 100644 --- a/algo/ca/core/tracking/CaTrackExtender.cxx +++ b/algo/ca/core/tracking/CaTrackExtender.cxx @@ -100,15 +100,15 @@ void TrackExtender::FitBranchFast(const ca::Branch& t, TrackParamV& Tout, const T.C10() = hit0.dXY(); T.C11() = hit0.dY2(); - ca::FieldRegion<fvec> fld _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; fvec fldZ0 = sta1.fZ; // suppose field is smoth fvec fldZ1 = sta2.fZ; fvec fldZ2 = sta0.fZ; - ca::FieldValue fldB0 = sta1.fieldSlice.GetFieldValue(x1, y1); - ca::FieldValue fldB1 = sta2.fieldSlice.GetFieldValue(x2, y2); - ca::FieldValue fldB2 = sta0.fieldSlice.GetFieldValue(x0, y0); + kf::FieldValue fldB0 = sta1.fieldSlice.GetFieldValue(x1, y1); + kf::FieldValue fldB1 = sta2.fieldSlice.GetFieldValue(x2, y2); + kf::FieldValue fldB2 = sta0.fieldSlice.GetFieldValue(x0, y0); fld.Set(fldB2, fldZ2, fldB1, fldZ1, fldB0, fldZ0); @@ -183,14 +183,14 @@ void TrackExtender::FindMoreHits(ca::Branch& t, TrackParamV& Tout, const FitDire fvec x2 = hit2.X(); fvec y2 = hit2.Y(); - ca::FieldRegion<fvec> fld _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; fvec fldZ0 = sta1.fZ; fvec fldZ1 = sta2.fZ; fvec fldZ2 = sta0.fZ; - ca::FieldValue fldB0 = sta1.fieldSlice.GetFieldValue(x1, y1); - ca::FieldValue fldB1 = sta2.fieldSlice.GetFieldValue(x2, y2); - ca::FieldValue fldB2 = sta0.fieldSlice.GetFieldValue(x0, y0); + kf::FieldValue fldB0 = sta1.fieldSlice.GetFieldValue(x1, y1); + kf::FieldValue fldB1 = sta2.fieldSlice.GetFieldValue(x2, y2); + kf::FieldValue fldB2 = sta0.fieldSlice.GetFieldValue(x0, y0); fld.Set(fldB2, fldZ2, fldB1, fldZ1, fldB0, fldZ0); diff --git a/algo/ca/core/tracking/CaTrackFit.cxx b/algo/ca/core/tracking/CaTrackFit.cxx index 1ab9c98093..ed1f12f124 100644 --- a/algo/ca/core/tracking/CaTrackFit.cxx +++ b/algo/ca/core/tracking/CaTrackFit.cxx @@ -615,7 +615,7 @@ namespace cbm::algo::ca void TrackFit<DataT>::Extrapolate // extrapolates track parameters and returns jacobian for extrapolation of CovMatrix (DataT z_out, // extrapolate to this z position - const ca::FieldRegion<DataT>& F) + const kf::FieldRegion<DataT>& F) { // use Q/p linearisation at fQp0 @@ -637,7 +637,7 @@ namespace cbm::algo::ca void TrackFit< DataT>::ExtrapolateStep // extrapolates track parameters and returns jacobian for extrapolation of CovMatrix (DataT zOut, // extrapolate to this z position - const ca::FieldRegion<DataT>& Field) + const kf::FieldRegion<DataT>& Field) { // use Q/p linearisation at fQp0 // implementation of the Runge-Kutta method without optimization @@ -704,7 +704,7 @@ namespace cbm::algo::ca } DataT z = fTr.GetZ() + stepDz[step]; - ca::FieldValue B = Field.Get(rstep[0], rstep[1], z); + kf::FieldValue B = Field.Get(rstep[0], rstep[1], z); DataT Bx = B.GetBx(); DataT By = B.GetBy(); DataT Bz = B.GetBz(); @@ -847,7 +847,7 @@ namespace cbm::algo::ca template<typename DataT> - void TrackFit<DataT>::ExtrapolateLine(DataT z_out, const ca::FieldRegion<DataT>& F) + void TrackFit<DataT>::ExtrapolateLine(DataT z_out, const kf::FieldRegion<DataT>& F) { // extrapolate the track assuming fQp0 == 0 // TODO: write special simplified procedure @@ -868,7 +868,7 @@ namespace cbm::algo::ca // t += dz * sqrt ( 1 + tx*tx + ty*ty ) * vi if (0) { // debug: full Runge-Kutta extrapolation with zero field values - FieldRegion<DataT> F; + kf::FieldRegion<DataT> F; ExtrapolateStep(zOut, F); return; } @@ -1162,7 +1162,7 @@ namespace cbm::algo::ca template<typename DataT> - void TrackFit<DataT>::GetExtrapolatedXYline(DataT z, const ca::FieldRegion<DataT>& F, DataT& extrX, DataT& extrY, + void TrackFit<DataT>::GetExtrapolatedXYline(DataT z, const kf::FieldRegion<DataT>& F, DataT& extrX, DataT& extrY, std::array<DataT, TrackParamBase<DataT>::kNtrackParam>& Jx, std::array<DataT, TrackParamBase<DataT>::kNtrackParam>& Jy) const { @@ -1216,7 +1216,7 @@ namespace cbm::algo::ca template<typename DataT> void TrackFit<DataT>::FilterWithTargetAtLine(DataT targZ, const kf::MeasurementXy<DataT>& targXY, - const ca::FieldRegion<DataT>& F) + const kf::FieldRegion<DataT>& F) { // Add the target constraint to a straight line track diff --git a/algo/ca/core/tracking/CaTrackFit.h b/algo/ca/core/tracking/CaTrackFit.h index de708c646f..21a2dafe36 100644 --- a/algo/ca/core/tracking/CaTrackFit.h +++ b/algo/ca/core/tracking/CaTrackFit.h @@ -10,11 +10,12 @@ #pragma once // include this header only once per compilation unit -#include "CaField.h" #include "CaSimd.h" +#include "KfFieldRegion.h" #include "KfMeasurementTime.h" #include "KfMeasurementU.h" #include "KfMeasurementXy.h" +#include "KfSimd.h" #include "KfTrackParam.h" #include "KfUtils.h" @@ -46,12 +47,12 @@ namespace cbm::algo::ca TrackFit() = default; - TrackFit(const TrackParamBase<DataT>& t) { SetTrack(t); } + TrackFit(const kf::TrackParamBase<DataT>& t) { SetTrack(t); } TrackFit(const DataTmask& m, bool fitV) : fMask(m), fDoFitVelocity(fitV) {} template<typename T> - TrackFit(const TrackParamBase<T>& t) + TrackFit(const kf::TrackParamBase<T>& t) { SetTrack(t); } @@ -59,7 +60,7 @@ namespace cbm::algo::ca void SetMask(const DataTmask& m) { fMask = m; } template<typename T> - void SetTrack(const TrackParamBase<T>& t) + void SetTrack(const kf::TrackParamBase<T>& t) { fTr.Set(t); fQp0 = fTr.GetQp(); @@ -67,7 +68,7 @@ namespace cbm::algo::ca void SetQp0(DataT qp0) { fQp0 = qp0; } - TrackParamBase<DataT>& Tr() { return fTr; } + kf::TrackParamBase<DataT>& Tr() { return fTr; } DataT& Qp0() { return fQp0; } @@ -124,14 +125,14 @@ namespace cbm::algo::ca /// it can do several extrapolation steps if the Z is far away /// \param z - Z coordinate to extrapolate to /// \param F - field region - void Extrapolate(DataT z, const ca::FieldRegion<DataT>& F); + void Extrapolate(DataT z, const kf::FieldRegion<DataT>& F); /// extrapolate the track to the given Z using the field F /// it does extrapolation in one step - void ExtrapolateStep(DataT z_out, const ca::FieldRegion<DataT>& F); + void ExtrapolateStep(DataT z_out, const kf::FieldRegion<DataT>& F); /// extrapolate the track to the given Z using linearization at the straight line - void ExtrapolateLine(DataT z_out, const ca::FieldRegion<DataT>& F); + void ExtrapolateLine(DataT z_out, const kf::FieldRegion<DataT>& F); /// extrapolate the track to the given Z assuming no magnetic field void ExtrapolateLineNoField(DataT z_out); @@ -166,9 +167,9 @@ namespace cbm::algo::ca /// special utilities needed by the combinatorial track finder /// extrapolate track as a line, return the extrapolated X, Y and the Jacobians - void GetExtrapolatedXYline(DataT z, const ca::FieldRegion<DataT>& F, DataT& extrX, DataT& extrY, - std::array<DataT, TrackParamBase<DataT>::kNtrackParam>& Jx, - std::array<DataT, TrackParamBase<DataT>::kNtrackParam>& Jy) const; + void GetExtrapolatedXYline(DataT z, const kf::FieldRegion<DataT>& F, DataT& extrX, DataT& extrY, + std::array<DataT, kf::TrackParamBase<DataT>::kNtrackParam>& Jx, + std::array<DataT, kf::TrackParamBase<DataT>::kNtrackParam>& Jy) const; /// filter the track with the XY measurement placed at different Z /// \param m - measurement @@ -177,8 +178,8 @@ namespace cbm::algo::ca /// \param Jx - Jacobian of the extrapolated X /// \param Jy - Jacobian of the extrapolated Y void FilterExtrapolatedXY(const kf::MeasurementXy<DataT>& m, DataT extrX, DataT extrY, - const std::array<DataT, TrackParamBase<DataT>::kNtrackParam>& Jx, - const std::array<DataT, TrackParamBase<DataT>::kNtrackParam>& Jy); + const std::array<DataT, kf::TrackParamBase<DataT>::kNtrackParam>& Jx, + const std::array<DataT, kf::TrackParamBase<DataT>::kNtrackParam>& Jy); /// extrapolate the track to the given Z using linearization at the straight line, /// \param z_out - Z coordinate to extrapolate to @@ -197,7 +198,7 @@ namespace cbm::algo::ca /// add target measuremet to the track using linearisation at a straight line void FilterWithTargetAtLine(DataT targZ, const kf::MeasurementXy<DataT>& targXYInfo, - const ca::FieldRegion<DataT>& F); + const kf::FieldRegion<DataT>& F); /// \brief Approximate mean energy loss with Bethe-Bloch formula /// \param bg2 (beta*gamma)^2 @@ -247,7 +248,7 @@ namespace cbm::algo::ca DataTmask fMask{true}; ///< mask of active elements in simd vectors - TrackParamBase<DataT> fTr{}; ///< track parameters + kf::TrackParamBase<DataT> fTr{}; ///< track parameters DataT fQp0{0.}; DataT fMass{0.10565800}; ///< particle mass (muon mass by default) @@ -286,7 +287,7 @@ namespace cbm::algo::ca inline std::pair<DataT, DataT> TrackFit<DataT>::ExtrapolateLineYdY2(DataT z_out) const { DataT dz = (z_out - fTr.GetZ()); - return std::pair(fTr.GetY() + fTr.GetTy() * dz, fTr.C11() + dz * (2 * fTr.C31() + dz * fTr.C33())); + return std::pair(fTr.GetY() + fTr.GetTy() * dz, fTr.C11() + dz * (DataT(2.) * fTr.C31() + dz * fTr.C33())); } template<typename DataT> diff --git a/algo/ca/core/tracking/CaTrackFitter.cxx b/algo/ca/core/tracking/CaTrackFitter.cxx index 7f49cc9927..a52a209863 100644 --- a/algo/ca/core/tracking/CaTrackFitter.cxx +++ b/algo/ca/core/tracking/CaTrackFitter.cxx @@ -38,14 +38,14 @@ void TrackFitter::FitCaTracks(const ca::InputData& input, WindowData& wData) // LOG(info) << " Start CA Track Fitter "; int start_hit = 0; // for interation in wData.RecoHitIndices() - // static ca::FieldValue fldB0, fldB1, fldB2 _fvecalignment; - // static ca::FieldRegion fld _fvecalignment; - ca::FieldValue<fvec> fldB0, fldB1, fldB2 _fvecalignment; - ca::FieldRegion<fvec> fld _fvecalignment; + // static kf::FieldValue fldB0, fldB1, fldB2 _fvecalignment; + // static kf::FieldRegion fld _fvecalignment; + kf::FieldValue<fvec> fldB0, fldB1, fldB2 _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; - ca::FieldValue<fvec> fldB01, fldB11, fldB21 _fvecalignment; - ca::FieldRegion<fvec> fld1 _fvecalignment; + kf::FieldValue<fvec> fldB01, fldB11, fldB21 _fvecalignment; + kf::FieldRegion<fvec> fld1 _fvecalignment; const int nStations = fParameters.GetNstationsActive(); int nTracks_SIMD = fvec::size(); @@ -98,7 +98,7 @@ void TrackFitter::FitCaTracks(const ca::InputData& input, WindowData& wData) fvec z_start; fvec z_end; - ca::FieldValue<fvec> fB[constants::size::MaxNstations], fB_temp _fvecalignment; + kf::FieldValue<fvec> fB[constants::size::MaxNstations], fB_temp _fvecalignment; fvec ZSta[constants::size::MaxNstations]; @@ -288,7 +288,7 @@ void TrackFitter::FitCaTracks(const ca::InputData& input, WindowData& wData) vtxInfo.SetDy2(1.e-8); if (ca::TrackingMode::kGlobal == fTrackingMode) { - ca::FieldRegion<fvec> fldFull(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); + kf::FieldRegion<fvec> fldFull(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); fitpv.SetMaxExtrapolationStep(1.); for (int vtxIter = 0; vtxIter < 2; vtxIter++) { fitpv.SetQp0(fitpv.Tr().Qp()); diff --git a/algo/ca/core/tracking/CaTripletConstructor.cxx b/algo/ca/core/tracking/CaTripletConstructor.cxx index 53e843a733..43bfdfee01 100644 --- a/algo/ca/core/tracking/CaTripletConstructor.cxx +++ b/algo/ca/core/tracking/CaTripletConstructor.cxx @@ -103,8 +103,8 @@ void TripletConstructor::CreateTripletsForHit(Vector<ca::Triplet>& tripletsOut, { /// Get the field approximation. Add the target to parameters estimation. /// Propagaete to the middle station of a triplet. - //ca::FieldValue<fvec> lB, mB, cB, rB _fvecalignment; currently not used - //ca::FieldValue<fvec> l_B_global, centB_global _fvecalignment; currently not used + //kf::FieldValue<fvec> lB, mB, cB, rB _fvecalignment; currently not used + //kf::FieldValue<fvec> l_B_global, centB_global _fvecalignment; currently not used // get the magnetic field along the track. // (suppose track is straight line with origin in the target) @@ -140,18 +140,18 @@ void TripletConstructor::CreateTripletsForHit(Vector<ca::Triplet>& tripletsOut, // field made by the left hit, the target and the station istac in-between. // is used for extrapolation to the target and to the middle hit - ca::FieldRegion<fvec> fld0; + kf::FieldRegion<fvec> fld0; { - ca::FieldValue<fvec> B0 = fFld0Sta[0]->fieldSlice.GetFieldValueForLine(T); - ca::FieldValue<fvec> B1 = fFld0Sta[1]->fieldSlice.GetFieldValueForLine(T); + kf::FieldValue<fvec> B0 = fFld0Sta[0]->fieldSlice.GetFieldValueForLine(T); + kf::FieldValue<fvec> B1 = fFld0Sta[1]->fieldSlice.GetFieldValueForLine(T); fld0.Set(frWData.TargB(), fParameters.GetTargetPositionZ(), B0, fFld0Sta[0]->fZ, B1, fFld0Sta[1]->fZ); } { // field, made by the left hit, the middle station and the right station // Will be used for extrapolation to the right hit - ca::FieldValue<fvec> B0 = fFld1Sta[0]->fieldSlice.GetFieldValueForLine(T); - ca::FieldValue<fvec> B1 = fFld1Sta[1]->fieldSlice.GetFieldValueForLine(T); - ca::FieldValue<fvec> B2 = fFld1Sta[2]->fieldSlice.GetFieldValueForLine(T); + kf::FieldValue<fvec> B0 = fFld1Sta[0]->fieldSlice.GetFieldValueForLine(T); + kf::FieldValue<fvec> B1 = fFld1Sta[1]->fieldSlice.GetFieldValueForLine(T); + kf::FieldValue<fvec> B2 = fFld1Sta[2]->fieldSlice.GetFieldValueForLine(T); fFldL.Set(B0, fFld1Sta[0]->fZ, B1, fFld1Sta[1]->fZ, B2, fFld1Sta[2]->fZ); } @@ -479,9 +479,9 @@ void TripletConstructor::FindTriplets() // find the field along the track - ca::FieldValue<fvec> B[3] _fvecalignment; - ca::FieldRegion<fvec> fld _fvecalignment; - ca::FieldRegion<fvec> fldTarget _fvecalignment; + kf::FieldValue<fvec> B[3] _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; + kf::FieldRegion<fvec> fldTarget _fvecalignment; fvec tx[3] = {(x[1] - x[0]) / (z[1] - z[0]), (x[2] - x[0]) / (z[2] - z[0]), (x[2] - x[1]) / (z[2] - z[1])}; fvec ty[3] = {(y[1] - y[0]) / (z[1] - z[0]), (y[2] - y[0]) / (z[2] - z[0]), (y[2] - y[1]) / (z[2] - z[1])}; diff --git a/algo/ca/core/tracking/CaTripletConstructor.h b/algo/ca/core/tracking/CaTripletConstructor.h index 6282b0da73..d01931491b 100644 --- a/algo/ca/core/tracking/CaTripletConstructor.h +++ b/algo/ca/core/tracking/CaTripletConstructor.h @@ -8,7 +8,6 @@ #pragma once // include this header only once per compilation unit -#include "CaField.h" #include "CaFramework.h" #include "CaGridEntry.h" #include "CaStation.h" @@ -16,6 +15,8 @@ #include "CaTriplet.h" #include "CaVector.h" #include "CaWindowData.h" +#include "KfFieldRegion.h" +#include "KfSimd.h" #include "KfTrackParam.h" namespace cbm::algo::ca @@ -23,7 +24,7 @@ namespace cbm::algo::ca /// Construction of triplets for the CA tracker /// - class TripletConstructor { + class alignas(kf::VcMemAlign) TripletConstructor { public: /// ------ Constructors and destructor ------ @@ -98,7 +99,7 @@ namespace cbm::algo::ca fFld1Sta[3]; // three stations for approximating the field between the left and the right hit ca::HitIndex_t fIhitL; ///< index of the left hit in fAlgo->fWindowHits - ca::FieldRegion<fvec> fFldL; + kf::FieldRegion<fvec> fFldL; // Persistent storage for triplet tracks and hits Triplet_t fTripletData; @@ -110,7 +111,6 @@ namespace cbm::algo::ca static constexpr bool fDebugDublets = false; // print debug info for dublets static constexpr bool fDebugTriplets = false; // print debug info for triplets static constexpr bool fDebugCollectHits = false; // print debug info for CollectHits - - } _fvecalignment; + }; } // namespace cbm::algo::ca diff --git a/algo/kf/core/data/KfMeasurementTime.h b/algo/kf/core/data/KfMeasurementTime.h index 10dd737115..4b3f0f000c 100644 --- a/algo/kf/core/data/KfMeasurementTime.h +++ b/algo/kf/core/data/KfMeasurementTime.h @@ -25,7 +25,7 @@ namespace cbm::algo::kf /// The measurement may be a SIMD vector of values, when DataT is fvec type /// template<typename DataT> - class MeasurementTime { + class alignas(VcMemAlign) MeasurementTime { public: friend class boost::serialization::access; diff --git a/algo/kf/core/data/KfMeasurementU.h b/algo/kf/core/data/KfMeasurementU.h index 01240db2f5..711f237ec2 100644 --- a/algo/kf/core/data/KfMeasurementU.h +++ b/algo/kf/core/data/KfMeasurementU.h @@ -32,7 +32,7 @@ namespace cbm::algo::kf /// The measurement may be a SIMD vector of values, when DataT is fvec type /// template<typename DataT> - class MeasurementU { + class alignas(VcMemAlign) MeasurementU { public: friend class boost::serialization::access; diff --git a/algo/kf/core/data/KfMeasurementXy.h b/algo/kf/core/data/KfMeasurementXy.h index e01d160bbe..2031d7f6f6 100644 --- a/algo/kf/core/data/KfMeasurementXy.h +++ b/algo/kf/core/data/KfMeasurementXy.h @@ -25,7 +25,7 @@ namespace cbm::algo::kf /// The measurement may be a SIMD vector of values, when DataT is fvec type /// template<typename DataT> - class MeasurementXy { + class alignas(VcMemAlign) MeasurementXy { public: friend class boost::serialization::access; diff --git a/reco/KF/CbmKfTrackFitter.cxx b/reco/KF/CbmKfTrackFitter.cxx index 7b3f9652b3..60b4435c15 100644 --- a/reco/KF/CbmKfTrackFitter.cxx +++ b/reco/KF/CbmKfTrackFitter.cxx @@ -526,7 +526,7 @@ bool CbmKfTrackFitter::FitTrack(CbmKfTrackFitter::Track& t) fFit.SetParticleMass(fMass); - ca::FieldRegion<double> field(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); + kf::FieldRegion<double> field(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); { // fit downstream diff --git a/reco/KF/KFQA/CbmKFTrackQa.cxx b/reco/KF/KFQA/CbmKFTrackQa.cxx index 7120c05a2b..443aca563b 100644 --- a/reco/KF/KFQA/CbmKFTrackQa.cxx +++ b/reco/KF/KFQA/CbmKFTrackQa.cxx @@ -14,7 +14,6 @@ #include "FairRunAna.h" //KF Particle headers -#include "CaField.h" #include "CbmKFVertex.h" #include "CbmL1PFFitter.h" #include "KFMCTrack.h" diff --git a/reco/KF/ParticleFitter/CbmL1PFFitter.cxx b/reco/KF/ParticleFitter/CbmL1PFFitter.cxx index b0464a6c9c..ade81fed64 100644 --- a/reco/KF/ParticleFitter/CbmL1PFFitter.cxx +++ b/reco/KF/ParticleFitter/CbmL1PFFitter.cxx @@ -27,7 +27,6 @@ #include "TClonesArray.h" //ca::Framework tools -#include "CaField.h" #include "CaFramework.h" #include "CaSimd.h" #include "CaStation.h" @@ -36,6 +35,7 @@ #include "CbmKFVertex.h" #include "FairRootManager.h" #include "KFParticleDatabase.h" +#include "KfFieldRegion.h" #include "KfTrackParam.h" #include "TDatabasePDG.h" @@ -55,7 +55,7 @@ namespace NS_L1TrackFitter using namespace NS_L1TrackFitter; -inline void CbmL1PFFitter::PFFieldRegion::setFromL1FieldRegion(const ca::FieldRegion<fvec>& fld, int ind) +inline void CbmL1PFFitter::PFFieldRegion::setFromL1FieldRegion(const kf::FieldRegion<fvec>& fld, int ind) { assert(fld.GetFieldMode() == kf::EFieldMode::Intrpl); const auto& coeff = fld.GetIntrplField()->GetCoefficients(); @@ -70,7 +70,7 @@ inline void CbmL1PFFitter::PFFieldRegion::setFromL1FieldRegion(const ca::FieldRe fP[9] = fld.GetIntrplField()->GetZfirst()[ind]; } -inline void CbmL1PFFitter::PFFieldRegion::getL1FieldRegion(ca::FieldRegion<fvec>& fld, int ind) +inline void CbmL1PFFitter::PFFieldRegion::getL1FieldRegion(kf::FieldRegion<fvec>& fld, int ind) { assert(fld.GetFieldMode() == kf::EFieldMode::Intrpl); @@ -91,7 +91,7 @@ inline void CbmL1PFFitter::PFFieldRegion::getL1FieldRegion(ca::FieldRegion<fvec> fld = kf::FieldRegion<fvec>(kf::EFieldType::Normal, fldInterpolated); } -inline CbmL1PFFitter::PFFieldRegion::PFFieldRegion(const ca::FieldRegion<fvec>& fld, int i) +inline CbmL1PFFitter::PFFieldRegion::PFFieldRegion(const kf::FieldRegion<fvec>& fld, int i) { setFromL1FieldRegion(fld, i); } @@ -171,8 +171,8 @@ void CbmL1PFFitter::Fit(std::vector<CbmStsTrack>& Tracks, const std::vector<CbmM Initialize(); - ca::FieldValue<fvec> b0, b1, b2 _fvecalignment; - ca::FieldRegion<fvec> fld; + kf::FieldValue<fvec> b0, b1, b2 _fvecalignment; + kf::FieldRegion<fvec> fld; // fld.SetUseOriginalField(); static int nHits = CbmL1::Instance()->fpAlgo->GetParameters().GetNstationsActive(); @@ -202,8 +202,8 @@ void CbmL1PFFitter::Fit(std::vector<CbmStsTrack>& Tracks, const std::vector<CbmM fvec dt2_first, dt2_last; fvec z0, z1, z2, dz, z_start, z_end; - ca::FieldValue<fvec> fB[nHits]; - ca::FieldValue<fvec> fB_temp _fvecalignment; + kf::FieldValue<fvec> fB[nHits]; + kf::FieldValue<fvec> fB_temp _fvecalignment; unsigned short N_vTracks = Tracks.size(); @@ -516,8 +516,8 @@ void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<PFFieldRe field.reserve(Tracks.size()); - ca::FieldRegion<fvec> fld _fvecalignment; - ca::FieldValue<fvec> fB[3], fB_temp _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; + kf::FieldValue<fvec> fB[3], fB_temp _fvecalignment; fvec zField[3]; unsigned short N_vTracks = Tracks.size(); @@ -660,7 +660,7 @@ void CbmL1PFFitter::CalculateFieldRegion(vector<CbmStsTrack>& Tracks, vector<PFF field.reserve(Tracks.size()); - ca::FieldRegion<fvec> fld _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; int nTracks_SIMD = fvec::size(); TrackParamV T; // fitting parametr coresponding to current track @@ -669,7 +669,7 @@ void CbmL1PFFitter::CalculateFieldRegion(vector<CbmStsTrack>& Tracks, vector<PFF int ista; const ca::Station<fvec>* sta = CbmL1::Instance()->fpAlgo->GetParameters().GetStations().begin(); - ca::FieldValue<fvec> fB[3], fB_temp _fvecalignment; + kf::FieldValue<fvec> fB[3], fB_temp _fvecalignment; fvec zField[3]; unsigned short N_vTracks = Tracks.size(); @@ -740,7 +740,7 @@ void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, field.reserve(Tracks.size()); - ca::FieldRegion<fvec> fld _fvecalignment; + kf::FieldRegion<fvec> fld _fvecalignment; int nTracks_SIMD = fvec::size(); TrackParamV T; // fitting parametr coresponding to current track @@ -749,7 +749,7 @@ void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, int ista; const ca::Station<fvec>* sta = CbmL1::Instance()->fpAlgo->GetParameters().GetStations().begin(); - ca::FieldValue<fvec> fB[3], fB_temp _fvecalignment; + kf::FieldValue<fvec> fB[3], fB_temp _fvecalignment; fvec zField[3]; unsigned short N_vTracks = Tracks.size(); diff --git a/reco/KF/ParticleFitter/CbmL1PFFitter.h b/reco/KF/ParticleFitter/CbmL1PFFitter.h index 759fde6768..420d2a2093 100644 --- a/reco/KF/ParticleFitter/CbmL1PFFitter.h +++ b/reco/KF/ParticleFitter/CbmL1PFFitter.h @@ -20,8 +20,8 @@ #ifndef _CbmL1PFFitter_h_ #define _CbmL1PFFitter_h_ -#include "CaField.h" #include "CaSimd.h" +#include "KfFieldRegion.h" #include <vector> @@ -36,12 +36,12 @@ class TClonesArray; class CbmL1PFFitter { public: - // A container for parameters of ca::FieldRegion + // A container for parameters of kf::FieldRegion struct PFFieldRegion { PFFieldRegion() {} - PFFieldRegion(const ca::FieldRegion<ca::fvec>&, int i); - void setFromL1FieldRegion(const ca::FieldRegion<ca::fvec>&, int i); - void getL1FieldRegion(ca::FieldRegion<ca::fvec>&, int i); + PFFieldRegion(const kf::FieldRegion<kf::fvec>&, int i); + void setFromL1FieldRegion(const kf::FieldRegion<ca::fvec>&, int i); + void getL1FieldRegion(kf::FieldRegion<kf::fvec>&, int i); float fP[10]{0.}; }; diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx index 06bf368eba..a51a3f5bed 100644 --- a/reco/L1/CbmL1.cxx +++ b/reco/L1/CbmL1.cxx @@ -600,7 +600,7 @@ try { auto caFldVal_0 = fpParameters->GetStation(0).fieldSlice.GetFieldValue(x, y); auto caFldVal_1 = fpParameters->GetStation(1).fieldSlice.GetFieldValue(x, y); auto caFldVal_2 = fpParameters->GetStation(2).fieldSlice.GetFieldValue(x, y); - auto caFldReg = cbm::algo::ca::FieldRegion<fvec>{}; + auto caFldReg = cbm::algo::kf::FieldRegion<fvec>{}; caFldReg.Set(caFldVal_0, z0, caFldVal_1, z1, caFldVal_2, z2); LOG(info) << "CA ----> " << caFldReg.ToString(); LOG(info) << "KF ----> " << kfFldReg.ToString(); diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx index 9cdf511f0b..8a3ea1070b 100644 --- a/reco/L1/CbmL1Performance.cxx +++ b/reco/L1/CbmL1Performance.cxx @@ -1311,7 +1311,7 @@ void CbmL1::TrackFitPerformance() if (!mc.IsPrimary()) { // secondary { // extrapolate to vertex - ca::FieldRegion<fvec> fld(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); + kf::FieldRegion<fvec> fld(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); fit.Extrapolate(mc.GetStartZ(), fld); // add material const int fSta = fvHitDebugInfo[it->Hits[0]].iStation; @@ -1378,7 +1378,7 @@ void CbmL1::TrackFitPerformance() else { // primary { // extrapolate to vertex - ca::FieldRegion<fvec> fld(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); + kf::FieldRegion<fvec> fld(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); // add material const int fSta = fvHitDebugInfo[it->Hits[0]].iStation; @@ -1526,7 +1526,7 @@ void CbmL1::FillFitHistos(TrackParamV& track, const cbm::ca::tools::MCPoint& mcP //fit.SetMaxExtrapolationStep(10.); fit.SetDoFitVelocity(true); fit.SetTrack(track); - ca::FieldRegion<fvec> fld(kf::EFieldType::Normal, kf::GlobalField::fgOriginalField); + kf::FieldRegion<fvec> fld(kf::EFieldType::Normal, kf::GlobalField::fgOriginalField); fit.Extrapolate(mcP.GetZOut(), fld); track = fit.Tr(); @@ -1644,7 +1644,7 @@ void CbmL1::FieldApproxCheck() double bbb = sqrt(B[0] * B[0] + B[1] * B[1] + B[2] * B[2]); - ca::FieldValue<fvec> B_L1 = st.fieldSlice.GetFieldValue(x, y); + kf::FieldValue<fvec> B_L1 = st.fieldSlice.GetFieldValue(x, y); hdB[0]->SetBinContent(i, j, (bbb - B_L1.GetAbs()[0])); hdB[1]->SetBinContent(i, j, (B[0] - B_L1.GetBx()[0])); diff --git a/reco/L1/catools/CaToolsField.h b/reco/L1/catools/CaToolsField.h index 9757b50345..0345cf0770 100644 --- a/reco/L1/catools/CaToolsField.h +++ b/reco/L1/catools/CaToolsField.h @@ -9,9 +9,9 @@ #pragma once // include this header only once per compilation unit -#include "CaField.h" #include "FairField.h" #include "FairRunAna.h" +#include "KfFieldRegion.h" #include <mutex> diff --git a/reco/L1/qa/CbmCaTrackFitQa.cxx b/reco/L1/qa/CbmCaTrackFitQa.cxx index 0de6cb97e8..722460a748 100644 --- a/reco/L1/qa/CbmCaTrackFitQa.cxx +++ b/reco/L1/qa/CbmCaTrackFitQa.cxx @@ -9,13 +9,13 @@ #include "CbmCaTrackFitQa.h" -#include "CaField.h" #include "CaToolsField.h" #include "CaToolsMCData.h" #include "CaTrackFit.h" #include "CbmL1Track.h" #include "CbmQaCanvas.h" #include "CbmQaUtil.h" +#include "KfFieldRegion.h" #include "TF1.h" #include "TFormula.h" #include "TH1.h" @@ -165,7 +165,7 @@ void TrackFitQa::Fill(const TrackParamV& trPar, const tools::MCPoint& mcPoint, b fitter.SetMask(fmask::One()); fitter.SetDoFitVelocity(true); fitter.SetTrack(trPar); - cbm::algo::ca::FieldRegion<ca::fvec> fieldRegion(kf::GlobalField::fgOriginalFieldType, + cbm::algo::kf::FieldRegion<ca::fvec> fieldRegion(kf::GlobalField::fgOriginalFieldType, kf::GlobalField::fgOriginalField); fitter.Extrapolate(mcPoint.GetZ(), fieldRegion); diff --git a/reco/L1/qa/CbmCaTrackFitQa.h b/reco/L1/qa/CbmCaTrackFitQa.h index 78467f1dae..5574a39cc9 100644 --- a/reco/L1/qa/CbmCaTrackFitQa.h +++ b/reco/L1/qa/CbmCaTrackFitQa.h @@ -12,9 +12,9 @@ #include "CaDefs.h" #include "CaEnumArray.h" -#include "CaField.h" #include "CbmL1DetectorID.h" #include "CbmQaIO.h" +#include "KfFieldRegion.h" #include "KfTrackParam.h" #include <array> diff --git a/reco/L1/qa/CbmCaTrackTypeQa.cxx b/reco/L1/qa/CbmCaTrackTypeQa.cxx index bb07084d91..872424ab1d 100644 --- a/reco/L1/qa/CbmCaTrackTypeQa.cxx +++ b/reco/L1/qa/CbmCaTrackTypeQa.cxx @@ -13,8 +13,8 @@ #include "CbmCaTrackFitQa.h" #include "CbmL1Track.h" -using cbm::algo::ca::FieldRegion; using cbm::algo::ca::TrackFit; +using cbm::algo::kf::FieldRegion; using cbm::ca::TrackTypeQa; using cbm::ca::tools::MCPoint; using cbm::ca::tools::MCTrack; diff --git a/reco/L1/qa/CbmCaTrackTypeQa.h b/reco/L1/qa/CbmCaTrackTypeQa.h index 0c6945e3e5..a59ee5e0f8 100644 --- a/reco/L1/qa/CbmCaTrackTypeQa.h +++ b/reco/L1/qa/CbmCaTrackTypeQa.h @@ -10,13 +10,13 @@ #pragma once -#include "CaField.h" #include "CaParameters.h" #include "CaTrackFit.h" #include "CbmCaTrackFitQa.h" #include "CbmL1DetectorID.h" #include "CbmL1Hit.h" #include "CbmQaIO.h" +#include "KfFieldRegion.h" #include <map> #include <string> @@ -293,8 +293,8 @@ namespace cbm::ca TProfile* fph_stations_point = nullptr; ///< Average number of stations with MC point TProfile* fph_stations_hit = nullptr; ///< Average number of stations with hit - ca::TrackFit<ca::fvec> fTrackFit; ///< Track fitter - ca::FieldRegion<ca::fvec> fFieldRegion; ///< Magnetic field + ca::TrackFit<ca::fvec> fTrackFit; ///< Track fitter + cbm::algo::kf::FieldRegion<ca::fvec> fFieldRegion; ///< Magnetic field int fCounterMC = 0; ///< Counter of MC tracks int fCounterClones = 0; ///< Counter of clone tracks -- GitLab