diff --git a/algo/ca/core/CMakeLists.txt b/algo/ca/core/CMakeLists.txt index 33b3558c1bb76a280030cb25758ca2d62ba62952..5087591147e9feb704306183ac42c4283794866a 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 da0e0753e9147efeb3cbca385382ab347a0e4577..150b5610fb6ce9aa75dcf42346cd0936e5db470d 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 dcfcbdb625f536d4739d001e2cf8284501c311ee..0000000000000000000000000000000000000000 --- 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 18c73b1ad6946e40cab4ccfcac3b8331be8d661f..0000000000000000000000000000000000000000 --- 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 443226f132504c799258d986d33808a71119dff9..b19b370ed282e12da7f55cdda0678864dcd90f67 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 0e555c33742ccd94307b80169f8fa7622a2a1af5..699c1117aeda76cf7c5fa02aa35e67a944874ff3 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 3512f2a49d230025cb964d67e5d46697487bc899..1c4d13876521afd3076be536bedda5c542d8490e 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 d9c59309571c093edc2abedfd73692fbf3579277..0ecc40f15d6d60f136e49ac7273aefc5babb63b0 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 3052dc9662b47f558ccdb752e962e8d11a13f09e..3bfcea6e3fa36e6ce3188de24fa1a33b509f1340 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 955636d674e42dde93ea4ebbcdb52f960ad622d8..40884abbc410b16ee373d53c1c417d72405184cf 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 cf3e8d62fcab6bb8736511886caa309738c7d50e..5c783ca162731df979df4548774fb2894f347a83 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 6e3ccf6656918097c4b26cce737695dc4552dd34..09123e020823c81d2842c04318b7ce35bdf9d170 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 1ab9c9809312e14e4ffc5cccf7a10af5b5da2296..ed1f12f1247cf3df458524759bc860cbafc92844 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 de708c646f5e7843160a070949fa500bf1bd6e33..21a2dafe36e44966b985e4a5a3e191d0d0e902ab 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 7f49cc9927ad4554054729709e84328354e198aa..a52a20986333058ded5fcc6d62d35ed5f6ee4830 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 53e843a733e354faa92a3904be9405c1076b0c88..43bfdfee01ec0a5834b63567bb1486c6db1ca46e 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 6282b0da73cec42920508f154000259ab532c2b0..d01931491bc02036596d1b9dfb598193df78e9a6 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 10dd737115712ea3e57d660902f87a4f7574bd8a..4b3f0f000c031d22f49284359c12cd6bc388da27 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 01240db2f5f0c1aa87e4a4e0519d8c7d8b5d05e5..711f237ec237b063ded4afa03ebc96b5348b6ac0 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 e01d160bbe8b734c30c21ce4c7274da16dc70a48..2031d7f6f62407e1983c5451b4c530f108749538 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 7b3f9652b3d6755a01783dfd62f52609d516a73c..60b4435c15e5ffc3544fb9ef6530768b8094cb79 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 7120c05a2be4b8fa126e30af4887fdb5e4e84d93..443aca563b33792ec4416edc28a9818db73898f8 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 b0464a6c9cc994ae9a31c700009dbc5fcac7f763..ade81fed64ae60c43cbc3e4ee7f08a7cd7047bf0 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 759fde6768f0aaa1e6ce6fb1b3b48373140f7e85..420d2a20933ce5e7f3b9f074305a6a1d0cbd2d94 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 06bf368eba38b8e721122d6941eb72f56a4a0c49..a51a3f5bed40544f8a15b15529a572b50954cdb1 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 9cdf511f0b72ccf25f9f9bba71642e9b2691ba5a..8a3ea1070bd69096777dec2ae48d9cb7b2b7d67d 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 9757b5034558fecfcce0b0944b8bb2ee630e8e5f..0345cf0770433d73cbe23b4a5669d9684eccf605 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 0de6cb97e8d09ad488b3b0a643750e517b85500e..722460a7480aae8512cb6ca4f8737aa2f58c7ba6 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 78467f1dae598bb7da4ae91f349cbdf4ea51bcd7..5574a39cc998eead1e367c6e9e19518f82ca7da9 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 bb07084d91763bced95b79da1f0ac32f97d4b4f9..872424ab1ddc7fc1fae75833348f0047c8b45247 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 0c6945e3e5220038d9f8ef52a30062693eb6d485..a59ee5e0f80bec58eeb262fac9860402490d6776 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