98 const T*
a = A.fArray;
100 const Tv*
b = B.fArray;
105 #include "RecoTracker/MkFitCore/standalone/CFMatrix33Vector3.ah"
126 for (
int n = 0;
n <
N; ++
n) {
139 for (
int i = 0;
i < 3; ++
i) {
146 for (
int n = 0;
n <
N; ++
n) {
155 for (
int n = 0;
n <
N; ++
n) {
173 for (
int n = 0;
n <
N; ++
n) {
181 for (
int n = 0;
n <
N; ++
n) {
182 if (xtou.
At(
n, 0, 0))
184 for (
int i = 0;
i < 3; ++
i) {
190 for (
int i = 0;
i < 3; ++
i) {
199 for (
int n = 0;
n <
N; ++
n) {
200 for (
int i = 0;
i < 3; ++
i) {
201 A.
At(
n,
i, 0) = 1.0f;
212 for (
int n = 0;
n <
N; ++
n) {
213 b.
At(
n, 0, 0) = 1.0f / (2.0f * C.
constAt(
n, 0, 0));
222 for (
int n = 0;
n <
N; ++
n) {
224 (xtou.
constAt(
n, 0, 0) ? x.
constAt(
n, 0, 0) - a.
constAt(
n, 0, 0) : x.
constAt(
n, 0, 0) - b.
constAt(
n, 0, 0));
226 (xtou.
constAt(
n, 0, 0) ? y.
constAt(
n, 0, 0) - b.
constAt(
n, 0, 0) : y.
constAt(
n, 0, 0) - a.
constAt(
n, 0, 0));
235 for (
int n = 0;
n <
N; ++
n) {
239 #ifdef INWARDFIT // arctan is odd, so pz -> -pz means theta -> -theta
241 outPar.
At(
n, 5, 0) *= -1.0f;
246 for (
int n = 0;
n <
N; ++
n) {
255 for (
int n = 0;
n <
N; ++
n) {
259 for (
int i = 0;
i < 6;
i++) {
261 for (
int j = 0;
j < 6;
j++) {
267 updatedState.convertFromCCSToCartesian();
269 dprint(
"--------------------------------");
const edm::EventSetup & c
void conformalFitMPlex(bool fitting, MPlexQI seedID, MPlexLS &outErr, MPlexLV &outPar, const MPlexHV &msPar0, const MPlexHV &msPar1, const MPlexHV &msPar2)
T & At(idx_t n, idx_t i, idx_t j)
float getTheta(float r, float z)
constexpr float phierr012
constexpr float thetaerr049
const T & constAt(idx_t n, idx_t i, idx_t j) const
constexpr Matriplex::idx_t NN
float getRad2(float x, float y)
Abs< T >::type abs(const T &t)
constexpr float ptinverr049
constexpr float thetaerr012
void invertCramer(MPlex< T, D, D, N > &A, double *determ=nullptr)
float hipo(float x, float y)
void print(std::string_view label, const MeasurementState &s)
float getPhi(float x, float y)
const T & constAt(idx_t n, idx_t i, idx_t j) const
constexpr float phierr049
void CFMap(const MPlexHH &A, const MPlexHV &B, MPlexHV &C)
constexpr float ptinverr012
#define ASSUME_ALIGNED(a, b)
T & At(idx_t n, idx_t i, idx_t j)