CbmRoot
LxTBBinned2.h
Go to the documentation of this file.
1 /*
2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 
7 /*
8  * File: LxTBBinned2.h
9  * Author: tablyaz
10  *
11  * Created on October 14, 2016, 11:30 AM
12  */
13 
14 #ifndef LXTBBINNED2_H
15 #define LXTBBINNED2_H
16 
17 #include "CbmPixelHit.h"
18 #include "LxTBDefinitions.h"
19 #include <list>
20 
21 
22 #define NOF_LAYERS 3
23 #define LAST_LAYER NOF_LAYERS - 1
24 #define NOF_STATIONS 4
25 #define LAST_STATION NOF_STATIONS - 1
26 
27 #define TIMEBIN_LENGTH 100
28 #define NOF_SIGMAS 4
29 #define NOF_SIGMAS_SQ NOF_SIGMAS* NOF_SIGMAS
30 
31 struct LxTbBinnedTriplet;
32 
33 struct LxTbBinnedPoint {
34  scaltype x;
35  scaltype dx;
36  scaltype y;
37  scaltype dy;
38  timetype t;
39  timetype dt;
40  bool use;
41  std::list<LxTbBinnedTriplet*> triplets;
42  Int_t refId;
43 
44 #ifdef LXTB_QA
45  const CbmPixelHit* pHit;
46  bool isTrd;
47  Int_t stationNumber;
48  Int_t layerNumber;
49 
50  struct PointDesc {
51  Int_t eventId;
52  Int_t pointId;
53  Int_t trackId;
54  };
55 
56  std::list<PointDesc> mcRefs;
57 #endif //LXTB_QA
58 
60  scaltype Dx,
61  scaltype Y,
62  scaltype Dy,
63  timetype T,
64  timetype Dt,
65  Int_t ri,
66  bool Use)
67  : x(X)
68  , dx(Dx)
69  , y(Y)
70  , dy(Dy)
71  , t(T)
72  , dt(Dt)
73  , refId(ri)
74  , use(Use)
75 #ifdef LXTB_QA
76  , pHit(0)
77  , isTrd(false)
78  , stationNumber(-1)
79  , layerNumber(-1)
80 #endif //LXTB_QA
81  {
82  }
83 
85  : x(original.x)
86  , dx(original.dx)
87  , y(original.y)
88  , dy(original.dy)
89  , t(original.t)
90  , dt(original.dt)
91  , use(original.use)
92  , triplets()
93  , refId(original.refId)
94 #ifdef LXTB_QA
95  , pHit(original.pHit)
96  , isTrd(original.isTrd)
97  , stationNumber(original.stationNumber)
98  , layerNumber(original.layerNumber)
99  , mcRefs(original.mcRefs)
100 #endif //LXTB_QA
101  {
102  }
103 
105 };
106 
114  std::list<LxTbBinnedPoint*> neighbours;
115 
117  : lPoint(lp)
118  , rPoint(rp)
119  , tx((lPoint->x - rPoint->x) / deltaZ)
120  , ty((lPoint->y - rPoint->y) / deltaZ)
121  , dtx(-sqrt(lPoint->dx * lPoint->dx + rPoint->dx * rPoint->dx) / deltaZ)
122  , dty(-sqrt(lPoint->dy * lPoint->dy + rPoint->dy * rPoint->dy) / deltaZ) {}
123 };
124 
126  for (std::list<LxTbBinnedTriplet*>::iterator i = triplets.begin();
127  i != triplets.end();
128  ++i)
129  delete *i;
130 }
131 
132 struct LxTbXBin {
133  LxTbXBin() : use(false), maxDx(0), maxDy(0), maxDt(0) {}
134 
135  void Clear() {
136  points.clear();
137  maxDx = 0;
138  maxDy = 0;
139  maxDt = 0;
140  use = false;
141  }
142 
143  void AddPoint(const LxTbBinnedPoint& point) {
144  points.push_back(point);
145 
146  if (point.dx > maxDx) maxDx = point.dx;
147 
148  if (point.dy > maxDy) maxDy = point.dy;
149 
150  if (point.dt > maxDt) maxDt = point.dt;
151  }
152 
153  std::list<LxTbBinnedPoint> points;
154  bool use;
155  scaltype maxDx;
158 };
159 
160 struct LxTbYXBin {
161  LxTbYXBin(int nxbs) : xBins(new LxTbXBin[nxbs]), nofXBins(nxbs), use(false) {}
162 
163  ~LxTbYXBin() { delete[] xBins; }
164 
165  void Clear() {
166  for (int i = 0; i < nofXBins; ++i)
167  xBins[i].Clear();
168 
169  use = false;
170  }
171 
172  LxTbXBin* xBins;
173  int nofXBins;
174  bool use;
175 };
176 
177 struct LxTbTYXBin {
178  LxTbTYXBin(int nxbs, int nybs)
179  : yxBins(
180  reinterpret_cast<LxTbYXBin*>(new unsigned char[nybs * sizeof(LxTbYXBin)]))
181  , nofYXBins(nybs)
182  , use(false) {
183  for (int i = 0; i < nybs; ++i)
184  new (&yxBins[i]) LxTbYXBin(nxbs);
185  }
186 
187  ~LxTbTYXBin() { delete[] reinterpret_cast<unsigned char*>(yxBins); }
188 
189  void Clear() {
190  for (int i = 0; i < nofYXBins; ++i)
191  yxBins[i].Clear();
192 
193  use = false;
194  }
195 
196  LxTbYXBin* yxBins;
197  int nofYXBins;
198  bool use;
199 };
200 
201 struct LxTbLayer {
202  LxTbLayer(int nofxb, int nofyb, int noftb)
203  : tyxBins(reinterpret_cast<LxTbTYXBin*>(
204  new unsigned char[noftb * sizeof(LxTbTYXBin)]))
205  , nofTYXBins(noftb)
206  , nofYXBins(nofyb)
207  , nofXBins(nofxb)
208  , lastTimeBinNumber(noftb - 1)
209  , lastYBinNumber(nofyb - 1)
210  , lastXBinNumber(nofxb - 1)
211  , minX(0)
212  , maxX(0)
213  , minY(0)
214  , maxY(0)
215  , minT(0)
216  , maxT(0)
217  , xBinLength(0)
218  , yBinLength(0)
220  , z(0) {
221  for (int i = 0; i < noftb; ++i)
222  new (&tyxBins[i]) LxTbTYXBin(nofyb, nofxb);
223  }
224 
225  ~LxTbLayer() { delete[] reinterpret_cast<unsigned char*>(tyxBins); }
226 
227  void Clear() {
228  for (int i = 0; i < nofTYXBins; ++i)
229  tyxBins[i].Clear();
230  }
231 
232  void Init() {
233  xBinLength = (maxX - minX) / nofXBins;
234  yBinLength = (maxY - minY) / nofYXBins;
236  }
237 
239  minT = v;
241  }
242 
246  int nofXBins;
260 };
261 
262 
263 #define LXTB_ITERATE_LAYER_BEGIN \
264  if (maxX > layer.minX && minX < layer.maxX && maxY > layer.minY \
265  && minY < layer.maxY && maxT > layer.minT && minT < layer.maxT) { \
266  int minTind = (minT - layer.minT) / layer.timeBinLength; \
267  \
268  if (minTind < 0) \
269  minTind = 0; \
270  else if (minTind > layer.lastTimeBinNumber) \
271  minTind = layer.lastTimeBinNumber; \
272  \
273  int maxTind = (maxT - layer.minT) / layer.timeBinLength; \
274  \
275  if (maxTind < 0) \
276  maxTind = 0; \
277  else if (maxTind > layer.lastTimeBinNumber) \
278  maxTind = layer.lastTimeBinNumber; \
279  \
280  int minYind = (minY - layer.minY) / layer.yBinLength; \
281  \
282  if (minYind < 0) \
283  minYind = 0; \
284  else if (minYind > layer.lastYBinNumber) \
285  minYind = layer.lastYBinNumber; \
286  \
287  int maxYind = (maxY - layer.minY) / layer.yBinLength; \
288  \
289  if (maxYind < 0) \
290  maxYind = 0; \
291  else if (maxYind > layer.lastYBinNumber) \
292  maxYind = layer.lastYBinNumber; \
293  \
294  int minXind = (minX - layer.minX) / layer.xBinLength; \
295  \
296  if (minXind < 0) \
297  minXind = 0; \
298  else if (minXind > layer.lastXBinNumber) \
299  minXind = layer.lastXBinNumber; \
300  \
301  int maxXind = (maxX - minX) / layer.xBinLength; \
302  \
303  if (maxXind < 0) \
304  maxXind = 0; \
305  else if (maxXind > layer.lastXBinNumber) \
306  maxXind = layer.lastXBinNumber; \
307  \
308  for (int tInd = minTind; tInd <= maxTind; ++tInd) { \
309  LxTbTYXBin& tyxBin = layer.tyxBins[tInd]; \
310  \
311  for (int yInd = minYind; yInd <= maxYind; ++yInd) { \
312  LxTbYXBin& yxBin = tyxBin.yxBins[yInd]; \
313  \
314  for (int xInd = minXind; xInd <= maxXind; ++xInd) { \
315  LxTbXBin& xBin = yxBin.xBins[xInd]; \
316  \
317  for (std::list<LxTbBinnedPoint>::iterator pointIterator = \
318  xBin.points.begin(); \
319  pointIterator != xBin.points.end(); \
320  ++pointIterator) { \
321  LxTbBinnedPoint& point = *pointIterator; \
322  \
323  if (point.x >= minX && point.x <= maxX && point.y >= minY \
324  && point.y <= maxY && point.t >= minT && point.t <= maxT) {
325 
326 #define LXTB_ITERATE_LAYER_END \
327  point.use = true; \
328  xBin.use = true; \
329  } \
330  } \
331  \
332  if (xBin.use) yxBin.use = true; \
333  } \
334  \
335  if (yxBin.use) tyxBin.use = true; \
336  } \
337  } \
338  }
339 
340 #define LXTB_ITERATE_LAYER_END_NO_USE \
341  } \
342  } \
343  } \
344  } \
345  } \
346  } \
347  }
348 
349 
350 template<class HandlePoint>
351 void IterateLayer(LxTbLayer& layer, HandlePoint& handlePoint) {
352  for (int i = 0; i < layer.nofTYXBins; ++i) {
353  LxTbTYXBin& tyxBin = layer.tyxBins[i];
354 
355  if (!tyxBin.use) continue;
356 
357  for (int j = 0; j < layer.nofYXBins; ++j) {
358  LxTbYXBin& yxBin = tyxBin.yxBins[j];
359 
360  if (!yxBin.use) continue;
361 
362  for (int k = 0; k < layer.nofXBins; ++k) {
363  LxTbXBin& xBin = yxBin.xBins[k];
364 
365  if (!xBin.use) continue;
366 
367  for (std::list<LxTbBinnedPoint>::iterator l = xBin.points.begin();
368  l != xBin.points.end();
369  ++l) {
370  LxTbBinnedPoint& point = *l;
371 
372  if (!point.use) continue;
373 
374  handlePoint(point);
375  } // for (list<LxTbBinnedPoint>::iterator l = xBin.points.begin(); l != xBin.points.end(); ++l)
376  } // for (int k = 0; k < layer.nofXBins; ++k)
377  } // for (int j = 0; j < layer.nofYXBins; ++j)
378  } // for (int i = 0; i < lastLayer.nofTYXBins; ++i)
379 }
380 
381 template<class HandlePoint>
383  scaltype x,
384  scaltype dx,
385  scaltype scatX,
386  scaltype y,
387  scaltype dy,
388  scaltype scatY,
389  timetype t,
390  timetype dt,
391  HandlePoint& handlePoint) {
392  scaltype dxSq = dx * dx;
393  scaltype scatXSq = scatX * scatX;
394  scaltype varX0 = scatXSq + dxSq;
395  scaltype wX = NOF_SIGMAS * sqrt(varX0 + dxSq);
396  scaltype minX = x - wX;
397  scaltype maxX = x + wX;
398  scaltype dySq = dy * dy;
399  scaltype scatYSq = scatY * scatY;
400  scaltype varY0 = scatYSq + dySq;
401  scaltype wY = NOF_SIGMAS * sqrt(varY0 + dySq);
402  scaltype minY = y - wY;
403  scaltype maxY = y + wY;
404  timetype varT0 = dt * dt;
405  timetype wT = NOF_SIGMAS * sqrt(2.0) * dt;
406  timetype minT = t - wT;
407  timetype maxT = t + wT;
408 
409  if (maxX < layer.minX || minX > layer.maxX || maxY < layer.minY
410  || minY > layer.maxY || maxT < layer.minT || minT > layer.maxT)
411  return;
412 
413  int minTind = (minT - layer.minT) / layer.timeBinLength;
414 
415  if (minTind < 0)
416  minTind = 0;
417  else if (minTind > layer.lastTimeBinNumber)
418  minTind = layer.lastTimeBinNumber;
419 
420  int maxTind = (maxT - layer.minT) / layer.timeBinLength;
421 
422  if (maxTind < 0)
423  maxTind = 0;
424  else if (maxTind > layer.lastTimeBinNumber)
425  maxTind = layer.lastTimeBinNumber;
426 
427  int minYind = (minY - layer.minY) / layer.yBinLength;
428 
429  if (minYind < 0)
430  minYind = 0;
431  else if (minYind > layer.lastYBinNumber)
432  minYind = layer.lastYBinNumber;
433 
434  int maxYind = (maxY - layer.minY) / layer.yBinLength;
435 
436  if (maxYind < 0)
437  maxYind = 0;
438  else if (maxYind > layer.lastYBinNumber)
439  maxYind = layer.lastYBinNumber;
440 
441  int minXind = (minX - layer.minX) / layer.xBinLength;
442 
443  if (minXind < 0)
444  minXind = 0;
445  else if (minXind > layer.lastXBinNumber)
446  minXind = layer.lastXBinNumber;
447 
448  int maxXind = (maxX - layer.minX) / layer.xBinLength;
449 
450  if (maxXind < 0)
451  maxXind = 0;
452  else if (maxXind > layer.lastXBinNumber)
453  maxXind = layer.lastXBinNumber;
454 
455  for (int tInd = minTind; tInd <= maxTind; ++tInd) {
456  LxTbTYXBin& tyxBin = layer.tyxBins[tInd];
457 
458  for (int yInd = minYind; yInd <= maxYind; ++yInd) {
459  LxTbYXBin& yxBin = tyxBin.yxBins[yInd];
460 
461  for (int xInd = minXind; xInd <= maxXind; ++xInd) {
462  LxTbXBin& xBin = yxBin.xBins[xInd];
463 
464  for (std::list<LxTbBinnedPoint>::iterator pointIterator =
465  xBin.points.begin();
466  pointIterator != xBin.points.end();
467  ++pointIterator) {
468  LxTbBinnedPoint& point = *pointIterator;
469  scaltype errWinXSq = NOF_SIGMAS_SQ * (varX0 + point.dx * point.dx);
470  scaltype errWinYSq = NOF_SIGMAS_SQ * (varY0 + point.dy * point.dy);
471  scaltype errWinTSq = NOF_SIGMAS_SQ * (varT0 + point.dt * point.dt);
472  scaltype deltaX = point.x - x;
473  scaltype deltaXSq = deltaX * deltaX;
474  scaltype deltaY = point.y - y;
475  scaltype deltaYSq = deltaY * deltaY;
476  scaltype deltaT = point.t - t;
477  scaltype deltaTSq = deltaT * deltaT;
478 
479  if (deltaXSq > errWinXSq || deltaYSq > errWinYSq
480  || deltaTSq > errWinTSq)
481  continue;
482 
483  point.use = true;
484  xBin.use = true;
485  handlePoint(point);
486  }
487 
488  if (xBin.use) yxBin.use = true;
489  }
490 
491  if (yxBin.use) tyxBin.use = true;
492  }
493  }
494 }
495 
496 template<class HandlePoint>
497 void IterateNeighbourhoodConst(LxTbLayer& layer, HandlePoint& handlePoint) {}
498 
499 #endif /* LXTBBINNED2_H */
LxTbTYXBin::LxTbTYXBin
LxTbTYXBin(int nxbs, int nybs)
Definition: LxTBBinned2.h:178
LxTbBinnedPoint::PointDesc::pointId
Int_t pointId
Definition: LxTBBinned.h:96
LxTbBinnedPoint::refId
Int_t refId
Definition: LxTBBinned.h:87
LxTbBinnedPoint::~LxTbBinnedPoint
~LxTbBinnedPoint()
Definition: LxTBBinned2.h:125
LxTbBinnedPoint::use
bool use
Definition: LxTBBinned.h:85
LxTbLayer::minT
timetype minT
Definition: LxTBBinned2.h:254
LxTbYXBin::~LxTbYXBin
~LxTbYXBin()
Definition: LxTBBinned2.h:163
LxTbLayer::Init
void Init()
Definition: LxTBBinned2.h:232
LxTbTYXBin
Definition: LxTBBinned.h:180
NOF_SIGMAS_SQ
#define NOF_SIGMAS_SQ
Definition: LxTBBinned2.h:29
LxTbBinnedPoint::mcRefs
std::list< PointDesc > mcRefs
Definition: LxTBBinned.h:100
scaltype
#define scaltype
Definition: CbmGlobalTrackingDefs.h:17
sqrt
friend F32vec4 sqrt(const F32vec4 &a)
Definition: L1/vectors/P4_F32vec4.h:41
LxTbLayer::yBinLength
scaltype yBinLength
Definition: LxTBBinned2.h:257
LxTbTYXBin::~LxTbTYXBin
~LxTbTYXBin()
Definition: LxTBBinned2.h:187
LxTbLayer::Clear
void Clear()
Definition: LxTBBinned2.h:227
LxTbLayer::LxTbLayer
LxTbLayer(int nofxb, int nofyb, int noftb)
Definition: LxTBBinned2.h:202
LxTbTYXBin::yxBins
LxTbYXBin * yxBins
Definition: LxTBBinned.h:181
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
LxTbTYXBin::Clear
void Clear()
Definition: LxTBBinned2.h:189
LxTbXBin::LxTbXBin
LxTbXBin()
Definition: LxTBBinned2.h:133
LxTbYXBin::use
bool use
Definition: LxTBBinned.h:164
LxTbYXBin::Clear
void Clear()
Definition: LxTBBinned2.h:165
LxTbLayer::lastXBinNumber
int lastXBinNumber
Definition: LxTBBinned2.h:249
LxTbTYXBin::nofYXBins
int nofYXBins
Definition: LxTBBinned.h:182
TIMEBIN_LENGTH
#define TIMEBIN_LENGTH
Definition: LxTBBinned2.h:27
LxTbXBin::points
std::list< LxTbBinnedPoint > points
Definition: LxTBBinned.h:145
LxTbYXBin::xBins
LxTbXBin * xBins
Definition: LxTBBinned.h:162
LxTbBinnedPoint::isTrd
bool isTrd
Definition: LxTBBinned.h:91
LxTbLayer::z
scaltype z
Definition: LxTBBinned2.h:259
LxTbLayer::tyxBins
LxTbTYXBin * tyxBins
Definition: LxTBBinned2.h:243
LxTbBinnedPoint::dx
scaltype dx
Definition: LxTBBinned.h:80
LxTbYXBin::nofXBins
int nofXBins
Definition: LxTBBinned.h:163
LxTbXBin
Definition: LxTBBinned.h:144
LxTbBinnedPoint::LxTbBinnedPoint
LxTbBinnedPoint(const LxTbBinnedPoint &original)
Definition: LxTBBinned2.h:84
LxTbXBin::use
bool use
Definition: LxTBBinned.h:146
LxTbBinnedPoint::triplets
std::list< LxTbBinnedTriplet * > triplets
Definition: LxTBBinned2.h:41
LxTbLayer::nofYXBins
int nofYXBins
Definition: LxTBBinned2.h:245
LxTbLayer::minY
scaltype minY
Definition: LxTBBinned2.h:252
LxTbBinnedTriplet::lPoint
LxTbBinnedPoint * lPoint
Definition: LxTBBinned2.h:108
LxTbXBin::AddPoint
void AddPoint(const LxTbBinnedPoint &point)
Definition: LxTBBinned2.h:143
IterateNeighbourhoodConst
void IterateNeighbourhoodConst(LxTbLayer &layer, HandlePoint &handlePoint)
Definition: LxTBBinned2.h:497
LxTbYXBin::LxTbYXBin
LxTbYXBin(int nxbs)
Definition: LxTBBinned2.h:161
LxTbLayer::lastTimeBinNumber
int lastTimeBinNumber
Definition: LxTBBinned2.h:247
LxTbBinnedPoint::PointDesc::trackId
Int_t trackId
Definition: LxTBBinned.h:97
IterateNeighbourhood
void IterateNeighbourhood(LxTbLayer &layer, scaltype x, scaltype dx, scaltype scatX, scaltype y, scaltype dy, scaltype scatY, timetype t, timetype dt, HandlePoint &handlePoint)
Definition: LxTBBinned2.h:382
LxTbLayer::lastYBinNumber
int lastYBinNumber
Definition: LxTBBinned2.h:248
LxTbBinnedTriplet::neighbours
std::list< LxTbBinnedPoint * > neighbours
Definition: LxTBBinned2.h:114
LxTbLayer::timeBinLength
timetype timeBinLength
Definition: LxTBBinned2.h:258
LxTbLayer::SetMinT
void SetMinT(timetype v)
Definition: LxTBBinned2.h:238
LxTbBinnedPoint::y
scaltype y
Definition: LxTBBinned.h:81
LxTbLayer::nofTYXBins
int nofTYXBins
Definition: LxTBBinned2.h:244
CbmPixelHit.h
LxTbXBin::maxDx
scaltype maxDx
Definition: LxTBBinned.h:156
LxTbBinnedPoint::PointDesc
Definition: LxTBBinned.h:94
LxTbBinnedPoint::PointDesc::eventId
Int_t eventId
Definition: LxTBBinned.h:95
LxTbBinnedPoint::dy
scaltype dy
Definition: LxTBBinned.h:82
LxTbBinnedTriplet::ty
scaltype ty
Definition: LxTBBinned2.h:112
LxTbTYXBin::use
bool use
Definition: LxTBBinned.h:183
LxTbLayer::maxT
timetype maxT
Definition: LxTBBinned2.h:255
LxTbLayer::~LxTbLayer
~LxTbLayer()
Definition: LxTBBinned2.h:225
v
__m128 v
Definition: L1/vectors/P4_F32vec4.h:1
LxTbBinnedPoint::dt
timetype dt
Definition: LxTBBinned.h:84
timetype
#define timetype
Definition: CbmGlobalTrackingDefs.h:18
LxTbYXBin
Definition: LxTBBinned.h:161
x
Double_t x
Definition: CbmMvdSensorDigiToHitTask.cxx:68
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68
LxTbBinnedPoint::pHit
const CbmPixelHit * pHit
Definition: LxTBBinned.h:90
LxTbLayer::maxY
scaltype maxY
Definition: LxTBBinned2.h:253
CbmPixelHit
Definition: CbmPixelHit.h:21
LXTB_QA
#define LXTB_QA
Definition: LxTBDefinitions.h:18
NOF_SIGMAS
#define NOF_SIGMAS
Definition: LxTBBinned2.h:28
LxTbXBin::maxDt
timetype maxDt
Definition: LxTBBinned2.h:157
IterateLayer
void IterateLayer(LxTbLayer &layer, HandlePoint &handlePoint)
Definition: LxTBBinned2.h:351
LxTbBinnedTriplet
Definition: LxTBBinned2.h:107
LxTBDefinitions.h
LxTbBinnedTriplet::dty
scaltype dty
Definition: LxTBBinned2.h:113
LxTbBinnedPoint::t
timetype t
Definition: LxTBBinned.h:83
LxTbBinnedPoint
Definition: LxTBBinned.h:78
LxTbBinnedTriplet::tx
scaltype tx
Definition: LxTBBinned2.h:110
LxTbBinnedTriplet::rPoint
LxTbBinnedPoint * rPoint
Definition: LxTBBinned2.h:109
LxTbLayer::minX
scaltype minX
Definition: LxTBBinned2.h:250
LxTbXBin::maxDy
scaltype maxDy
Definition: LxTBBinned2.h:156
LxTbBinnedPoint::layerNumber
Int_t layerNumber
Definition: LxTBBinned2.h:48
LxTbBinnedTriplet::LxTbBinnedTriplet
LxTbBinnedTriplet(LxTbBinnedPoint *lp, LxTbBinnedPoint *rp, scaltype deltaZ)
Definition: LxTBBinned2.h:116
LxTbBinnedPoint::x
scaltype x
Definition: LxTBBinned.h:79
LxTbLayer::maxX
scaltype maxX
Definition: LxTBBinned2.h:251
LxTbXBin::Clear
void Clear()
Definition: LxTBBinned2.h:135
LxTbBinnedPoint::stationNumber
Int_t stationNumber
Definition: LxTBBinned.h:92
LxTbLayer
Definition: LxTBBinned2.h:201
LxTbBinnedPoint::LxTbBinnedPoint
LxTbBinnedPoint(scaltype X, scaltype Dx, scaltype Y, scaltype Dy, timetype T, timetype Dt, Int_t ri, bool Use)
Definition: LxTBBinned2.h:59
LxTbBinnedTriplet::dtx
scaltype dtx
Definition: LxTBBinned2.h:111
LxTbLayer::nofXBins
int nofXBins
Definition: LxTBBinned2.h:246
LxTbLayer::xBinLength
scaltype xBinLength
Definition: LxTBBinned2.h:256