BmnRoot
Loading...
Searching...
No Matches
L1Triplet.h
Go to the documentation of this file.
1#ifndef L1Triplet_H
2#define L1Triplet_H
3
5{
6
7 private:
8
9 THitI w0; // left hit (16b) index in vStsHits array
10 THitI w1; // middle hit(16b)
11 THitI w2; // right hit(16b)
12 unsigned char b0; // chi2(5b) + level(3b)
13 unsigned char bl; // level
14 unsigned char b1; // qp (8b)
15 unsigned char st; // staL (4b), staM-1-staL (2b), staR-2-staL (2b)
16 float chi2;
17
18 public:
19
20 unsigned char Cqp;
21
22 std::vector<unsigned int> neighbours;
23
24 L1Triplet(): w0(0), w1(0), w2(0), b0(0), bl(0), b1(0), st(0), chi2(0.),
25 Cqp(0), neighbours() {
26 neighbours.clear();
27 };
28
29 void Set( unsigned int iHitL, unsigned int iHitM, unsigned int iHitR,
30 unsigned int iStaL, unsigned int iStaM, unsigned int iStaR,
31 unsigned char Level, unsigned char Qp,
32 float Chi2
33 ){
34 chi2 = Chi2;
35
36 w0 = iHitL;
37 w1 = iHitM;
38 w2 = iHitR;
39
40 Chi2 = sqrt(fabs(Chi2))*31./3.5 ; // 3.5 == 31
41 if( Chi2>31 || !finite(Chi2) ) Chi2 = 31;
42 b0 = ( (static_cast<unsigned char>( Chi2 ))<<3 ) + (Level%8);
43 b1 = Qp;
44 bl = Level;
45
46 st = (iStaL<<4) + ((iStaM-iStaL-1)<<2) + (iStaR-iStaL-2);
47 }
48
49 THitI GetLHit() const {
50 return w0;
51 }
52 THitI GetMHit() const {
53 return w1;
54 }
55 THitI GetRHit() const {
56 return w2;
57 }
58
59 // unsigned int GetFirstNeighbour() const {
60 // return w1;
61 // }
62 // unsigned int GetNNeighbours() const {
63 // return w2;
64 // }
65
66 unsigned char GetLevel() const {
67// return b0%8;
68 return bl;
69 }
70
71 unsigned char GetQp() const {
72 return b1;
73 }
74
75 float GetChi2() const {
76 // float x = (b0>>3)*3.5/31.;
77 // return x*x;
78 return chi2;
79 }
80
81 float GetQpOrig( float MaxInvMom ){
82 return(GetQp()*(MaxInvMom*2)/255. - MaxInvMom);
83 }
84
85 int GetLSta() const {
86 return st>>4;
87 }
88
89 int GetMSta() const {
90 return ((st%16)>>2) + GetLSta() + 1;
91 }
92
93 int GetRSta() const {
94 return (st%4) + GetLSta() + 2;
95 }
96
97};
98
99#endif
unsigned int THitI
Definition L1StsHit.h:6
friend F32vec4 sqrt(const F32vec4 &a)
Definition P4_F32vec4.h:34
friend F32vec4 fabs(const F32vec4 &a)
Definition P4_F32vec4.h:52
void Set(unsigned int iHitL, unsigned int iHitM, unsigned int iHitR, unsigned int iStaL, unsigned int iStaM, unsigned int iStaR, unsigned char Level, unsigned char Qp, float Chi2)
Definition L1Triplet.h:29
int GetRSta() const
Definition L1Triplet.h:93
unsigned char GetQp() const
Definition L1Triplet.h:71
int GetLSta() const
Definition L1Triplet.h:85
THitI GetLHit() const
Definition L1Triplet.h:49
THitI GetMHit() const
Definition L1Triplet.h:52
int GetMSta() const
Definition L1Triplet.h:89
THitI GetRHit() const
Definition L1Triplet.h:55
float GetQpOrig(float MaxInvMom)
Definition L1Triplet.h:81
unsigned char GetLevel() const
Definition L1Triplet.h:66
std::vector< unsigned int > neighbours
Definition L1Triplet.h:22
unsigned char Cqp
Definition L1Triplet.h:20
float GetChi2() const
Definition L1Triplet.h:75