CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
TTTrack_TrackWord Class Reference

#include <TTTrack_TrackWord.h>

Inheritance diagram for TTTrack_TrackWord:
TTTrack< T >

Public Member Functions

unsigned int get_BendChi2Bits ()
 
unsigned int get_chi2Bits ()
 
unsigned int get_d0Bits ()
 
unsigned int get_etaBits ()
 
unsigned int get_hitPattern ()
 
float get_iBendChi2 ()
 
float get_ichi2 ()
 
float get_id0 ()
 
float get_ieta ()
 
float get_iphi ()
 
float get_iRinv ()
 
unsigned int get_ispare ()
 
float get_iz0 ()
 
unsigned int get_phiBits ()
 
unsigned int get_RinvBits ()
 
unsigned int get_z0Bits ()
 
TTTrack_TrackWordoperator= (const TTTrack_TrackWord &word)
 
void setTrackWord (const GlobalVector &Momentum, const GlobalPoint &POCA, double theRinv, double theChi2, double theBendChi2, unsigned int theHitPattern, unsigned int iSpare)
 
void setTrackWord (unsigned int theRinv, unsigned int phi0, unsigned int tanl, unsigned int z0, unsigned int d0, unsigned int theChi2, unsigned int theBendChi2, unsigned int theHitPattern, unsigned int iSpare)
 
 TTTrack_TrackWord ()
 
 TTTrack_TrackWord (const GlobalVector &Momentum, const GlobalPoint &POCA, double theRinv, double theChi2, double theBendChi2, unsigned int theHitPattern, unsigned int iSpare)
 
 TTTrack_TrackWord (unsigned int theRinv, unsigned int phi0, unsigned int tanl, unsigned int z0, unsigned int d0, unsigned int theChi2, unsigned int theBendChi2, unsigned int theHitPattern, unsigned int iSpare)
 
 TTTrack_TrackWord (const TTTrack_TrackWord &word)
 
unsigned int unpack_hitPattern ()
 
float unpack_iBendChi2 ()
 
float unpack_ichi2 ()
 
float unpack_id0 ()
 
float unpack_ieta ()
 
float unpack_iphi ()
 
float unpack_iRinv ()
 
unsigned int unpack_ispare ()
 
float unpack_iz0 ()
 

Private Member Functions

unsigned int digitize_Signed (float var, unsigned int maxBit, unsigned int minBit, float lsb)
 
void initialize ()
 
float unpack_Signed (unsigned int bits, unsigned int nBits, float lsb)
 

Private Attributes

float Bchi2Bins [8]
 
float chi2Bins [16]
 
unsigned int iBendChi2
 
unsigned int ichi2
 
unsigned int id0
 
unsigned int ieta
 
unsigned int iHitPattern
 
unsigned int iphi
 
unsigned int iRinv
 
unsigned int ispare
 
unsigned int iz0
 
const float maxCurv = 0.5
 
const float maxD0 = 15.
 
const float maxEta = 2.5
 
const float maxPhi = 0.35
 
const float maxZ0 = 20.
 
unsigned int NBchi2
 
const unsigned int NBChi2Bits = 3
 
unsigned int Nchi2
 
const unsigned int NChi2Bits = 4
 
const unsigned int NCurvBits = 14
 
const unsigned int ND0Bits = 12
 
const unsigned int NEtaBits = 15
 
const unsigned int NHitsBits = 7
 
const unsigned int NPhiBits = 11
 
const unsigned int NSpareBits = 14
 
const unsigned int NZ0Bits = 11
 
unsigned int TrackWord1
 
unsigned int TrackWord2
 
unsigned int TrackWord3
 
float valLSBCurv
 
float valLSBD0
 
float valLSBEta
 
float valLSBPhi
 
float valLSBZ0
 

Detailed Description

Definition at line 19 of file TTTrack_TrackWord.h.

Constructor & Destructor Documentation

TTTrack_TrackWord::TTTrack_TrackWord ( )
inline
TTTrack_TrackWord::TTTrack_TrackWord ( const GlobalVector Momentum,
const GlobalPoint POCA,
double  theRinv,
double  theChi2,
double  theBendChi2,
unsigned int  theHitPattern,
unsigned int  iSpare 
)

Definition at line 18 of file TTTrack_TrackWord.cc.

References setTrackWord().

24  {
25  setTrackWord(Momentum, POCA, theRinv, theChi2, theBendChi2, theHitPattern, iSpare);
26 }
void setTrackWord(const GlobalVector &Momentum, const GlobalPoint &POCA, double theRinv, double theChi2, double theBendChi2, unsigned int theHitPattern, unsigned int iSpare)
TTTrack_TrackWord::TTTrack_TrackWord ( unsigned int  theRinv,
unsigned int  phi0,
unsigned int  tanl,
unsigned int  z0,
unsigned int  d0,
unsigned int  theChi2,
unsigned int  theBendChi2,
unsigned int  theHitPattern,
unsigned int  iSpare 
)

Definition at line 28 of file TTTrack_TrackWord.cc.

References initialize().

37  : iRinv(theRinv),
38  iphi(phi0),
39  ieta(eta),
40  iz0(z0),
41  id0(d0),
42  ichi2(theChi2), //revert to other packing? Or will be unpacked wrong
43  iBendChi2(theBendChi2), // revert to ogher packing? Or will be unpacked wrong
44  ispare(iSpare),
45  iHitPattern(theHitPattern) {
46  initialize();
47 }
unsigned int iBendChi2
unsigned int iHitPattern
TTTrack_TrackWord::TTTrack_TrackWord ( const TTTrack_TrackWord word)
inline

Definition at line 100 of file TTTrack_TrackWord.h.

References iBendChi2, ichi2, id0, ieta, iHitPattern, initialize(), iphi, iRinv, ispare, iz0, TrackWord1, TrackWord2, and TrackWord3.

100  {
101  initialize();
102 
103  iRinv = word.iRinv;
104  iphi = word.iphi;
105  ieta = word.ieta;
106  iz0 = word.iz0;
107  id0 = word.id0;
108  ichi2 = word.ichi2;
109  iBendChi2 = word.iBendChi2;
110  ispare = word.ispare;
111  iHitPattern = word.iHitPattern;
112 
113  // three 32-bit packed words
114  TrackWord1 = word.TrackWord1;
115  TrackWord2 = word.TrackWord2;
116  TrackWord3 = word.TrackWord3;
117  }
unsigned int iBendChi2
unsigned int TrackWord2
unsigned int iHitPattern
unsigned int TrackWord1
unsigned int TrackWord3

Member Function Documentation

unsigned int TTTrack_TrackWord::digitize_Signed ( float  var,
unsigned int  maxBit,
unsigned int  minBit,
float  lsb 
)
private

Definition at line 307 of file TTTrack_TrackWord.cc.

Referenced by operator=(), and setTrackWord().

307  {
308  unsigned int nBits = (maxBit - minBit + 1);
309  unsigned int myVar = std::floor(fabs(var) / lsb);
310  unsigned int maxVal = (1 << (nBits - 1)) - 1;
311  if (myVar > maxVal)
312  myVar = maxVal;
313  if (var < 0)
314  myVar = (1 << nBits) - myVar; // two's complement encoding
315  unsigned int seg = myVar;
316  return seg;
317 }
unsigned int TTTrack_TrackWord::get_BendChi2Bits ( )

Definition at line 295 of file TTTrack_TrackWord.cc.

References bits, and TrackWord3.

Referenced by TTTrack_TrackWord().

295  {
296  unsigned int bits = (TrackWord3 & 0x0001C000) >> 14;
297  return bits;
298 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
unsigned int TrackWord3
unsigned int TTTrack_TrackWord::get_chi2Bits ( )

Definition at line 229 of file TTTrack_TrackWord.cc.

References ichi2.

Referenced by TTTrack_TrackWord().

229  {
230  //unsigned int bits = (TrackWord1 & 0x0000000F);
231  return ichi2;
232 }
unsigned int TTTrack_TrackWord::get_d0Bits ( )

Definition at line 261 of file TTTrack_TrackWord.cc.

References id0.

Referenced by TTTrack_TrackWord().

261  {
262  // unsigned int bits = (TrackWord2 & 0x000FFF80) >> 7;
263  return id0;
264 }
unsigned int TTTrack_TrackWord::get_etaBits ( )

Definition at line 197 of file TTTrack_TrackWord.cc.

References ieta.

Referenced by TTTrack_TrackWord().

197  {
198  //unsigned int bits = (TrackWord1 & 0xFFFF0000) >> 16;
199  return ieta;
200 }
unsigned int TTTrack_TrackWord::get_hitPattern ( )

Definition at line 271 of file TTTrack_TrackWord.cc.

References iHitPattern.

Referenced by TTTrack_TrackWord().

271 { return iHitPattern; }
unsigned int iHitPattern
float TTTrack_TrackWord::get_iBendChi2 ( )

Definition at line 290 of file TTTrack_TrackWord.cc.

References Bchi2Bins, and iBendChi2.

Referenced by TTTrack_TrackWord().

290  {
291  float unpBChi2 = Bchi2Bins[iBendChi2];
292  return unpBChi2;
293 }
unsigned int iBendChi2
float TTTrack_TrackWord::get_ichi2 ( )

Definition at line 224 of file TTTrack_TrackWord.cc.

References chi2Bins, and ichi2.

Referenced by TTTrack_TrackWord().

224  {
225  float unpChi2 = chi2Bins[ichi2];
226  return unpChi2;
227 }
float TTTrack_TrackWord::get_id0 ( )

Definition at line 256 of file TTTrack_TrackWord.cc.

References id0, ND0Bits, unpack_Signed(), and valLSBD0.

Referenced by TTTrack_TrackWord().

256  {
257  float unpD0 = unpack_Signed(id0, ND0Bits, valLSBD0);
258  return unpD0;
259 }
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
const unsigned int ND0Bits
float TTTrack_TrackWord::get_ieta ( )

Definition at line 192 of file TTTrack_TrackWord.cc.

References ieta, NEtaBits, unpack_Signed(), and valLSBEta.

Referenced by TTTrack_TrackWord().

192  {
193  float unpEta = unpack_Signed(ieta, NEtaBits, valLSBEta);
194  return unpEta;
195 }
const unsigned int NEtaBits
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
float TTTrack_TrackWord::get_iphi ( )

Definition at line 240 of file TTTrack_TrackWord.cc.

References iphi, NPhiBits, unpack_Signed(), and valLSBPhi.

Referenced by TTTrack_TrackWord().

240  {
241  float unpPhi = unpack_Signed(iphi, NPhiBits, valLSBPhi);
242  return unpPhi;
243 }
const unsigned int NPhiBits
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
float TTTrack_TrackWord::get_iRinv ( )

Definition at line 279 of file TTTrack_TrackWord.cc.

References iRinv, NCurvBits, unpack_Signed(), and valLSBCurv.

Referenced by TTTrack_TrackWord().

279  {
280  float unpCurv = unpack_Signed(iRinv, NCurvBits, valLSBCurv);
281  return unpCurv;
282 }
const unsigned int NCurvBits
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
unsigned int TTTrack_TrackWord::get_ispare ( )

Definition at line 305 of file TTTrack_TrackWord.cc.

References ispare.

Referenced by TTTrack_TrackWord().

305 { return ispare; }
float TTTrack_TrackWord::get_iz0 ( )

Definition at line 208 of file TTTrack_TrackWord.cc.

References iz0, NZ0Bits, unpack_Signed(), and valLSBZ0.

Referenced by TTTrack_TrackWord().

208  {
209  float unpZ0 = unpack_Signed(iz0, NZ0Bits, valLSBZ0);
210  return unpZ0;
211 }
const unsigned int NZ0Bits
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
unsigned int TTTrack_TrackWord::get_phiBits ( )

Definition at line 245 of file TTTrack_TrackWord.cc.

References iphi.

Referenced by TTTrack_TrackWord().

245  {
246  //unsigned int bits = (TrackWord2 & 0xFFF00000) >> 20;
247  return iphi;
248 }
unsigned int TTTrack_TrackWord::get_RinvBits ( )

Referenced by TTTrack_TrackWord().

unsigned int TTTrack_TrackWord::get_z0Bits ( )

Definition at line 213 of file TTTrack_TrackWord.cc.

References iz0.

Referenced by TTTrack_TrackWord().

213  {
214  //unsigned int bits = (TrackWord1 & 0x0000FFF0) >> 4;
215  return iz0;
216 }
void TTTrack_TrackWord::initialize ( )
private

Definition at line 331 of file TTTrack_TrackWord.cc.

References Bchi2Bins, chi2Bins, objects.autophobj::float, maxCurv, maxD0, maxEta, maxPhi, maxZ0, NBchi2, NBChi2Bits, Nchi2, NChi2Bits, NCurvBits, ND0Bits, NEtaBits, NPhiBits, NZ0Bits, valLSBCurv, valLSBD0, valLSBEta, valLSBPhi, and valLSBZ0.

Referenced by operator=(), setTrackWord(), and TTTrack_TrackWord().

331  {
332  /* bits for packing, constants defined in TTTrack_TrackWord.h :
333 
334  signed quantities (one bit for sign):
335 
336  q/R = 14+1
337  phi = 11+1 (relative to sector center)
338  eta = 15+1
339  z0 = 11+1
340  d0 = 12+1
341 
342  unsigned:
343 
344  chi2 = 4
345  BendChi2 = 3
346  hitPattern = 7
347  Spare = 14
348 
349  */
350 
351  // define bits, 1<<N = 2^N
352 
353  unsigned int CurvBins = (1 << NCurvBits);
354  unsigned int phiBins = (1 << NPhiBits);
355  unsigned int etaBins = (1 << NEtaBits);
356  unsigned int z0Bins = (1 << NZ0Bits);
357  unsigned int d0Bins = (1 << ND0Bits);
358 
359  Nchi2 = (1 << NChi2Bits);
360  NBchi2 = (1 << NBChi2Bits);
361 
362  valLSBCurv = maxCurv / float(CurvBins);
363  valLSBPhi = maxPhi / float(phiBins);
364  valLSBEta = maxEta / float(etaBins);
365  valLSBZ0 = maxZ0 / float(z0Bins);
366  valLSBD0 = maxD0 / float(d0Bins);
367 
368  chi2Bins[0] = 0.25;
369  chi2Bins[1] = 0.5;
370  chi2Bins[2] = 1.0;
371  chi2Bins[3] = 2.;
372  chi2Bins[4] = 3.;
373  chi2Bins[5] = 5.;
374  chi2Bins[6] = 7.;
375  chi2Bins[7] = 10.;
376  chi2Bins[8] = 15.;
377  chi2Bins[9] = 20.;
378  chi2Bins[10] = 40.;
379  chi2Bins[11] = 60.;
380  chi2Bins[12] = 100.;
381  chi2Bins[13] = 200.;
382  chi2Bins[14] = 500.;
383 
384  Bchi2Bins[0] = 0.5;
385  Bchi2Bins[1] = 1.25;
386  Bchi2Bins[2] = 2.0;
387  Bchi2Bins[3] = 3.0;
388  Bchi2Bins[4] = 5.0;
389  Bchi2Bins[5] = 10.;
390  Bchi2Bins[6] = 50.;
391 };
const unsigned int NZ0Bits
const unsigned int NBChi2Bits
const unsigned int NPhiBits
const unsigned int NChi2Bits
const unsigned int NEtaBits
const unsigned int NCurvBits
const unsigned int ND0Bits
TTTrack_TrackWord& TTTrack_TrackWord::operator= ( const TTTrack_TrackWord word)
inline

Definition at line 119 of file TTTrack_TrackWord.h.

References bits, digitize_Signed(), iBendChi2, ichi2, id0, ieta, iHitPattern, initialize(), iphi, iRinv, ispare, iz0, TrackWord1, TrackWord2, TrackWord3, unpack_Signed(), and JetChargeProducer_cfi::var.

119  {
120  initialize();
121  iRinv = word.iRinv;
122  iphi = word.iphi;
123  ieta = word.ieta;
124  iz0 = word.iz0;
125  id0 = word.id0;
126  ichi2 = word.ichi2;
127  iBendChi2 = word.iBendChi2;
128  ispare = word.ispare;
129  iHitPattern = word.iHitPattern;
130 
131  // three 32-bit packed words
132  TrackWord1 = word.TrackWord1;
133  TrackWord2 = word.TrackWord2;
134  TrackWord3 = word.TrackWord3;
135 
136  return *this;
137  }
unsigned int iBendChi2
unsigned int TrackWord2
unsigned int iHitPattern
unsigned int TrackWord1
unsigned int TrackWord3
void TTTrack_TrackWord::setTrackWord ( const GlobalVector Momentum,
const GlobalPoint POCA,
double  theRinv,
double  theChi2,
double  theBendChi2,
unsigned int  theHitPattern,
unsigned int  iSpare 
)

Definition at line 74 of file TTTrack_TrackWord.cc.

References Bchi2Bins, chi2Bins, digitize_Signed(), PV3DBase< T, PVType, FrameType >::eta(), iBendChi2, ichi2, id0, ieta, iHitPattern, initialize(), iphi, iRinv, ispare, iz0, NBchi2, Nchi2, NCurvBits, ND0Bits, NEtaBits, NPhiBits, NZ0Bits, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), TrackWord1, TrackWord2, TrackWord3, valLSBCurv, valLSBD0, valLSBEta, valLSBPhi, valLSBZ0, and PV3DBase< T, PVType, FrameType >::z().

Referenced by TTTrack< T >::setTrackWordBits(), and TTTrack_TrackWord().

80  {
81  initialize();
82 
83  // first, derive quantities to be packed
84 
85  float rPhi = Momentum.phi(); // this needs to be phi relative to center of sector ****
86  float rEta = Momentum.eta();
87  float rZ0 = POCA.z();
88  float rD0 = POCA.perp();
89 
90  // bin, convert to integers, and pack
91 
92  unsigned int seg1, seg2, seg3;
93  seg1 = 0;
94  seg2 = 0;
95  seg3 = 0;
96 
97  //eta
98 
100 
101  //z0
102  iz0 = digitize_Signed(rZ0, NZ0Bits, 0, valLSBZ0);
103 
104  //chi2 has non-linear bins
105 
106  ichi2 = 0;
107 
108  for (unsigned int ibin = 0; ibin < Nchi2; ++ibin) {
109  ichi2 = ibin;
110  if (theChi2 < chi2Bins[ibin])
111  break;
112  }
113 
114  //phi
115  iphi = digitize_Signed(rPhi, NPhiBits, 0, valLSBPhi);
116 
117  //d0
118  id0 = digitize_Signed(rD0, ND0Bits, 0, valLSBD0);
119 
120  //Rinv
121  iRinv = digitize_Signed(theRinv, NCurvBits, 0, valLSBCurv);
122 
123  //bend chi2 - non-linear bins
124  iBendChi2 = 0;
125 
126  for (unsigned int ibin = 0; ibin < NBchi2; ++ibin) {
127  iBendChi2 = ibin;
128  if (theBendChi2 < Bchi2Bins[ibin])
129  break;
130  }
131 
132  ispare = iSpare;
133 
134  // spare bits
135  if (ispare > 0x3FFF)
136  ispare = 0x3FFF;
137 
138  iHitPattern = theHitPattern;
139 
140  //set bits
141  /*
142  Current packing scheme. Any changes here ripple everywhere!
143 
144  uint word1 = 16 (eta) + 12 (z0) + 4 (chi2) = 32 bits
145  uint word2 = 12 (phi) + 13 (d0) + 7 (hitPattern) = 32 bits
146  uint word3 = 15 (pT) + 3 (bend chi2) + 14 (spare/TMVA) = 32 bits
147  */
148 
149  //now pack bits; leave hardcoded for now as am example of how this could work
150 
151  seg1 = (ieta << 16); //take care of word packing later...
152  seg2 = (iz0 << 4);
153  seg3 = ichi2;
154 
155  //set bits
156 
157  TrackWord1 = seg1 + seg2 + seg3;
158  seg1 = 0;
159  seg2 = 0;
160  seg3 = 0;
161 
162  //second 32-bit word
163  seg1 = (iphi << 20);
164  seg2 = (id0 << 7);
165 
166  //HitMask
167  seg3 = theHitPattern;
168 
169  //set bits
170 
171  TrackWord2 = seg1 + seg2 + seg3;
172  seg1 = 0;
173  seg2 = 0;
174  seg3 = 0;
175 
176  //third 32-bit word
177 
178  seg1 = (iRinv << 17);
179  seg2 = (iBendChi2 << 14);
180  seg3 = ispare;
181 
182  TrackWord3 = seg1 + seg2 + seg3;
183 }
const unsigned int NZ0Bits
const unsigned int NPhiBits
T perp() const
Definition: PV3DBase.h:72
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
unsigned int iBendChi2
const unsigned int NEtaBits
T z() const
Definition: PV3DBase.h:64
const unsigned int NCurvBits
unsigned int TrackWord2
unsigned int iHitPattern
T eta() const
Definition: PV3DBase.h:76
unsigned int digitize_Signed(float var, unsigned int maxBit, unsigned int minBit, float lsb)
unsigned int TrackWord1
const unsigned int ND0Bits
unsigned int TrackWord3
void TTTrack_TrackWord::setTrackWord ( unsigned int  theRinv,
unsigned int  phi0,
unsigned int  tanl,
unsigned int  z0,
unsigned int  d0,
unsigned int  theChi2,
unsigned int  theBendChi2,
unsigned int  theHitPattern,
unsigned int  iSpare 
)

Definition at line 51 of file TTTrack_TrackWord.cc.

References allConversions_cfi::d0, PVValHelper::eta, iBendChi2, ichi2, id0, ieta, iHitPattern, initialize(), iphi, iRinv, ispare, and iz0.

59  {
60  iRinv = theRinv;
61  iphi = phi0;
62  ieta = eta;
63  iz0 = z0;
64  id0 = d0;
65  ichi2 = theChi2; //revert to other packing? Or will be unpacked wrong
66  iBendChi2 = theBendChi2; // revert to ogher packing? Or will be unpacked wrong
67  ispare = iSpare;
68  iHitPattern = theHitPattern;
69 
70  initialize();
71 }
unsigned int iBendChi2
unsigned int iHitPattern
unsigned int TTTrack_TrackWord::unpack_hitPattern ( )

Definition at line 266 of file TTTrack_TrackWord.cc.

References bits, and TrackWord2.

Referenced by TTTrack_TrackWord().

266  {
267  unsigned int bits = (TrackWord2 & 0x0000007F);
268  return bits;
269 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
unsigned int TrackWord2
float TTTrack_TrackWord::unpack_iBendChi2 ( )

Definition at line 284 of file TTTrack_TrackWord.cc.

References Bchi2Bins, bits, and TrackWord3.

Referenced by TTTrack_TrackWord().

284  {
285  unsigned int bits = (TrackWord3 & 0x0001C000) >> 14;
286  float unpBChi2 = Bchi2Bins[bits];
287  return unpBChi2;
288 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
unsigned int TrackWord3
float TTTrack_TrackWord::unpack_ichi2 ( )

Definition at line 218 of file TTTrack_TrackWord.cc.

References bits, chi2Bins, and TrackWord1.

Referenced by TTTrack_TrackWord().

218  {
219  unsigned int bits = (TrackWord1 & 0x0000000F);
220  float unpChi2 = chi2Bins[bits];
221  return unpChi2;
222 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
unsigned int TrackWord1
float TTTrack_TrackWord::unpack_id0 ( )

Definition at line 250 of file TTTrack_TrackWord.cc.

References bits, ND0Bits, TrackWord2, unpack_Signed(), and valLSBD0.

Referenced by TTTrack_TrackWord().

250  {
251  unsigned int bits = (TrackWord2 & 0x000FFF80) >> 7;
252  float unpD0 = unpack_Signed(bits, ND0Bits, valLSBD0);
253  return unpD0;
254 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
unsigned int TrackWord2
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
const unsigned int ND0Bits
float TTTrack_TrackWord::unpack_ieta ( )

Definition at line 186 of file TTTrack_TrackWord.cc.

References bits, NEtaBits, TrackWord1, unpack_Signed(), and valLSBEta.

Referenced by TTTrack_TrackWord().

186  {
187  unsigned int bits = (TrackWord1 & 0xFFFF0000) >> 16;
188  float unpEta = unpack_Signed(bits, NEtaBits, valLSBEta);
189  return unpEta;
190 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
const unsigned int NEtaBits
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
unsigned int TrackWord1
float TTTrack_TrackWord::unpack_iphi ( )

Definition at line 234 of file TTTrack_TrackWord.cc.

References bits, NPhiBits, TrackWord2, unpack_Signed(), and valLSBPhi.

Referenced by TTTrack_TrackWord().

234  {
235  unsigned int bits = (TrackWord2 & 0xFFF00000) >> 20;
236  float unpPhi = unpack_Signed(bits, NPhiBits, valLSBPhi);
237  return unpPhi;
238 }
const unsigned int NPhiBits
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
unsigned int TrackWord2
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
float TTTrack_TrackWord::unpack_iRinv ( )

Definition at line 273 of file TTTrack_TrackWord.cc.

References bits, NCurvBits, TrackWord3, unpack_Signed(), and valLSBCurv.

Referenced by TTTrack_TrackWord().

273  {
274  unsigned int bits = (TrackWord3 & 0xFFFE0000) >> 17;
275  float unpCurv = unpack_Signed(bits, NCurvBits, valLSBCurv);
276  return unpCurv;
277 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
const unsigned int NCurvBits
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
unsigned int TrackWord3
unsigned int TTTrack_TrackWord::unpack_ispare ( )

Definition at line 300 of file TTTrack_TrackWord.cc.

References bits, and TrackWord3.

Referenced by TTTrack_TrackWord().

300  {
301  unsigned int bits = (TrackWord3 & 0x00003FFF);
302  return bits;
303 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
unsigned int TrackWord3
float TTTrack_TrackWord::unpack_iz0 ( )

Definition at line 202 of file TTTrack_TrackWord.cc.

References bits, NZ0Bits, TrackWord1, unpack_Signed(), and valLSBZ0.

Referenced by TTTrack_TrackWord().

202  {
203  unsigned int bits = (TrackWord1 & 0x0000FFF0) >> 4;
204  float unpZ0 = unpack_Signed(bits, NZ0Bits, valLSBZ0);
205  return unpZ0;
206 }
const unsigned int NZ0Bits
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
float unpack_Signed(unsigned int bits, unsigned int nBits, float lsb)
unsigned int TrackWord1
float TTTrack_TrackWord::unpack_Signed ( unsigned int  bits,
unsigned int  nBits,
float  lsb 
)
private

Definition at line 319 of file TTTrack_TrackWord.cc.

References bits, and objects.autophobj::float.

Referenced by get_id0(), get_ieta(), get_iphi(), get_iRinv(), get_iz0(), operator=(), unpack_id0(), unpack_ieta(), unpack_iphi(), unpack_iRinv(), and unpack_iz0().

319  {
320  int isign = 1;
321  unsigned int maxVal = (1 << nBits) - 1;
322  if (bits & (1 << nBits)) { //check sign
323  isign = -1;
324  bits = (1 << (nBits + 1)) - bits; // if negative, flip everything for two's complement encoding
325  }
326  float unpacked = (float(bits & maxVal) + 0.5) * lsb;
327  unpacked = isign * unpacked;
328  return unpacked;
329 }
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits

Member Data Documentation

float TTTrack_TrackWord::Bchi2Bins[8]
private

Definition at line 172 of file TTTrack_TrackWord.h.

Referenced by get_iBendChi2(), initialize(), setTrackWord(), and unpack_iBendChi2().

float TTTrack_TrackWord::chi2Bins[16]
private

Definition at line 171 of file TTTrack_TrackWord.h.

Referenced by get_ichi2(), initialize(), setTrackWord(), and unpack_ichi2().

unsigned int TTTrack_TrackWord::iBendChi2
private

Definition at line 153 of file TTTrack_TrackWord.h.

Referenced by get_iBendChi2(), operator=(), setTrackWord(), and TTTrack_TrackWord().

unsigned int TTTrack_TrackWord::ichi2
private
unsigned int TTTrack_TrackWord::id0
private

Definition at line 151 of file TTTrack_TrackWord.h.

Referenced by get_d0Bits(), get_id0(), operator=(), setTrackWord(), and TTTrack_TrackWord().

unsigned int TTTrack_TrackWord::ieta
private
unsigned int TTTrack_TrackWord::iHitPattern
private

Definition at line 155 of file TTTrack_TrackWord.h.

Referenced by get_hitPattern(), operator=(), setTrackWord(), and TTTrack_TrackWord().

unsigned int TTTrack_TrackWord::iphi
private
unsigned int TTTrack_TrackWord::iRinv
private

Definition at line 147 of file TTTrack_TrackWord.h.

Referenced by get_iRinv(), operator=(), setTrackWord(), and TTTrack_TrackWord().

unsigned int TTTrack_TrackWord::ispare
private

Definition at line 154 of file TTTrack_TrackWord.h.

Referenced by get_ispare(), operator=(), setTrackWord(), and TTTrack_TrackWord().

unsigned int TTTrack_TrackWord::iz0
private

Definition at line 150 of file TTTrack_TrackWord.h.

Referenced by get_iz0(), get_z0Bits(), operator=(), setTrackWord(), and TTTrack_TrackWord().

const float TTTrack_TrackWord::maxCurv = 0.5
private

Definition at line 208 of file TTTrack_TrackWord.h.

Referenced by initialize().

const float TTTrack_TrackWord::maxD0 = 15.
private

Definition at line 212 of file TTTrack_TrackWord.h.

Referenced by initialize().

const float TTTrack_TrackWord::maxEta = 2.5
private

Definition at line 210 of file TTTrack_TrackWord.h.

Referenced by initialize().

const float TTTrack_TrackWord::maxPhi = 0.35
private

Definition at line 209 of file TTTrack_TrackWord.h.

Referenced by initialize().

const float TTTrack_TrackWord::maxZ0 = 20.
private

Definition at line 211 of file TTTrack_TrackWord.h.

Referenced by initialize().

unsigned int TTTrack_TrackWord::NBchi2
private

Definition at line 175 of file TTTrack_TrackWord.h.

Referenced by initialize(), and setTrackWord().

const unsigned int TTTrack_TrackWord::NBChi2Bits = 3
private

Definition at line 203 of file TTTrack_TrackWord.h.

Referenced by initialize().

unsigned int TTTrack_TrackWord::Nchi2
private

Definition at line 174 of file TTTrack_TrackWord.h.

Referenced by initialize(), and setTrackWord().

const unsigned int TTTrack_TrackWord::NChi2Bits = 4
private

Definition at line 202 of file TTTrack_TrackWord.h.

Referenced by initialize().

const unsigned int TTTrack_TrackWord::NCurvBits = 14
private

Definition at line 195 of file TTTrack_TrackWord.h.

Referenced by get_iRinv(), initialize(), setTrackWord(), and unpack_iRinv().

const unsigned int TTTrack_TrackWord::ND0Bits = 12
private

Definition at line 199 of file TTTrack_TrackWord.h.

Referenced by get_id0(), initialize(), setTrackWord(), and unpack_id0().

const unsigned int TTTrack_TrackWord::NEtaBits = 15
private

Definition at line 197 of file TTTrack_TrackWord.h.

Referenced by get_ieta(), initialize(), setTrackWord(), and unpack_ieta().

const unsigned int TTTrack_TrackWord::NHitsBits = 7
private

Definition at line 204 of file TTTrack_TrackWord.h.

const unsigned int TTTrack_TrackWord::NPhiBits = 11
private

Definition at line 196 of file TTTrack_TrackWord.h.

Referenced by get_iphi(), initialize(), setTrackWord(), and unpack_iphi().

const unsigned int TTTrack_TrackWord::NSpareBits = 14
private

Definition at line 205 of file TTTrack_TrackWord.h.

const unsigned int TTTrack_TrackWord::NZ0Bits = 11
private

Definition at line 198 of file TTTrack_TrackWord.h.

Referenced by get_iz0(), initialize(), setTrackWord(), and unpack_iz0().

unsigned int TTTrack_TrackWord::TrackWord1
private
unsigned int TTTrack_TrackWord::TrackWord2
private
unsigned int TTTrack_TrackWord::TrackWord3
private
float TTTrack_TrackWord::valLSBCurv
private

Definition at line 165 of file TTTrack_TrackWord.h.

Referenced by get_iRinv(), initialize(), setTrackWord(), and unpack_iRinv().

float TTTrack_TrackWord::valLSBD0
private

Definition at line 169 of file TTTrack_TrackWord.h.

Referenced by get_id0(), initialize(), setTrackWord(), and unpack_id0().

float TTTrack_TrackWord::valLSBEta
private

Definition at line 167 of file TTTrack_TrackWord.h.

Referenced by get_ieta(), initialize(), setTrackWord(), and unpack_ieta().

float TTTrack_TrackWord::valLSBPhi
private

Definition at line 166 of file TTTrack_TrackWord.h.

Referenced by get_iphi(), initialize(), setTrackWord(), and unpack_iphi().

float TTTrack_TrackWord::valLSBZ0
private

Definition at line 168 of file TTTrack_TrackWord.h.

Referenced by get_iz0(), initialize(), setTrackWord(), and unpack_iz0().