BmnRoot
Loading...
Searching...
No Matches
L1HitPoint.h
Go to the documentation of this file.
1#ifndef _L1HitPoint_h_
2#define _L1HitPoint_h_
3
5#if 1
6struct L1HitPoint{
7L1HitPoint() : x(0.), y(0.), z(0.), u(0.), v(0.), du(0.), dv(0.), n(0){};
8L1HitPoint(fscal x_, fscal y_, fscal z_, fscal v_, fscal u_, fscal dv_ = 0.0, fscal du_ = 0.0, unsigned short int n_ = 0):
9 x(x_), y(y_), z(z_), u(u_), v(v_), du(du_), dv(dv_), n(n_){};
10
11 fscal Xs() const { return X()/Z(); }
12 fscal Ys() const { return Y()/Z(); } // value to sort hits by
13
14 fscal X() const { return x; }
15 fscal Y() const { return y; }
16 fscal Z() const { return z; }
17 fscal U() const { return u; }
18 fscal V() const { return v; }
19 fscal DU() const { return du; }
20 fscal DV() const { return dv; }
21
22 unsigned short int N() const { return n; }
23 private:
24
25 float x, y;
26 float z; // TODO: may be we should use iz
27 float u, v; // x\u, v - front and back strips; x, y, z - coordinates of hits
28 float du, dv; // du, dv - front and back coordinate errors
29
30 unsigned short int n; // number of event
31};
32#else
33
34static const float R = 60;
35static const float shortPackingConstant = 2 * R / 65535.f;
36static const float MZ = 110;
37static const float shortPackingConstantZ = MZ / 65535.f;
38
40struct L1HitPoint{
41 L1HitPoint(){};
42 L1HitPoint(fscal x_, fscal y_, fscal z_, fscal v_, fscal u_, unsigned short int n_ = 0): x(f2s(x_)), y(f2s(y_)), z(f2sZ(z_)), u(f2s(u_)), v(f2s(v_)), n(n_){};
43
44 fscal Xs() const { return X()/Z(); }
45 fscal Ys() const { return Y()/Z(); } // value to sort hits by
46
47 fscal X() const { return s2f(x); }
48 fscal Y() const { return s2f(y); }
49 fscal Z() const { return s2fZ(z); }
50 fscal U() const { return s2f(u); }
51 fscal V() const { return s2f(v); }
52
53 unsigned short int N() const { return n; }
54 private:
55 //unsigned short int
56 unsigned short int f2s(float f) const {
57 return (f + R)/shortPackingConstant;
58 }
59 float s2f(unsigned short int f) const {
60 return (float(f)+0.5)*shortPackingConstant - R;
61 }
62
63 unsigned short int f2sZ(float f) const {
64 return (f)/shortPackingConstantZ;
65 }
66 float s2fZ(unsigned short int f) const {
67 return (float(f)+0.5)*shortPackingConstantZ;
68 }
69
70 unsigned short int x, y;
71 unsigned short int z; // TODO: may be we should use iz
72 unsigned short int u, v; // x\u, v - front and back strips; x, y, z - coordinates of hits
73
74 unsigned short int n; // number of event
75};
76
77#endif
78
79#endif
80
81
float fscal
Definition P4_F32vec4.h:232
float f
Definition P4_F32vec4.h:21
contain strips positions and coordinates of hit
Definition L1HitPoint.h:6
fscal Ys() const
Definition L1HitPoint.h:12
fscal V() const
Definition L1HitPoint.h:18
fscal DU() const
Definition L1HitPoint.h:19
fscal U() const
Definition L1HitPoint.h:17
fscal Xs() const
Definition L1HitPoint.h:11
fscal Z() const
Definition L1HitPoint.h:16
unsigned short int N() const
Definition L1HitPoint.h:22
fscal Y() const
Definition L1HitPoint.h:15
fscal X() const
Definition L1HitPoint.h:14
L1HitPoint(fscal x_, fscal y_, fscal z_, fscal v_, fscal u_, fscal dv_=0.0, fscal du_=0.0, unsigned short int n_=0)
Definition L1HitPoint.h:8
fscal DV() const
Definition L1HitPoint.h:20