@@ -192,6 +192,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
192192 float dPhiChange,
193193 float dPhiChangeMin,
194194 float dPhiChangeMax,
195+ #ifdef CUT_VALUE_DEBUG
196+ float zHi,
197+ float zLo,
198+ float rtHi,
199+ float rtLo,
200+ float dAlphaInner,
201+ float dAlphaOuter,
202+ float dAlphaInnerOuter,
203+ #endif
195204 unsigned int idx) {
196205 segments.mdIndices ()[idx][0 ] = lowerMDIndex;
197206 segments.mdIndices ()[idx][1 ] = upperMDIndex;
@@ -206,6 +215,16 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
206215 segments.dPhiChanges ()[idx] = __F2H (dPhiChange);
207216 segments.dPhiChangeMins ()[idx] = __F2H (dPhiChangeMin);
208217 segments.dPhiChangeMaxs ()[idx] = __F2H (dPhiChangeMax);
218+
219+ #ifdef CUT_VALUE_DEBUG
220+ segments.zHis ()[idx] = __F2H (zHi);
221+ segments.zLos ()[idx] = __F2H (zLo);
222+ segments.rtHis ()[idx] = __F2H (rtHi);
223+ segments.rtLos ()[idx] = __F2H (rtLo);
224+ segments.dAlphaInners ()[idx] = __F2H (dAlphaInner);
225+ segments.dAlphaOuters ()[idx] = __F2H (dAlphaOuter);
226+ segments.dAlphaInnerOuters ()[idx] = __F2H (dAlphaInnerOuter);
227+ #endif
209228 }
210229
211230 template <typename TAcc>
@@ -356,7 +375,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
356375 float & dPhiChange,
357376 float & dPhiChangeMin,
358377 float & dPhiChangeMax,
378+ #ifdef CUT_VALUE_DEBUG
379+ float & dAlphaInnerMDSegment,
380+ float & dAlphaOuterMDSegment,
381+ float & dAlphaInnerMDOuterMD,
382+ float & zLo,
383+ float & zHi,
384+ #endif
359385 const float ptCut) {
386+ #ifndef CUT_VALUE_DEBUG
387+ float dAlphaInnerMDSegment, dAlphaOuterMDSegment, dAlphaInnerMDOuterMD;
388+ float zLo, zHi;
389+ #endif
360390 float xIn, yIn, zIn, rtIn, xOut, yOut, zOut, rtOut;
361391
362392 xIn = mds.anchorX ()[innerMDIndex];
@@ -374,9 +404,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
374404
375405 const float zGeom = modules.layers ()[innerLowerModuleIndex] <= 2 ? 2 .f * kPixelPSZpitch : 2 .f * kStrip2SZpitch ;
376406
377- float zLo = zIn + (zIn - kDeltaZLum ) * (rtOut / rtIn - 1 . f ) * (zIn > 0 . f ? 1 . f : dzDrtScale) -
378- zGeom; // slope-correction only on outer end
379- float zHi = zIn + (zIn + kDeltaZLum ) * (rtOut / rtIn - 1 .f ) * (zIn < 0 .f ? 1 .f : dzDrtScale) + zGeom;
407+ // slope-correction only on outer end
408+ zLo = zIn + (zIn - kDeltaZLum ) * (rtOut / rtIn - 1 . f ) * (zIn > 0 . f ? 1 . f : dzDrtScale) - zGeom;
409+ zHi = zIn + (zIn + kDeltaZLum ) * (rtOut / rtIn - 1 .f ) * (zIn < 0 .f ? 1 .f : dzDrtScale) + zGeom;
380410
381411 if ((zOut < zLo) || (zOut > zHi))
382412 return false ;
@@ -420,9 +450,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
420450
421451 float innerMDAlpha = mds.dphichanges ()[innerMDIndex];
422452 float outerMDAlpha = mds.dphichanges ()[outerMDIndex];
423- float dAlphaInnerMDSegment = innerMDAlpha - dPhiChange;
424- float dAlphaOuterMDSegment = outerMDAlpha - dPhiChange;
425- float dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha;
453+ dAlphaInnerMDSegment = innerMDAlpha - dPhiChange;
454+ dAlphaOuterMDSegment = outerMDAlpha - dPhiChange;
455+ dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha;
426456
427457 float dAlphaInnerMDSegmentThreshold = dAlphaThresholdValues[0 ];
428458 float dAlphaOuterMDSegmentThreshold = dAlphaThresholdValues[1 ];
@@ -449,7 +479,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
449479 float & dPhiChange,
450480 float & dPhiChangeMin,
451481 float & dPhiChangeMax,
482+ #ifdef CUT_VALUE_DEBUG
483+ float & dAlphaInnerMDSegment,
484+ float & dAlphaOuterMDSegment,
485+ float & dAlphaInnerMDOuterMD,
486+ float & rtLo,
487+ float & rtHi,
488+ #endif
452489 const float ptCut) {
490+ #ifndef CUT_VALUE_DEBUG
491+ float dAlphaInnerMDSegment, dAlphaOuterMDSegment, dAlphaInnerMDOuterMD;
492+ float rtLo, rtHi;
493+ #endif
453494 float xIn, yIn, zIn, rtIn, xOut, yOut, zOut, rtOut;
454495
455496 xIn = mds.anchorX ()[innerMDIndex];
@@ -481,10 +522,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
481522 float dLum = alpaka::math::copysign (acc, kDeltaZLum , zIn);
482523 float drtDzScale = sdSlope / alpaka::math::tan (acc, sdSlope);
483524
484- float rtLo = alpaka::math::max (
485- acc, rtIn * (1 .f + dz / (zIn + dLum) * drtDzScale) - rtGeom, rtIn - 0 .5f * rtGeom); // rt should increase
486- float rtHi = rtIn * (zOut - dLum) / (zIn - dLum) +
487- rtGeom; // dLum for luminous; rGeom for measurement size; no tanTheta_loc(pt) correction
525+ // rt should increase
526+ rtLo = alpaka::math::max ( acc, rtIn * (1 .f + dz / (zIn + dLum) * drtDzScale) - rtGeom, rtIn - 0 .5f * rtGeom);
527+ // dLum for luminous; rGeom for measurement size; no tanTheta_loc(pt) correction
528+ rtHi = rtIn * (zOut - dLum) / (zIn - dLum) + rtGeom;
488529
489530 // Completeness
490531 if ((rtOut < rtLo) || (rtOut > rtHi))
@@ -544,9 +585,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
544585
545586 float innerMDAlpha = mds.dphichanges ()[innerMDIndex];
546587 float outerMDAlpha = mds.dphichanges ()[outerMDIndex];
547- float dAlphaInnerMDSegment = innerMDAlpha - dPhiChange;
548- float dAlphaOuterMDSegment = outerMDAlpha - dPhiChange;
549- float dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha;
588+ dAlphaInnerMDSegment = innerMDAlpha - dPhiChange;
589+ dAlphaOuterMDSegment = outerMDAlpha - dPhiChange;
590+ dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha;
550591
551592 float dAlphaInnerMDSegmentThreshold = dAlphaThresholdValues[0 ];
552593 float dAlphaOuterMDSegmentThreshold = dAlphaThresholdValues[1 ];
@@ -573,8 +614,21 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
573614 float & dPhiChange,
574615 float & dPhiChangeMin,
575616 float & dPhiChangeMax,
617+ #ifdef CUT_VALUE_DEBUG
618+ float & dAlphaInnerMDSegment,
619+ float & dAlphaOuterMDSegment,
620+ float & dAlphaInnerMDOuterMD,
621+ float & zLo,
622+ float & zHi,
623+ float & rtLo,
624+ float & rtHi,
625+ #endif
576626 const float ptCut) {
577627 if (modules.subdets ()[innerLowerModuleIndex] == Barrel and modules.subdets ()[outerLowerModuleIndex] == Barrel) {
628+ #ifdef CUT_VALUE_DEBUG
629+ rtLo = -999 .f ;
630+ rtHi = -999 .f ;
631+ #endif
578632 return runSegmentDefaultAlgoBarrel (acc,
579633 modules,
580634 mds,
@@ -588,8 +642,19 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
588642 dPhiChange,
589643 dPhiChangeMin,
590644 dPhiChangeMax,
645+ #ifdef CUT_VALUE_DEBUG
646+ dAlphaInnerMDSegment,
647+ dAlphaOuterMDSegment,
648+ dAlphaInnerMDOuterMD,
649+ zLo,
650+ zHi,
651+ #endif
591652 ptCut);
592653 } else {
654+ #ifdef CUT_VALUE_DEBUG
655+ zLo = -999 .f ;
656+ zHi = -999 .f ;
657+ #endif
593658 return runSegmentDefaultAlgoEndcap (acc,
594659 modules,
595660 mds,
@@ -603,6 +668,13 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
603668 dPhiChange,
604669 dPhiChangeMin,
605670 dPhiChangeMax,
671+ #ifdef CUT_VALUE_DEBUG
672+ dAlphaInnerMDSegment,
673+ dAlphaOuterMDSegment,
674+ dAlphaInnerMDOuterMD,
675+ rtLo,
676+ rtHi,
677+ #endif
606678 ptCut);
607679 }
608680 }
@@ -643,6 +715,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
643715
644716 float dPhi, dPhiMin, dPhiMax, dPhiChange, dPhiChangeMin, dPhiChangeMax;
645717
718+ #ifdef CUT_VALUE_DEBUG
719+ float zLo, zHi, rtLo, rtHi, dAlphaInnerMDSegment, dAlphaOuterMDSegment, dAlphaInnerMDOuterMD;
720+ #endif
721+
646722 unsigned int innerMiniDoubletAnchorHitIndex = mds.anchorHitIndices ()[innerMDIndex];
647723 unsigned int outerMiniDoubletAnchorHitIndex = mds.anchorHitIndices ()[outerMDIndex];
648724 dPhiMin = 0 ;
@@ -662,6 +738,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
662738 dPhiChange,
663739 dPhiChangeMin,
664740 dPhiChangeMax,
741+ #ifdef CUT_VALUE_DEBUG
742+ dAlphaInnerMDSegment,
743+ dAlphaOuterMDSegment,
744+ dAlphaInnerMDOuterMD,
745+ zLo,
746+ zHi,
747+ rtLo,
748+ rtHi,
749+ #endif
665750 ptCut)) {
666751 unsigned int totOccupancySegments =
667752 alpaka::atomicAdd (acc,
@@ -692,6 +777,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
692777 dPhiChange,
693778 dPhiChangeMin,
694779 dPhiChangeMax,
780+ #ifdef CUT_VALUE_DEBUG
781+ zHi,
782+ zLo,
783+ rtHi,
784+ rtLo,
785+ dAlphaInnerMDSegment,
786+ dAlphaOuterMDSegment,
787+ dAlphaInnerMDOuterMD,
788+ #endif
695789 segmentIdx);
696790 }
697791 }
0 commit comments