@@ -1069,29 +1069,27 @@ track::TrackParCov TrackerTraits<nLayers>::buildTrackSeed(const Cluster& cluster
10691069 const float x3 = tf3.xTrackingFrame ;
10701070 const float y3 = tf3.positionTrackingFrame [0 ];
10711071 const float z3 = tf3.positionTrackingFrame [1 ];
1072-
1073- const bool zeroField{std::abs (getBz ()) < o2::constants::math::Almost0};
1074- const float tgp = zeroField ? o2::gpu::CAMath::ATan2 (y3 - y1, x3 - x1) : 1 .f ;
1075- const float crv = zeroField ? 1 .f : math_utils::computeCurvature (x3, y3, x2, y2, x1, y1);
1076- const float snp = zeroField ? tgp / o2::gpu::CAMath::Sqrt (1 .f + tgp * tgp) : crv * (x3 - math_utils::computeCurvatureCentreX (x3, y3, x2, y2, x1, y1));
1077- const float tgl12 = math_utils::computeTanDipAngle (x1, y1, x2, y2, z1, z2);
1078- const float tgl23 = math_utils::computeTanDipAngle (x2, y2, x3, y3, z2, z3);
1079- const float q2pt = zeroField ? 1 .f / o2::track::kMostProbablePt : crv / (getBz () * o2::constants::math::B2C);
1080- const float q2pt2 = crv * crv;
1081- const float sg2q2pt = track::kC1Pt2max * (q2pt2 > 0.0005 ? (q2pt2 < 1 ? q2pt2 : 1 ) : 0.0005 );
1082- return track::TrackParCov (tf3.xTrackingFrame , tf3.alphaTrackingFrame ,
1083- {y3, z3, snp, 0 .5f * (tgl12 + tgl23), q2pt},
1084- {tf3.covarianceTrackingFrame [0 ],
1085- tf3.covarianceTrackingFrame [1 ], tf3.covarianceTrackingFrame [2 ],
1086- 0 .f , 0 .f , track::kCSnp2max ,
1087- 0 .f , 0 .f , 0 .f , track::kCTgl2max ,
1088- 0 .f , 0 .f , 0 .f , 0 .f , sg2q2pt});
1072+ float tgp{1 .f }, crv{1 .f }, snp{-999 .f }, tgl12{-999 .f }, tgl23{-999 .f }, q2pt{1 .f / track::kMostProbablePt }, q2pt2{1 .f }, sg2q2pt{-999 .f };
1073+ if (mIsZeroField ) {
1074+ tgp = o2::gpu::CAMath::ATan2 (y3 - y1, x3 - x1);
1075+ snp = tgp / o2::gpu::CAMath::Sqrt (1 .f + tgp * tgp);
1076+ } else {
1077+ crv = math_utils::computeCurvature (x3, y3, x2, y2, x1, y1);
1078+ snp = crv * (x3 - math_utils::computeCurvatureCentreX (x3, y3, x2, y2, x1, y1));
1079+ q2pt = crv / (mBz * o2::constants::math::B2C);
1080+ q2pt2 = crv * crv;
1081+ }
1082+ tgl12 = math_utils::computeTanDipAngle (x1, y1, x2, y2, z1, z2);
1083+ tgl23 = math_utils::computeTanDipAngle (x2, y2, x3, y3, z2, z3);
1084+ sg2q2pt = track::kC1Pt2max * (q2pt2 > 0 .0005f ? (q2pt2 < 1 .f ? q2pt2 : 1 .f ) : 0 .0005f );
1085+ return {tf3.xTrackingFrame , tf3.alphaTrackingFrame , {y3, z3, snp, 0 .5f * (tgl12 + tgl23), q2pt}, {tf3.covarianceTrackingFrame [0 ], tf3.covarianceTrackingFrame [1 ], tf3.covarianceTrackingFrame [2 ], 0 .f , 0 .f , track::kCSnp2max , 0 .f , 0 .f , 0 .f , track::kCTgl2max , 0 .f , 0 .f , 0 .f , 0 .f , sg2q2pt}};
10891086}
10901087
10911088template <int nLayers>
10921089void TrackerTraits<nLayers>::setBz(float bz)
10931090{
10941091 mBz = bz;
1092+ mIsZeroField = std::abs (mBz ) < 0.01 ;
10951093 mTimeFrame ->setBz (bz);
10961094}
10971095
0 commit comments