Skip to content

Commit 8526889

Browse files
authored
geom: fix sign bug in TGeoTrd2::GetFittingBox
Use abs(origin[0]) and abs(origin[1]) when computing fitted box size. The old code could return a box that does not fit for negative offsets.
1 parent 114bf16 commit 8526889

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

geom/geom/src/TGeoTrd2.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -601,11 +601,11 @@ Int_t TGeoTrd2::GetFittingBox(const TGeoBBox *parambox, TGeoMatrix *mat, Double_
601601
Double_t dx0 = 0.5 * (fDx1 + fDx2);
602602
Double_t dy0 = 0.5 * (fDy1 + fDy2);
603603
Double_t z = origin[2] - dd[2];
604-
dd[0] = dx0 - fx * z - origin[0];
605-
dd[1] = dy0 - fy * z - origin[1];
604+
dd[0] = dx0 - fx * z - TMath::Abs(origin[0]);
605+
dd[1] = dy0 - fy * z - TMath::Abs(origin[1]);
606606
z = origin[2] + dd[2];
607-
dd[0] = TMath::Min(dd[0], dx0 - fx * z - origin[0]);
608-
dd[1] = TMath::Min(dd[1], dy0 - fy * z - origin[1]);
607+
dd[0] = TMath::Min(dd[0], dx0 - fx * z - TMath::Abs(origin[0]));
608+
dd[1] = TMath::Min(dd[1], dy0 - fy * z - TMath::Abs(origin[1]));
609609
if (dd[0] < 0 || dd[1] < 0) {
610610
Error("GetFittingBox", "wrong matrix");
611611
return 1;

0 commit comments

Comments
 (0)