32 stateVec.GetTx() > 0 ? minParams.GetX() - wXmin : maxParams.GetX() - wXmax;
34 stateVec.GetTx() > 0 ? maxParams.GetX() + wXmax : minParams.GetX() + wXmin;
37 stateVec.GetTy() > 0 ? minParams.GetY() - wYmin : maxParams.GetY() - wYmax;
39 stateVec.GetTy() > 0 ? maxParams.GetY() + wYmax : minParams.GetY() + wYmin;
48 for (
int i = lowerYind;
i <= upperYind; ++
i) {
51 for (
int j = lowerXind; j <= upperXind; ++j) {
54 for (
int k = lowerTind; k <= upperTind; ++k) {
56 std::list<CbmTBin::HitHolder>::iterator hitIter = tBin.
HitsBegin();
57 std::list<CbmTBin::HitHolder>::iterator hitIterEnd = tBin.
HitsEnd();
59 for (; hitIter != hitIterEnd; ++hitIter) {
74 Double_t x1 = hit1->
GetX();
75 Double_t y1 = hit1->
GetY();
76 Double_t dx1Sq = hit1->
GetDx() * hit1->
GetDx();
77 Double_t dy1Sq = hit1->
GetDy() * hit1->
GetDy();
79 Double_t x2 = hit2->
GetX();
80 Double_t y2 = hit2->
GetY();
81 Double_t dx2Sq = hit2->
GetDx() * hit2->
GetDx();
82 Double_t dy2Sq = hit2->
GetDy() * hit2->
GetDy();
83 Double_t segDeltaZ = hit2->
GetZ() - hit1->
GetZ();
84 Double_t tx = (x2 - x1) / segDeltaZ;
85 Double_t ty = (y2 - y1) / segDeltaZ;
86 Double_t middleZ = (hit1->
GetZ() + hit2->
GetZ()) / 2;
87 Double_t deltaZmin =
fMinZ - middleZ;
88 Double_t deltaZmax =
fMaxZ - middleZ;
89 Double_t coeff1Min = (0.5 - deltaZmin / segDeltaZ);
90 Double_t coeff1MinSq = coeff1Min * coeff1Min;
91 Double_t coeff1Max = (0.5 - deltaZmax / segDeltaZ);
92 Double_t coeff1MaxSq = coeff1Max * coeff1Max;
93 Double_t coeff2Min = (0.5 + deltaZmin / segDeltaZ);
94 Double_t coeff2MinSq = coeff2Min * coeff2Min;
95 Double_t coeff2Max = (0.5 + deltaZmax / segDeltaZ);
96 Double_t coeff2MaxSq = coeff2Max * coeff2Max;
109 tMin = searchT + tCoeff * (
fMinZ - hit2->
GetZ()) - wT;
110 tMax = searchT + tCoeff * (
fMaxZ - hit2->
GetZ()) + wT;
117 tMin = searchT + tCoeff * deltaZmin - wT;
118 tMax = searchT + tCoeff * deltaZmax + wT;
134 Double_t xMin = tx > 0 ? coeff1Min * x1 + coeff2Min * x2 - wXmin
135 : coeff1Max * x1 + coeff2Max * x2 - wXmax;
136 Double_t xMax = tx > 0 ? coeff1Max * x1 + coeff2Max * x2 + wXmax
137 : coeff1Min * x1 + coeff2Min * x2 + wXmin;
139 Double_t yMin = ty > 0 ? coeff1Min * y1 + coeff2Min * y2 - wYmin
140 : coeff1Max * y1 + coeff2Max * y2 - wYmax;
141 Double_t yMax = ty > 0 ? coeff1Max * y1 + coeff2Max * y2 + wYmax
142 : coeff1Min * y1 + coeff2Min * y2 + wYmin;
151 for (
int i = lowerYind;
i <= upperYind; ++
i) {
154 for (
int j = lowerXind; j <= upperXind; ++j) {
157 for (
int k = lowerTind; k <= upperTind; ++k) {
159 std::list<CbmTBin::HitHolder>::iterator hitIter = tBin.
HitsBegin();
160 std::list<CbmTBin::HitHolder>::iterator hitIterEnd = tBin.
HitsEnd();
162 for (; hitIter != hitIterEnd; ++hitIter) {
164 Double_t deltaZ = hit->
GetZ() - middleZ;
165 Double_t coeff1 = (0.5 - deltaZ / segDeltaZ);
166 Double_t coeff1Sq = coeff1 * coeff1;
167 Double_t coeff2 = (0.5 + deltaZ / segDeltaZ);
168 Double_t coeff2Sq = coeff2 * coeff2;
169 Double_t
y = coeff1 * y1 + coeff2 * y2;
170 Double_t deltaY = hit->
GetY() -
y;
173 * (coeff1Sq * dy1Sq + coeff2Sq * dy2Sq
177 Double_t
x = coeff1 * x1 + coeff2 * x2;
178 Double_t deltaX = hit->
GetX() -
x;
181 * (coeff1Sq * dx1Sq + coeff2Sq * dx2Sq
192 pair<set<Segment, SegmentComp>::iterator,
bool> ir =
219 for (
int i = lowerYind;
i <= upperYind; ++
i) {
222 for (
int j = lowerXind; j <= upperXind; ++j) {
225 for (
int k = lowerTind; k <= upperTind; ++k) {
227 std::list<CbmTBin::HitHolder>::iterator hitIter = tBin.
HitsBegin();
228 std::list<CbmTBin::HitHolder>::iterator hitIterEnd = tBin.
HitsEnd();
230 for (; hitIter != hitIterEnd; ++hitIter) {
232 Double_t
y = hit->
GetY();
234 if (y < minY || y >= maxY)
continue;
236 Double_t
x = hit->
GetX();
238 if (x < minX || x >= maxX)
continue;
242 if (t < minT || t >= maxT)
continue;