@@ -592,7 +592,7 @@ private boolean filter(int k, boolean forward, double annealingFactor) {
592592
593593 double [] K = new double [5 ];
594594 double V = effectiveVar ;
595- double [] H = mv .H (sVec .x , sVec .y , mVec .surface .measPoint .z (), mVec .surface .wireLine [0 ]);
595+ double [] H = mv .H (sVec .x , sVec .y , mVec .surface .measPoint .z (), mVec .surface .wireLine [0 ], mVec . surface . alpha [ 0 ] );
596596 Matrix CaInv = this .filterCovMat (H , sVec .CM , V );
597597 if (CaInv != null ) {
598598 Matrix5x5 .copy (CaInv , cMat );
@@ -607,7 +607,7 @@ private boolean filter(int k, boolean forward, double annealingFactor) {
607607 }
608608
609609 Point3D point = new Point3D (sVec .x , sVec .y , mVec .surface .measPoint .z ());
610- double h = mv .hDoca (point , mVec .surface .wireLine [0 ]);
610+ double h = mv .hDoca (point , mVec .surface .wireLine [0 ], mVec . surface . alpha [ 0 ] );
611611
612612 c2 = (effectiveDoca - h ) * (effectiveDoca - h ) / V ;
613613
@@ -623,7 +623,7 @@ private boolean filter(int k, boolean forward, double annealingFactor) {
623623 + K [4 ] * (effectiveDoca - h );
624624
625625 Point3D pointFiltered = new Point3D (x_filt , y_filt , mVec .surface .measPoint .z ());
626- double h0 = mv .hDoca (pointFiltered , mVec .surface .wireLine [0 ]);
626+ double h0 = mv .hDoca (pointFiltered , mVec .surface .wireLine [0 ], mVec . surface . alpha [ 0 ] );
627627
628628 double residual = effectiveDoca - h0 ;
629629 updatedWeights_singleHit = daf .calc_updatedWeight_singleHit (residual , annealingFactor );
@@ -644,7 +644,7 @@ private boolean filter(int k, boolean forward, double annealingFactor) {
644644
645645 double [] K = new double [5 ];
646646 double V = effectiveVar ;
647- double [] H = mv .H (sVec .x , sVec .y , mVec .surface .measPoint .z (), mVec .surface .wireLine [indexReferenceWire ]);
647+ double [] H = mv .H (sVec .x , sVec .y , mVec .surface .measPoint .z (), mVec .surface .wireLine [indexReferenceWire ], mVec . surface . alpha [ indexReferenceWire ] );
648648 Matrix CaInv = this .filterCovMat (H , sVec .CM , V );
649649 if (CaInv != null ) {
650650 Matrix5x5 .copy (CaInv , cMat );
@@ -659,7 +659,7 @@ private boolean filter(int k, boolean forward, double annealingFactor) {
659659 }
660660
661661 Point3D point = new Point3D (sVec .x , sVec .y , mVec .surface .measPoint .z ());
662- double h = mv .hDoca (point , mVec .surface .wireLine [indexReferenceWire ]);
662+ double h = mv .hDoca (point , mVec .surface .wireLine [indexReferenceWire ], mVec . surface . alpha [ indexReferenceWire ] );
663663
664664 c2 = (effectiveDoca - h ) * (effectiveDoca - h ) / V ;
665665
@@ -675,8 +675,8 @@ private boolean filter(int k, boolean forward, double annealingFactor) {
675675 + K [4 ] * (effectiveDoca - h );
676676
677677 Point3D pointFiltered = new Point3D (x_filt , y_filt , mVec .surface .measPoint .z ());
678- double h0 = mv .hDoca (pointFiltered , mVec .surface .wireLine [0 ]);
679- double h1 = mv .hDoca (pointFiltered , mVec .surface .wireLine [1 ]);
678+ double h0 = mv .hDoca (pointFiltered , mVec .surface .wireLine [0 ], mVec . surface . alpha [ 0 ] );
679+ double h1 = mv .hDoca (pointFiltered , mVec .surface .wireLine [1 ], mVec . surface . alpha [ 1 ] );
680680 double [] residuals = {mVec .surface .doca [0 ] - h0 , mVec .surface .doca [1 ] - h1 };
681681 updatedWeights_doubleHits = daf .calc_updatedWeights_doubleHits (residuals , annealingFactor );
682682 }
@@ -725,7 +725,7 @@ private boolean filter(int k, boolean forward) {
725725
726726 double [] K = new double [5 ];
727727 double V = mVec .surface .unc [0 ] * KFScale ;
728- double [] H = mv .H (sVec .x , sVec .y , mVec .surface .measPoint .z (), mVec .surface .wireLine [0 ]);
728+ double [] H = mv .H (sVec .x , sVec .y , mVec .surface .measPoint .z (), mVec .surface .wireLine [0 ], mVec . surface . alpha [ 0 ] );
729729 Matrix CaInv = this .filterCovMat (H , sVec .CM , V );
730730 Matrix cMat = new Matrix ();
731731 if (CaInv != null ) {
@@ -741,7 +741,7 @@ private boolean filter(int k, boolean forward) {
741741 }
742742
743743 Point3D point = new Point3D (sVec .x , sVec .y , mVec .surface .measPoint .z ());
744- double h = mv .hDoca (point , mVec .surface .wireLine [0 ]);
744+ double h = mv .hDoca (point , mVec .surface .wireLine [0 ], mVec . surface . alpha [ 0 ] );
745745
746746 double signMeas = 1 ;
747747 double sign = 1 ;
@@ -774,8 +774,7 @@ private boolean filter(int k, boolean forward) {
774774 if (mVec .surface .doca [1 ] != -99 ) {
775775 // now filter using the other Hit
776776 V = mVec .surface .unc [1 ] * KFScale ;
777- H = mv .H (x_filt , y_filt , mVec .surface .measPoint .z (),
778- mVec .surface .wireLine [1 ]);
777+ H = mv .H (x_filt , y_filt , mVec .surface .measPoint .z (), mVec .surface .wireLine [1 ], mVec .surface .alpha [1 ]);
779778 CaInv = this .filterCovMat (H , cMat , V );
780779 if (CaInv != null ) {
781780 for (int i = 0 ; i < 5 ; i ++) {
@@ -792,7 +791,7 @@ private boolean filter(int k, boolean forward) {
792791
793792 Point3D point2 = new Point3D (x_filt , y_filt , mVec .surface .measPoint .z ());
794793
795- h = mv .hDoca (point2 , mVec .surface .wireLine [1 ]);
794+ h = mv .hDoca (point2 , mVec .surface .wireLine [1 ], mVec . surface . alpha [ 1 ] );
796795
797796 signMeas = Math .signum (mVec .surface .doca [1 ]);
798797 sign = Math .signum (h );
@@ -889,7 +888,7 @@ public void calcFinalChisq(int sector, boolean nofilter) {
889888 double V0 = mv .measurements .get (0 ).surface .unc [0 ];
890889
891890 Point3D point = new Point3D (svc .x , svc .y , mv .measurements .get (0 ).surface .measPoint .z ());
892- double h0 = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [0 ]);
891+ double h0 = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [0 ], mv . measurements . get ( 0 ). surface . alpha [ 0 ] );
893892
894893 svc .setProjector (mv .measurements .get (0 ).surface .wireLine [0 ].origin ().x ());
895894 svc .setProjectorDoca (h0 );
@@ -900,7 +899,7 @@ public void calcFinalChisq(int sector, boolean nofilter) {
900899 //USE THE DOUBLE HIT
901900 if (mv .measurements .get (0 ).surface .doca [1 ] != -99 ) {
902901 V0 = mv .measurements .get (0 ).surface .unc [1 ];
903- h0 = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [1 ]);
902+ h0 = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [1 ], mv . measurements . get ( 0 ). surface . alpha [ 1 ] );
904903 res = (mv .measurements .get (0 ).surface .doca [1 ] - h0 );
905904 chi2 += (mv .measurements .get (0 ).surface .doca [1 ] - h0 ) * (mv .measurements .get (0 ).surface .doca [1 ] - h0 ) / V0 ;
906905 nRj [mv .measurements .get (0 ).region - 1 ] += res * res / mv .measurements .get (0 ).error ;
@@ -923,7 +922,7 @@ public void calcFinalChisq(int sector, boolean nofilter) {
923922
924923 point = new Point3D (sv .transported (forward ).get (k1 + 1 ).x , sv .transported (forward ).get (k1 + 1 ).y , mv .measurements .get (k1 + 1 ).surface .measPoint .z ());
925924
926- double h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [0 ]);
925+ double h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [0 ], mv . measurements . get ( k1 + 1 ). surface . alpha [ 0 ] );
927926 svc = sv .transported (forward ).get (k1 + 1 );
928927 path += (forward ? 1 : -1 ) * svc .deltaPath ;
929928 svc .setPathLength (path );
@@ -936,7 +935,7 @@ public void calcFinalChisq(int sector, boolean nofilter) {
936935 //USE THE DOUBLE HIT
937936 if (mv .measurements .get (k1 + 1 ).surface .doca [1 ] != -99 ) {
938937 V = mv .measurements .get (k1 + 1 ).surface .unc [1 ];
939- h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [1 ]);
938+ h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [1 ], mv . measurements . get ( k1 + 1 ). surface . alpha [ 1 ] );
940939 res = (mv .measurements .get (k1 + 1 ).surface .doca [1 ] - h );
941940 chi2 += (mv .measurements .get (k1 + 1 ).surface .doca [1 ] - h ) * (mv .measurements .get (k1 + 1 ).surface .doca [1 ] - h ) / V ;
942941 nRj [mv .measurements .get (k1 + 1 ).region - 1 ] += res * res / V ;
@@ -995,7 +994,7 @@ private void calcFinalChisqDAF(int sector, boolean nofilter) {
995994 double effectiveDoca = daf .get_EffectiveDoca ();
996995 double effectiveVar = daf .get_EffectiveVar ();
997996
998- double h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [0 ]);
997+ double h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [0 ], mv . measurements . get ( 0 ). surface . alpha [ 0 ] );
999998 double res = (effectiveDoca - h );
1000999 chi2 += res *res / effectiveVar ;
10011000 ndfDAF += daf_weight ;
@@ -1020,20 +1019,20 @@ private void calcFinalChisqDAF(int sector, boolean nofilter) {
10201019 double effectiveVar = daf .get_EffectiveVar ();
10211020 int indexReferenceWire = daf .get_IndexReferenceWire ();
10221021
1023- double h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [indexReferenceWire ]);
1022+ double h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [indexReferenceWire ], mv . measurements . get ( 0 ). surface . alpha [ indexReferenceWire ] );
10241023 double res = (effectiveDoca - h );
10251024 chi2 += res *res / effectiveVar ;
10261025 ndfDAF += (daf_weights [0 ] + daf_weights [1 ]);
10271026
1028- h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [0 ]);
1027+ h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [0 ], mv . measurements . get ( 0 ). surface . alpha [ 0 ] );
10291028 svc .setProjectorDoca (h );
10301029 svc .setProjector (mv .measurements .get (0 ).surface .wireLine [0 ].origin ().x ());
10311030 svc .setFinalDAFWeight (daf_weights [0 ]);
10321031 svc .setIsDoubleHit (true );
10331032 kfStateVecsAlongTrajectory .add (svc );
10341033
10351034 StateVec svc2 = sv .new StateVec (svc );
1036- h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [1 ]);
1035+ h = mv .hDoca (point , mv .measurements .get (0 ).surface .wireLine [1 ], mv . measurements . get ( 0 ). surface . alpha [ 1 ] );
10371036 svc2 .setProjectorDoca (h );
10381037 svc2 .setProjector (mv .measurements .get (0 ).surface .wireLine [1 ].origin ().x ());
10391038 svc2 .setFinalDAFWeight (daf_weights [1 ]);
@@ -1067,7 +1066,7 @@ private void calcFinalChisqDAF(int sector, boolean nofilter) {
10671066 double effectiveDoca = daf .get_EffectiveDoca ();
10681067 double effectiveVar = daf .get_EffectiveVar ();
10691068
1070- double h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [0 ]);
1069+ double h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [0 ], mv . measurements . get ( k1 + 1 ). surface . alpha [ 0 ] );
10711070 double res = (effectiveDoca - h );
10721071 chi2 += res *res / effectiveVar ;
10731072 ndfDAF += daf_weight ;
@@ -1092,20 +1091,20 @@ private void calcFinalChisqDAF(int sector, boolean nofilter) {
10921091 double effectiveVar = daf .get_EffectiveVar ();
10931092 int indexReferenceWire = daf .get_IndexReferenceWire ();
10941093
1095- double h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [indexReferenceWire ]);
1094+ double h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [indexReferenceWire ], mv . measurements . get ( k1 + 1 ). surface . alpha [ indexReferenceWire ] );
10961095 double res = (effectiveDoca - h );
10971096 chi2 += res *res / effectiveVar ;
10981097 ndfDAF += (daf_weights [0 ] + daf_weights [1 ]);
10991098
1100- h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [0 ]);
1099+ h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [0 ], mv . measurements . get ( k1 + 1 ). surface . alpha [ 0 ] );
11011100 svc .setProjectorDoca (h );
11021101 svc .setProjector (mv .measurements .get (k1 + 1 ).surface .wireLine [0 ].origin ().x ());
11031102 svc .setFinalDAFWeight (daf_weights [0 ]);
11041103 svc .setIsDoubleHit (true );
11051104 kfStateVecsAlongTrajectory .add (svc );
11061105
11071106 StateVec svc2 = sv .new StateVec (svc );
1108- h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [1 ]);
1107+ h = mv .hDoca (point , mv .measurements .get (k1 + 1 ).surface .wireLine [1 ], mv . measurements . get ( k1 + 1 ). surface . alpha [ 1 ] );
11091108 svc2 .setProjectorDoca (h );
11101109 svc2 .setProjector (mv .measurements .get (k1 + 1 ).surface .wireLine [1 ].origin ().x ());
11111110 svc2 .setFinalDAFWeight (daf_weights [1 ]);
0 commit comments