CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
TTTrack_TrackWord Class Reference

#include <TTTrack_TrackWord.h>

Inheritance diagram for TTTrack_TrackWord:
TTTrack< T >

Public Types

typedef ap_uint
< TrackBitWidths::kBendChi2Size > 
bendChi2_t
 
typedef ap_uint
< TrackBitWidths::kChi2RPhiSize > 
chi2rphi_t
 
typedef ap_uint
< TrackBitWidths::kChi2RZSize > 
chi2rz_t
 
typedef ap_uint
< TrackBitWidths::kD0Size > 
d0_t
 
typedef ap_uint
< TrackBitWidths::kHitPatternSize > 
hit_t
 
typedef ap_uint
< TrackBitWidths::kMVAOtherSize > 
otherMVA_t
 
typedef ap_uint
< TrackBitWidths::kPhiSize > 
phi_t
 
typedef ap_uint
< TrackBitWidths::kMVAQualitySize > 
qualityMVA_t
 
typedef ap_uint
< TrackBitWidths::kRinvSize > 
rinv_t
 
typedef ap_uint
< TrackBitWidths::kTanlSize > 
tanl_t
 
typedef std::bitset
< TrackBitWidths::kTrackWordSize > 
tkword_bs_t
 
typedef ap_uint
< TrackBitWidths::kTrackWordSize > 
tkword_t
 
enum  TrackBitLocations {
  kMVAOtherLSB = 0, kMVAOtherMSB = kMVAOtherLSB + TrackBitWidths::kMVAOtherSize - 1, kMVAQualityLSB = kMVAOtherMSB + 1, kMVAQualityMSB = kMVAQualityLSB + TrackBitWidths::kMVAQualitySize - 1,
  kHitPatternLSB = kMVAQualityMSB + 1, kHitPatternMSB = kHitPatternLSB + TrackBitWidths::kHitPatternSize - 1, kBendChi2LSB = kHitPatternMSB + 1, kBendChi2MSB = kBendChi2LSB + TrackBitWidths::kBendChi2Size - 1,
  kD0LSB = kBendChi2MSB + 1, kD0MSB = kD0LSB + TrackBitWidths::kD0Size - 1, kChi2RZLSB = kD0MSB + 1, kChi2RZMSB = kChi2RZLSB + TrackBitWidths::kChi2RZSize - 1,
  kZ0LSB = kChi2RZMSB + 1, kZ0MSB = kZ0LSB + TrackBitWidths::kZ0Size - 1, kTanlLSB = kZ0MSB + 1, kTanlMSB = kTanlLSB + TrackBitWidths::kTanlSize - 1,
  kChi2RPhiLSB = kTanlMSB + 1, kChi2RPhiMSB = kChi2RPhiLSB + TrackBitWidths::kChi2RPhiSize - 1, kPhiLSB = kChi2RPhiMSB + 1, kPhiMSB = kPhiLSB + TrackBitWidths::kPhiSize - 1,
  kRinvLSB = kPhiMSB + 1, kRinvMSB = kRinvLSB + TrackBitWidths::kRinvSize - 1, kValidLSB = kRinvMSB + 1, kValidMSB = kValidLSB + TrackBitWidths::kValidSize - 1
}
 
enum  TrackBitWidths {
  kMVAOtherSize = 6, kMVAQualitySize = 3, kHitPatternSize = 7, kBendChi2Size = 3,
  kD0Size = 13, kChi2RZSize = 4, kZ0Size = 12, kTanlSize = 16,
  kChi2RPhiSize = 4, kPhiSize = 12, kRinvSize = 15, kValidSize = 1,
  kTrackWordSize
}
 
typedef ap_uint
< TrackBitWidths::kValidSize > 
valid_t
 
typedef ap_uint
< TrackBitWidths::kZ0Size > 
z0_t
 

Public Member Functions

double getBendChi2 () const
 
unsigned int getBendChi2Bits () const
 
bendChi2_t getBendChi2Word () const
 
double getChi2RPhi () const
 
unsigned int getChi2RPhiBits () const
 
chi2rphi_t getChi2RPhiWord () const
 
double getChi2RZ () const
 
unsigned int getChi2RZBits () const
 
chi2rz_t getChi2RZWord () const
 
double getD0 () const
 
unsigned int getD0Bits () const
 
d0_t getD0Word () const
 
unsigned int getHitPattern () const
 
unsigned int getHitPatternBits () const
 
hit_t getHitPatternWord () const
 
unsigned int getMVAOther () const
 
unsigned int getMVAOtherBits () const
 
otherMVA_t getMVAOtherWord () const
 
unsigned int getMVAQuality () const
 
unsigned int getMVAQualityBits () const
 
qualityMVA_t getMVAQualityWord () const
 
double getPhi () const
 
unsigned int getPhiBits () const
 
phi_t getPhiWord () const
 
double getRinv () const
 
unsigned int getRinvBits () const
 
rinv_t getRinvWord () const
 
double getTanl () const
 
unsigned int getTanlBits () const
 
tanl_t getTanlWord () const
 
tkword_t getTrackWord () const
 
bool getValid () const
 
unsigned int getValidBits () const
 
valid_t getValidWord () const
 
double getZ0 () const
 
unsigned int getZ0Bits () const
 
z0_t getZ0Word () const
 
TTTrack_TrackWordoperator= (const TTTrack_TrackWord &word)
 
void setTrackWord (unsigned int valid, const GlobalVector &momentum, const GlobalPoint &POCA, double rInv, double chi2RPhi, double chi2RZ, double bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther, unsigned int sector)
 
void setTrackWord (unsigned int valid, unsigned int rInv, unsigned int phi0, unsigned int tanl, unsigned int z0, unsigned int d0, unsigned int chi2RPhi, unsigned int chi2RZ, unsigned int bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther)
 
void setTrackWord (ap_uint< TrackBitWidths::kValidSize > valid, ap_uint< TrackBitWidths::kRinvSize > rInv, ap_uint< TrackBitWidths::kPhiSize > phi0, ap_uint< TrackBitWidths::kTanlSize > tanl, ap_uint< TrackBitWidths::kZ0Size > z0, ap_uint< TrackBitWidths::kD0Size > d0, ap_uint< TrackBitWidths::kChi2RPhiSize > chi2RPhi, ap_uint< TrackBitWidths::kChi2RZSize > chi2RZ, ap_uint< TrackBitWidths::kBendChi2Size > bendChi2, ap_uint< TrackBitWidths::kHitPatternSize > hitPattern, ap_uint< TrackBitWidths::kMVAQualitySize > mvaQuality, ap_uint< TrackBitWidths::kMVAOtherSize > mvaOther)
 
bool singleDigitizationSchemeTest (const double floatingPointValue, const unsigned int nBits, const double lsb) const
 
void testDigitizationScheme () const
 
 TTTrack_TrackWord ()
 
 TTTrack_TrackWord (unsigned int valid, const GlobalVector &momentum, const GlobalPoint &POCA, double rInv, double chi2RPhi, double chi2RZ, double bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther, unsigned int sector)
 
 TTTrack_TrackWord (unsigned int valid, unsigned int rInv, unsigned int phi0, unsigned int tanl, unsigned int z0, unsigned int d0, unsigned int chi2RPhi, unsigned int chi2RZ, unsigned int bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther)
 
 TTTrack_TrackWord (const TTTrack_TrackWord &word)
 

Static Public Attributes

static constexpr std::array
< double, 1
<< TrackBitWidths::kBendChi2Size > 
bendChi2Bins
 
static constexpr std::array
< double, 1
<< TrackBitWidths::kChi2RPhiSize > 
chi2RPhiBins
 
static constexpr std::array
< double, 1
<< TrackBitWidths::kChi2RZSize > 
chi2RZBins
 
static constexpr double minD0 = -16.
 
static constexpr double minPhi0 = -0.7853981696
 
static constexpr double minRinv = -0.006
 
static constexpr double minTanl = -8.
 
static constexpr double minZ0 = -20.46912512
 
static constexpr unsigned int nSectors = 9
 
static constexpr double sectorWidth = (2. * M_PI) / nSectors
 
static constexpr double stepD0 = (1. / (1 << 8))
 
static constexpr double stepPhi0 = (2. * std::abs(minPhi0)) / (1 << TrackBitWidths::kPhiSize)
 
static constexpr double stepRinv = (2. * std::abs(minRinv)) / (1 << TrackBitWidths::kRinvSize)
 
static constexpr double stepTanL = (1. / (1 << 12))
 
static constexpr double stepZ0 = (2. * std::abs(minZ0)) / (1 << TrackBitWidths::kZ0Size)
 

Protected Member Functions

float localPhi (float globalPhi, unsigned int sector) const
 

Private Member Functions

unsigned int digitizeSignedValue (double value, unsigned int nBits, double lsb) const
 
template<typename T >
constexpr unsigned int getBin (double value, const T &bins) const
 
double undigitizeSignedValue (unsigned int twosValue, unsigned int nBits, double lsb) const
 

Private Attributes

tkword_bs_t trackWord_
 

Detailed Description

Definition at line 35 of file TTTrack_TrackWord.h.

Member Typedef Documentation

typedef ap_uint<TrackBitWidths::kBendChi2Size> TTTrack_TrackWord::bendChi2_t

Definition at line 124 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kChi2RPhiSize> TTTrack_TrackWord::chi2rphi_t

Definition at line 122 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kChi2RZSize> TTTrack_TrackWord::chi2rz_t

Definition at line 123 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kD0Size> TTTrack_TrackWord::d0_t

Definition at line 119 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kHitPatternSize> TTTrack_TrackWord::hit_t

Definition at line 125 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kMVAOtherSize> TTTrack_TrackWord::otherMVA_t

Definition at line 127 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kPhiSize> TTTrack_TrackWord::phi_t

Definition at line 116 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kMVAQualitySize> TTTrack_TrackWord::qualityMVA_t

Definition at line 126 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kRinvSize> TTTrack_TrackWord::rinv_t

Definition at line 115 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kTanlSize> TTTrack_TrackWord::tanl_t

Definition at line 117 of file TTTrack_TrackWord.h.

typedef std::bitset<TrackBitWidths::kTrackWordSize> TTTrack_TrackWord::tkword_bs_t

Definition at line 130 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kTrackWordSize> TTTrack_TrackWord::tkword_t

Definition at line 131 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kValidSize> TTTrack_TrackWord::valid_t

Definition at line 112 of file TTTrack_TrackWord.h.

typedef ap_uint<TrackBitWidths::kZ0Size> TTTrack_TrackWord::z0_t

Definition at line 118 of file TTTrack_TrackWord.h.

Member Enumeration Documentation

Enumerator
kMVAOtherLSB 
kMVAOtherMSB 
kMVAQualityLSB 
kMVAQualityMSB 
kHitPatternLSB 
kHitPatternMSB 
kBendChi2LSB 
kBendChi2MSB 
kD0LSB 
kD0MSB 
kChi2RZLSB 
kChi2RZMSB 
kZ0LSB 
kZ0MSB 
kTanlLSB 
kTanlMSB 
kChi2RPhiLSB 
kChi2RPhiMSB 
kPhiLSB 
kPhiMSB 
kRinvLSB 
kRinvMSB 
kValidLSB 
kValidMSB 

Definition at line 58 of file TTTrack_TrackWord.h.

58  {
59  // The location of the least significant bit (LSB) and most significant bit (MSB) in the track word for different fields
60  kMVAOtherLSB = 0,
61  kMVAOtherMSB = kMVAOtherLSB + TrackBitWidths::kMVAOtherSize - 1,
63  kMVAQualityMSB = kMVAQualityLSB + TrackBitWidths::kMVAQualitySize - 1,
64  kHitPatternLSB = kMVAQualityMSB + 1,
65  kHitPatternMSB = kHitPatternLSB + TrackBitWidths::kHitPatternSize - 1,
66  kBendChi2LSB = kHitPatternMSB + 1,
67  kBendChi2MSB = kBendChi2LSB + TrackBitWidths::kBendChi2Size - 1,
68  kD0LSB = kBendChi2MSB + 1,
69  kD0MSB = kD0LSB + TrackBitWidths::kD0Size - 1,
70  kChi2RZLSB = kD0MSB + 1,
71  kChi2RZMSB = kChi2RZLSB + TrackBitWidths::kChi2RZSize - 1,
72  kZ0LSB = kChi2RZMSB + 1,
73  kZ0MSB = kZ0LSB + TrackBitWidths::kZ0Size - 1,
74  kTanlLSB = kZ0MSB + 1,
75  kTanlMSB = kTanlLSB + TrackBitWidths::kTanlSize - 1,
76  kChi2RPhiLSB = kTanlMSB + 1,
77  kChi2RPhiMSB = kChi2RPhiLSB + TrackBitWidths::kChi2RPhiSize - 1,
78  kPhiLSB = kChi2RPhiMSB + 1,
79  kPhiMSB = kPhiLSB + TrackBitWidths::kPhiSize - 1,
80  kRinvLSB = kPhiMSB + 1,
81  kRinvMSB = kRinvLSB + TrackBitWidths::kRinvSize - 1,
82  kValidLSB = kRinvMSB + 1,
83  kValidMSB = kValidLSB + TrackBitWidths::kValidSize - 1,
84  };
Enumerator
kMVAOtherSize 
kMVAQualitySize 
kHitPatternSize 
kBendChi2Size 
kD0Size 
kChi2RZSize 
kZ0Size 
kTanlSize 
kChi2RPhiSize 
kPhiSize 
kRinvSize 
kValidSize 
kTrackWordSize 

Definition at line 38 of file TTTrack_TrackWord.h.

38  {
39  // The sizes of the track word components
40  kMVAOtherSize = 6, // Space for two specialized MVA selections
41  kMVAQualitySize = 3, // Width of track quality MVA
42  kHitPatternSize = 7, // Width of the hit pattern for stubs
43  kBendChi2Size = 3, // Width of the bend-chi2/dof
44  kD0Size = 13, // Width of D0
45  kChi2RZSize = 4, // Width of chi2/dof for r-z
46  kZ0Size = 12, // Width of z-position (40cm / 0.1)
47  kTanlSize = 16, // Width of tan(lambda)
48  kChi2RPhiSize = 4, // Width of chi2/dof for r-phi
49  kPhiSize = 12, // Width of phi
50  kRinvSize = 15, // Width of Rinv
51  kValidSize = 1, // Valid bit
52 
55  kMVAOtherSize, // Width of the track word in bits
56  };

Constructor & Destructor Documentation

TTTrack_TrackWord::TTTrack_TrackWord ( )
inline

Definition at line 135 of file TTTrack_TrackWord.h.

135 {}
TTTrack_TrackWord::TTTrack_TrackWord ( unsigned int  valid,
const GlobalVector momentum,
const GlobalPoint POCA,
double  rInv,
double  chi2RPhi,
double  chi2RZ,
double  bendChi2,
unsigned int  hitPattern,
unsigned int  mvaQuality,
unsigned int  mvaOther,
unsigned int  sector 
)

Definition at line 30 of file TTTrack_TrackWord.cc.

References setTrackWord().

40  {
41  setTrackWord(valid, momentum, POCA, rInv, chi2RPhi, chi2RZ, bendChi2, hitPattern, mvaQuality, mvaOther, sector);
42 }
void setTrackWord(unsigned int valid, const GlobalVector &momentum, const GlobalPoint &POCA, double rInv, double chi2RPhi, double chi2RZ, double bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther, unsigned int sector)
TTTrack_TrackWord::TTTrack_TrackWord ( unsigned int  valid,
unsigned int  rInv,
unsigned int  phi0,
unsigned int  tanl,
unsigned int  z0,
unsigned int  d0,
unsigned int  chi2RPhi,
unsigned int  chi2RZ,
unsigned int  bendChi2,
unsigned int  hitPattern,
unsigned int  mvaQuality,
unsigned int  mvaOther 
)

Definition at line 44 of file TTTrack_TrackWord.cc.

References setTrackWord().

55  {
56  setTrackWord(valid, rInv, phi0, tanl, z0, d0, chi2RPhi, chi2RZ, bendChi2, hitPattern, mvaQuality, mvaOther);
57 }
void setTrackWord(unsigned int valid, const GlobalVector &momentum, const GlobalPoint &POCA, double rInv, double chi2RPhi, double chi2RZ, double bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther, unsigned int sector)
static constexpr float d0
TTTrack_TrackWord::TTTrack_TrackWord ( const TTTrack_TrackWord word)
inline

Definition at line 161 of file TTTrack_TrackWord.h.

References trackWord_.

161 { trackWord_ = word.trackWord_; }

Member Function Documentation

unsigned int TTTrack_TrackWord::digitizeSignedValue ( double  value,
unsigned int  nBits,
double  lsb 
) const
inlineprivate

Definition at line 280 of file TTTrack_TrackWord.h.

Referenced by setTrackWord(), and singleDigitizationSchemeTest().

280  {
281  // Digitize the incoming value
282  int digitizedValue = std::floor(value / lsb);
283 
284  // Calculate the maxmum possible positive value given an output of nBits in size
285  int digitizedMaximum = (1 << (nBits - 1)) - 1; // The remove 1 bit from nBits to account for the sign
286  int digitizedMinimum = -1. * (digitizedMaximum + 1);
287 
288  // Saturate the digitized value
289  digitizedValue = std::clamp(digitizedValue, digitizedMinimum, digitizedMaximum);
290 
291  // Do the two's compliment encoding
292  unsigned int twosValue = digitizedValue;
293  if (digitizedValue < 0) {
294  twosValue += (1 << nBits);
295  }
296 
297  return twosValue;
298  }
double TTTrack_TrackWord::getBendChi2 ( ) const
inline

Definition at line 224 of file TTTrack_TrackWord.h.

References bendChi2Bins, and getBendChi2Bits().

224 { return bendChi2Bins[getBendChi2Bits()]; }
unsigned int getBendChi2Bits() const
static constexpr std::array< double, 1<< TrackBitWidths::kBendChi2Size > bendChi2Bins
unsigned int TTTrack_TrackWord::getBendChi2Bits ( ) const
inline

Definition at line 209 of file TTTrack_TrackWord.h.

References getBendChi2Word().

Referenced by getBendChi2().

209 { return getBendChi2Word().to_uint(); }
bendChi2_t getBendChi2Word() const
bendChi2_t TTTrack_TrackWord::getBendChi2Word ( ) const
inline

Definition at line 184 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getBendChi2Bits().

184  {
185  return getTrackWord()(TrackBitLocations::kBendChi2MSB, TrackBitLocations::kBendChi2LSB);
186  }
tkword_t getTrackWord() const
template<typename T >
constexpr unsigned int TTTrack_TrackWord::getBin ( double  value,
const T bins 
) const
inlineprivate

Definition at line 301 of file TTTrack_TrackWord.h.

References up, cuda_std::upper_bound(), and relativeConstraints::value.

Referenced by BTagWeightCalculator.BTagWeightCalculator::calcJetWeightImpl(), and setTrackWord().

301  {
302  auto up = std::upper_bound(bins.begin(), bins.end(), value);
303  return (up - bins.begin() - 1);
304  }
Definition: BitonicSort.h:7
__host__ __device__ constexpr RandomIt upper_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
double TTTrack_TrackWord::getChi2RPhi ( ) const
inline

Definition at line 222 of file TTTrack_TrackWord.h.

References chi2RPhiBins, and getChi2RPhiBits().

222 { return chi2RPhiBins[getChi2RPhiBits()]; }
static constexpr std::array< double, 1<< TrackBitWidths::kChi2RPhiSize > chi2RPhiBins
unsigned int getChi2RPhiBits() const
unsigned int TTTrack_TrackWord::getChi2RPhiBits ( ) const
inline

Definition at line 207 of file TTTrack_TrackWord.h.

References getChi2RPhiWord().

Referenced by getChi2RPhi().

207 { return getChi2RPhiWord().to_uint(); }
chi2rphi_t getChi2RPhiWord() const
chi2rphi_t TTTrack_TrackWord::getChi2RPhiWord ( ) const
inline

Definition at line 178 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getChi2RPhiBits().

178  {
179  return getTrackWord()(TrackBitLocations::kChi2RPhiMSB, TrackBitLocations::kChi2RPhiLSB);
180  }
tkword_t getTrackWord() const
double TTTrack_TrackWord::getChi2RZ ( ) const
inline

Definition at line 223 of file TTTrack_TrackWord.h.

References chi2RZBins, and getChi2RZBits().

223 { return chi2RZBins[getChi2RZBits()]; }
unsigned int getChi2RZBits() const
static constexpr std::array< double, 1<< TrackBitWidths::kChi2RZSize > chi2RZBins
unsigned int TTTrack_TrackWord::getChi2RZBits ( ) const
inline

Definition at line 208 of file TTTrack_TrackWord.h.

References getChi2RZWord().

Referenced by getChi2RZ().

208 { return getChi2RZWord().to_uint(); }
chi2rz_t getChi2RZWord() const
chi2rz_t TTTrack_TrackWord::getChi2RZWord ( ) const
inline

Definition at line 181 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getChi2RZBits().

181  {
182  return getTrackWord()(TrackBitLocations::kChi2RZMSB, TrackBitLocations::kChi2RZLSB);
183  }
tkword_t getTrackWord() const
double TTTrack_TrackWord::getD0 ( ) const
inline

Definition at line 221 of file TTTrack_TrackWord.h.

References getD0Bits(), stepD0, and undigitizeSignedValue().

221 { return undigitizeSignedValue(getD0Bits(), TrackBitWidths::kD0Size, stepD0); }
unsigned int getD0Bits() const
double undigitizeSignedValue(unsigned int twosValue, unsigned int nBits, double lsb) const
static constexpr double stepD0
unsigned int TTTrack_TrackWord::getD0Bits ( ) const
inline

Definition at line 206 of file TTTrack_TrackWord.h.

References getD0Word().

Referenced by getD0().

206 { return getD0Word().to_uint(); }
d0_t getD0Word() const
d0_t TTTrack_TrackWord::getD0Word ( ) const
inline

Definition at line 177 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getD0Bits().

177 { return getTrackWord()(TrackBitLocations::kD0MSB, TrackBitLocations::kD0LSB); }
tkword_t getTrackWord() const
unsigned int TTTrack_TrackWord::getHitPattern ( ) const
inline

Definition at line 225 of file TTTrack_TrackWord.h.

References getHitPatternBits().

225 { return getHitPatternBits(); }
unsigned int getHitPatternBits() const
unsigned int TTTrack_TrackWord::getHitPatternBits ( ) const
inline

Definition at line 210 of file TTTrack_TrackWord.h.

References getHitPatternWord().

Referenced by getHitPattern().

210 { return getHitPatternWord().to_uint(); }
hit_t getHitPatternWord() const
hit_t TTTrack_TrackWord::getHitPatternWord ( ) const
inline

Definition at line 187 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getHitPatternBits().

187  {
188  return getTrackWord()(TrackBitLocations::kHitPatternMSB, TrackBitLocations::kHitPatternLSB);
189  }
tkword_t getTrackWord() const
unsigned int TTTrack_TrackWord::getMVAOther ( ) const
inline

Definition at line 227 of file TTTrack_TrackWord.h.

References getMVAOtherBits().

227 { return getMVAOtherBits(); }
unsigned int getMVAOtherBits() const
unsigned int TTTrack_TrackWord::getMVAOtherBits ( ) const
inline

Definition at line 212 of file TTTrack_TrackWord.h.

References getMVAOtherWord().

Referenced by getMVAOther().

212 { return getMVAOtherWord().to_uint(); }
otherMVA_t getMVAOtherWord() const
otherMVA_t TTTrack_TrackWord::getMVAOtherWord ( ) const
inline

Definition at line 193 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getMVAOtherBits().

193  {
194  return getTrackWord()(TrackBitLocations::kMVAOtherMSB, TrackBitLocations::kMVAOtherLSB);
195  }
tkword_t getTrackWord() const
unsigned int TTTrack_TrackWord::getMVAQuality ( ) const
inline

Definition at line 226 of file TTTrack_TrackWord.h.

References getMVAQualityBits().

226 { return getMVAQualityBits(); }
unsigned int getMVAQualityBits() const
unsigned int TTTrack_TrackWord::getMVAQualityBits ( ) const
inline

Definition at line 211 of file TTTrack_TrackWord.h.

References getMVAQualityWord().

Referenced by getMVAQuality().

211 { return getMVAQualityWord().to_uint(); }
qualityMVA_t getMVAQualityWord() const
qualityMVA_t TTTrack_TrackWord::getMVAQualityWord ( ) const
inline

Definition at line 190 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getMVAQualityBits().

190  {
191  return getTrackWord()(TrackBitLocations::kMVAQualityMSB, TrackBitLocations::kMVAQualityLSB);
192  }
tkword_t getTrackWord() const
double TTTrack_TrackWord::getPhi ( ) const
inline

Definition at line 218 of file TTTrack_TrackWord.h.

References getPhiBits(), stepPhi0, and undigitizeSignedValue().

218 { return undigitizeSignedValue(getPhiBits(), TrackBitWidths::kPhiSize, stepPhi0); }
unsigned int getPhiBits() const
double undigitizeSignedValue(unsigned int twosValue, unsigned int nBits, double lsb) const
static constexpr double stepPhi0
unsigned int TTTrack_TrackWord::getPhiBits ( ) const
inline

Definition at line 203 of file TTTrack_TrackWord.h.

References getPhiWord().

Referenced by getPhi().

203 { return getPhiWord().to_uint(); }
phi_t getPhiWord() const
phi_t TTTrack_TrackWord::getPhiWord ( ) const
inline

Definition at line 174 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getPhiBits().

174 { return getTrackWord()(TrackBitLocations::kPhiMSB, TrackBitLocations::kPhiLSB); }
tkword_t getTrackWord() const
double TTTrack_TrackWord::getRinv ( ) const
inline

Definition at line 217 of file TTTrack_TrackWord.h.

References getRinvBits(), stepRinv, and undigitizeSignedValue().

217 { return undigitizeSignedValue(getRinvBits(), TrackBitWidths::kRinvSize, stepRinv); }
double undigitizeSignedValue(unsigned int twosValue, unsigned int nBits, double lsb) const
static constexpr double stepRinv
unsigned int getRinvBits() const
unsigned int TTTrack_TrackWord::getRinvBits ( ) const
inline

Definition at line 202 of file TTTrack_TrackWord.h.

References getRinvWord().

Referenced by getRinv().

202 { return getRinvWord().to_uint(); }
rinv_t getRinvWord() const
rinv_t TTTrack_TrackWord::getRinvWord ( ) const
inline

Definition at line 173 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getRinvBits().

173 { return getTrackWord()(TrackBitLocations::kRinvMSB, TrackBitLocations::kRinvLSB); }
tkword_t getTrackWord() const
double TTTrack_TrackWord::getTanl ( ) const
inline

Definition at line 219 of file TTTrack_TrackWord.h.

References getTanlBits(), stepTanL, and undigitizeSignedValue().

219 { return undigitizeSignedValue(getTanlBits(), TrackBitWidths::kTanlSize, stepTanL); }
double undigitizeSignedValue(unsigned int twosValue, unsigned int nBits, double lsb) const
static constexpr double stepTanL
unsigned int getTanlBits() const
unsigned int TTTrack_TrackWord::getTanlBits ( ) const
inline

Definition at line 204 of file TTTrack_TrackWord.h.

References getTanlWord().

Referenced by getTanl().

204 { return getTanlWord().to_uint(); }
tanl_t getTanlWord() const
tanl_t TTTrack_TrackWord::getTanlWord ( ) const
inline

Definition at line 175 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getTanlBits().

175 { return getTrackWord()(TrackBitLocations::kTanlMSB, TrackBitLocations::kTanlLSB); }
tkword_t getTrackWord() const
tkword_t TTTrack_TrackWord::getTrackWord ( ) const
inline

Definition at line 196 of file TTTrack_TrackWord.h.

References trackWord_.

Referenced by getBendChi2Word(), getChi2RPhiWord(), getChi2RZWord(), getD0Word(), getHitPatternWord(), getMVAOtherWord(), getMVAQualityWord(), getPhiWord(), getRinvWord(), getTanlWord(), getValidWord(), and getZ0Word().

196 { return tkword_t(trackWord_.to_string().c_str(), 2); }
ap_uint< TrackBitWidths::kTrackWordSize > tkword_t
bool TTTrack_TrackWord::getValid ( ) const
inline

Definition at line 216 of file TTTrack_TrackWord.h.

References getValidWord().

216 { return getValidWord().to_bool(); }
valid_t getValidWord() const
unsigned int TTTrack_TrackWord::getValidBits ( ) const
inline

Definition at line 201 of file TTTrack_TrackWord.h.

References getValidWord().

201 { return getValidWord().to_uint(); }
valid_t getValidWord() const
valid_t TTTrack_TrackWord::getValidWord ( ) const
inline

Definition at line 172 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getValid(), and getValidBits().

172 { return getTrackWord()(TrackBitLocations::kValidMSB, TrackBitLocations::kValidLSB); }
tkword_t getTrackWord() const
double TTTrack_TrackWord::getZ0 ( ) const
inline

Definition at line 220 of file TTTrack_TrackWord.h.

References getZ0Bits(), stepZ0, and undigitizeSignedValue().

220 { return undigitizeSignedValue(getZ0Bits(), TrackBitWidths::kZ0Size, stepZ0); }
double undigitizeSignedValue(unsigned int twosValue, unsigned int nBits, double lsb) const
unsigned int getZ0Bits() const
static constexpr double stepZ0
unsigned int TTTrack_TrackWord::getZ0Bits ( ) const
inline

Definition at line 205 of file TTTrack_TrackWord.h.

References getZ0Word().

Referenced by getZ0().

205 { return getZ0Word().to_uint(); }
z0_t getZ0Word() const
z0_t TTTrack_TrackWord::getZ0Word ( ) const
inline

Definition at line 176 of file TTTrack_TrackWord.h.

References getTrackWord().

Referenced by getZ0Bits().

176 { return getTrackWord()(TrackBitLocations::kZ0MSB, TrackBitLocations::kZ0LSB); }
tkword_t getTrackWord() const
float TTTrack_TrackWord::localPhi ( float  globalPhi,
unsigned int  sector 
) const
inlineprotected

Definition at line 274 of file TTTrack_TrackWord.h.

References reco::deltaPhi(), and sectorWidth.

Referenced by TTTrack< T >::localPhi(), and setTrackWord().

274  {
275  return reco::deltaPhi(globalPhi, (sector * sectorWidth));
276  }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
static constexpr double sectorWidth
TTTrack_TrackWord& TTTrack_TrackWord::operator= ( const TTTrack_TrackWord word)
inline

Definition at line 164 of file TTTrack_TrackWord.h.

References trackWord_.

164  {
165  trackWord_ = word.trackWord_;
166  return *this;
167  }
void TTTrack_TrackWord::setTrackWord ( unsigned int  valid,
const GlobalVector momentum,
const GlobalPoint POCA,
double  rInv,
double  chi2RPhi,
double  chi2RZ,
double  bendChi2,
unsigned int  hitPattern,
unsigned int  mvaQuality,
unsigned int  mvaOther,
unsigned int  sector 
)

Definition at line 60 of file TTTrack_TrackWord.cc.

References bendChi2Bins, chi2RPhiBins, chi2RZBins, digitizeSignedValue(), getBin(), localPhi(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), stepD0, stepPhi0, stepRinv, stepTanL, stepZ0, sistrip::valid_, and PV3DBase< T, PVType, FrameType >::z().

Referenced by setTrackWord(), and TTTrack_TrackWord().

70  {
71  // first, derive quantities to be packed
72  float rPhi = localPhi(momentum.phi(), sector); // this needs to be phi relative to the center of the sector
73  float rTanl = momentum.z() / momentum.perp();
74  float rZ0 = POCA.z();
75  float rD0 = POCA.perp();
76 
77  // bin and convert to integers
78  valid_t valid_ = valid;
79  rinv_t rInv_ = digitizeSignedValue(rInv, TrackBitWidths::kRinvSize, stepRinv);
80  phi_t phi0_ = digitizeSignedValue(rPhi, TrackBitWidths::kPhiSize, stepPhi0);
81  tanl_t tanl_ = digitizeSignedValue(rTanl, TrackBitWidths::kTanlSize, stepTanL);
82  z0_t z0_ = digitizeSignedValue(rZ0, TrackBitWidths::kZ0Size, stepZ0);
83  d0_t d0_ = digitizeSignedValue(rD0, TrackBitWidths::kD0Size, stepD0);
84  chi2rphi_t chi2RPhi_ = getBin(chi2RPhi, chi2RPhiBins);
85  chi2rz_t chi2RZ_ = getBin(chi2RZ, chi2RZBins);
86  bendChi2_t bendChi2_ = getBin(bendChi2, bendChi2Bins);
87  hit_t hitPattern_ = hitPattern;
88  qualityMVA_t mvaQuality_ = mvaQuality;
89  otherMVA_t mvaOther_ = mvaOther;
90 
91  // pack the track word
92  //trackWord = ( mvaOther_, mvaQuality_, hitPattern_, bendChi2_, chi2RZ_, chi2RPhi_, d0_, z0_, tanl_, phi0_, rInv_, valid_ );
94  valid_, rInv_, phi0_, tanl_, z0_, d0_, chi2RPhi_, chi2RZ_, bendChi2_, hitPattern_, mvaQuality_, mvaOther_);
95 }
static constexpr std::array< double, 1<< TrackBitWidths::kChi2RPhiSize > chi2RPhiBins
T perp() const
Definition: PV3DBase.h:69
ap_uint< TrackBitWidths::kMVAQualitySize > qualityMVA_t
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
static constexpr double stepD0
static constexpr std::array< double, 1<< TrackBitWidths::kBendChi2Size > bendChi2Bins
static const uint16_t valid_
Definition: Constants.h:17
constexpr unsigned int getBin(double value, const T &bins) const
void setTrackWord(unsigned int valid, const GlobalVector &momentum, const GlobalPoint &POCA, double rInv, double chi2RPhi, double chi2RZ, double bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther, unsigned int sector)
static constexpr double stepRinv
unsigned int digitizeSignedValue(double value, unsigned int nBits, double lsb) const
ap_uint< TrackBitWidths::kMVAOtherSize > otherMVA_t
T z() const
Definition: PV3DBase.h:61
ap_uint< TrackBitWidths::kValidSize > valid_t
ap_uint< TrackBitWidths::kRinvSize > rinv_t
static constexpr double stepTanL
ap_uint< TrackBitWidths::kHitPatternSize > hit_t
ap_uint< TrackBitWidths::kChi2RZSize > chi2rz_t
ap_int< 10 > z0_t
Definition: data.h:10
static constexpr double stepPhi0
float localPhi(float globalPhi, unsigned int sector) const
ap_uint< TrackBitWidths::kTanlSize > tanl_t
static constexpr std::array< double, 1<< TrackBitWidths::kChi2RZSize > chi2RZBins
ap_uint< TrackBitWidths::kD0Size > d0_t
static constexpr double stepZ0
ap_uint< TrackBitWidths::kChi2RPhiSize > chi2rphi_t
ap_uint< TrackBitWidths::kBendChi2Size > bendChi2_t
ap_uint< TrackBitWidths::kPhiSize > phi_t
void TTTrack_TrackWord::setTrackWord ( unsigned int  valid,
unsigned int  rInv,
unsigned int  phi0,
unsigned int  tanl,
unsigned int  z0,
unsigned int  d0,
unsigned int  chi2RPhi,
unsigned int  chi2RZ,
unsigned int  bendChi2,
unsigned int  hitPattern,
unsigned int  mvaQuality,
unsigned int  mvaOther 
)

Definition at line 98 of file TTTrack_TrackWord.cc.

References d0, setTrackWord(), and sistrip::valid_.

109  {
110  // bin and convert to integers
111  valid_t valid_ = valid;
112  rinv_t rInv_ = rInv;
113  phi_t phi0_ = phi0;
114  tanl_t tanl_ = tanl;
115  z0_t z0_ = z0;
116  d0_t d0_ = d0;
117  chi2rphi_t chi2RPhi_ = chi2RPhi;
118  chi2rz_t chi2RZ_ = chi2RZ;
119  bendChi2_t bendChi2_ = bendChi2;
120  hit_t hitPattern_ = hitPattern;
121  qualityMVA_t mvaQuality_ = mvaQuality;
122  otherMVA_t mvaOther_ = mvaOther;
123 
124  // pack the track word
125  //trackWord = ( otherMVA_t(mvaOther), qualityMVA_t(mvaQuality), hit_t(hitPattern),
126  // bendChi2_t(bendChi2), chi2rz_t(chi2RZ), chi2rphi_t(chi2RPhi),
127  // d0_t(d0), z0_t(z0), tanl_t(tanl), phi_t(phi0), rinv_t(rInv), valid_t(valid) );
128  setTrackWord(
129  valid_, rInv_, phi0_, tanl_, z0_, d0_, chi2RPhi_, chi2RZ_, bendChi2_, hitPattern_, mvaQuality_, mvaOther_);
130 }
ap_uint< TrackBitWidths::kMVAQualitySize > qualityMVA_t
static const uint16_t valid_
Definition: Constants.h:17
void setTrackWord(unsigned int valid, const GlobalVector &momentum, const GlobalPoint &POCA, double rInv, double chi2RPhi, double chi2RZ, double bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther, unsigned int sector)
ap_uint< TrackBitWidths::kMVAOtherSize > otherMVA_t
ap_uint< TrackBitWidths::kValidSize > valid_t
ap_uint< TrackBitWidths::kRinvSize > rinv_t
ap_uint< TrackBitWidths::kHitPatternSize > hit_t
ap_uint< TrackBitWidths::kChi2RZSize > chi2rz_t
ap_int< 10 > z0_t
Definition: data.h:10
static constexpr float d0
ap_uint< TrackBitWidths::kTanlSize > tanl_t
ap_uint< TrackBitWidths::kD0Size > d0_t
ap_uint< TrackBitWidths::kChi2RPhiSize > chi2rphi_t
ap_uint< TrackBitWidths::kBendChi2Size > bendChi2_t
ap_uint< TrackBitWidths::kPhiSize > phi_t
void TTTrack_TrackWord::setTrackWord ( ap_uint< TrackBitWidths::kValidSize >  valid,
ap_uint< TrackBitWidths::kRinvSize >  rInv,
ap_uint< TrackBitWidths::kPhiSize >  phi0,
ap_uint< TrackBitWidths::kTanlSize >  tanl,
ap_uint< TrackBitWidths::kZ0Size >  z0,
ap_uint< TrackBitWidths::kD0Size >  d0,
ap_uint< TrackBitWidths::kChi2RPhiSize >  chi2RPhi,
ap_uint< TrackBitWidths::kChi2RZSize >  chi2RZ,
ap_uint< TrackBitWidths::kBendChi2Size >  bendChi2,
ap_uint< TrackBitWidths::kHitPatternSize >  hitPattern,
ap_uint< TrackBitWidths::kMVAQualitySize >  mvaQuality,
ap_uint< TrackBitWidths::kMVAOtherSize >  mvaOther 
)

Definition at line 132 of file TTTrack_TrackWord.cc.

References b, hltrates_dqm_sourceclient-live_cfg::offset, and trackWord_.

144  {
145  // pack the track word
146  unsigned int offset = 0;
147  for (unsigned int b = offset; b < (offset + TrackBitWidths::kMVAOtherSize); b++) {
148  trackWord_.set(b, mvaOther[b - offset]);
149  }
150  offset += TrackBitWidths::kMVAOtherSize;
151  for (unsigned int b = offset; b < (offset + TrackBitWidths::kMVAQualitySize); b++) {
152  trackWord_.set(b, mvaQuality[b - offset]);
153  }
154  offset += TrackBitWidths::kMVAQualitySize;
155  for (unsigned int b = offset; b < (offset + TrackBitWidths::kHitPatternSize); b++) {
156  trackWord_.set(b, hitPattern[b - offset]);
157  }
158  offset += TrackBitWidths::kHitPatternSize;
159  for (unsigned int b = offset; b < (offset + TrackBitWidths::kBendChi2Size); b++) {
160  trackWord_.set(b, bendChi2[b - offset]);
161  }
162  offset += TrackBitWidths::kBendChi2Size;
163  for (unsigned int b = offset; b < (offset + TrackBitWidths::kD0Size); b++) {
164  trackWord_.set(b, d0[b - offset]);
165  }
166  offset += TrackBitWidths::kD0Size;
167  for (unsigned int b = offset; b < (offset + TrackBitWidths::kChi2RZSize); b++) {
168  trackWord_.set(b, chi2RZ[b - offset]);
169  }
170  offset += TrackBitWidths::kChi2RZSize;
171  for (unsigned int b = offset; b < (offset + TrackBitWidths::kZ0Size); b++) {
172  trackWord_.set(b, z0[b - offset]);
173  }
174  offset += TrackBitWidths::kZ0Size;
175  for (unsigned int b = offset; b < (offset + TrackBitWidths::kTanlSize); b++) {
176  trackWord_.set(b, tanl[b - offset]);
177  }
178  offset += TrackBitWidths::kTanlSize;
179  for (unsigned int b = offset; b < (offset + TrackBitWidths::kChi2RPhiSize); b++) {
180  trackWord_.set(b, chi2RPhi[b - offset]);
181  }
182  offset += TrackBitWidths::kChi2RPhiSize;
183  for (unsigned int b = offset; b < (offset + TrackBitWidths::kPhiSize); b++) {
184  trackWord_.set(b, phi0[b - offset]);
185  }
186  offset += TrackBitWidths::kPhiSize;
187  for (unsigned int b = offset; b < (offset + TrackBitWidths::kRinvSize); b++) {
188  trackWord_.set(b, rInv[b - offset]);
189  }
190  offset += TrackBitWidths::kRinvSize;
191  for (unsigned int b = offset; b < offset + TrackBitWidths::kValidSize; b++) {
192  trackWord_.set(b, valid[b - offset]);
193  }
194 }
static constexpr float d0
double b
Definition: hdecay.h:118
bool TTTrack_TrackWord::singleDigitizationSchemeTest ( const double  floatingPointValue,
const unsigned int  nBits,
const double  lsb 
) const

Definition at line 196 of file TTTrack_TrackWord.cc.

References funct::abs(), digitizeSignedValue(), tttrack_trackword::infoTestDigitizationScheme(), and undigitizeSignedValue().

Referenced by testDigitizationScheme().

198  {
199  unsigned int digitizedSignedValue = digitizeSignedValue(floatingPointValue, nBits, lsb);
200  double undigitizedSignedValue = undigitizeSignedValue(digitizedSignedValue, nBits, lsb);
201  unsigned int redigitizedSignedValue = digitizeSignedValue(undigitizedSignedValue, nBits, lsb);
203  nBits, lsb, floatingPointValue, digitizedSignedValue, undigitizedSignedValue, redigitizedSignedValue);
204  return (std::abs(floatingPointValue - undigitizedSignedValue) <= (lsb / 2.0)) &&
205  (digitizedSignedValue == redigitizedSignedValue);
206 }
double undigitizeSignedValue(unsigned int twosValue, unsigned int nBits, double lsb) const
void infoTestDigitizationScheme(const unsigned int, const double, const double, const unsigned int, const double, const unsigned int)
unsigned int digitizeSignedValue(double value, unsigned int nBits, double lsb) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void TTTrack_TrackWord::testDigitizationScheme ( ) const

Definition at line 208 of file TTTrack_TrackWord.cc.

References cms::cuda::assert(), and singleDigitizationSchemeTest().

208  {
209  /*
210  Expected output:
211  testDigitizationScheme: Floating point value = -4 Digitized value = 4 Un-digitized value = -3.5
212  testDigitizationScheme: Floating point value = 3 Digitized value = 3 Un-digitized value = 3.5
213  testDigitizationScheme: Floating point value = -3.5 Digitized value = 9 Un-digitized value = -3.25
214  testDigitizationScheme: Floating point value = 3.5 Digitized value = 7 Un-digitized value = 3.75
215  */
216  assert(singleDigitizationSchemeTest(-4.0, 3, 1.0));
217  assert(singleDigitizationSchemeTest(3.0, 3, 1.0));
218  assert(singleDigitizationSchemeTest(-3.5, 4, 0.5));
219  assert(singleDigitizationSchemeTest(3.5, 4, 0.5));
220 }
bool singleDigitizationSchemeTest(const double floatingPointValue, const unsigned int nBits, const double lsb) const
assert(be >=bs)
double TTTrack_TrackWord::undigitizeSignedValue ( unsigned int  twosValue,
unsigned int  nBits,
double  lsb 
) const
inlineprivate

Definition at line 306 of file TTTrack_TrackWord.h.

References cms::cuda::assert().

Referenced by getD0(), getPhi(), getRinv(), getTanl(), getZ0(), and singleDigitizationSchemeTest().

306  {
307  // Check that none of the bits above the nBits-1 bit, in a range of [0, nBits-1], are set.
308  // This makes sure that it isn't possible for the value represented by `twosValue` to be
309  // any bigger than ((1 << nBits) - 1).
310  assert((twosValue >> nBits) == 0);
311 
312  // Convert from twos compliment to C++ signed integer (normal digitized value)
313  int digitizedValue = twosValue;
314  if (twosValue & (1 << (nBits - 1))) { // check if the twosValue is negative
315  digitizedValue -= (1 << nBits);
316  }
317 
318  // Convert to floating point value
319  return (double(digitizedValue) + 0.5) * lsb;
320  }
assert(be >=bs)

Member Data Documentation

constexpr std::array<double, 1 << TrackBitWidths::kBendChi2Size> TTTrack_TrackWord::bendChi2Bins
static
Initial value:
= {
{0.0, 0.75, 1.0, 1.5, 2.25, 3.5, 5.0, 20.0}}

Definition at line 104 of file TTTrack_TrackWord.h.

Referenced by getBendChi2(), and setTrackWord().

constexpr std::array<double, 1 << TrackBitWidths::kChi2RPhiSize> TTTrack_TrackWord::chi2RPhiBins
static
Initial value:
= {
{0.0, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 10.0, 15.0, 20.0, 35.0, 60.0, 200.0}}

Definition at line 100 of file TTTrack_TrackWord.h.

Referenced by getChi2RPhi(), and setTrackWord().

constexpr std::array<double, 1 << TrackBitWidths::kChi2RZSize> TTTrack_TrackWord::chi2RZBins
static
Initial value:
= {
{0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 8.0, 10.0, 20.0, 50.0}}

Definition at line 102 of file TTTrack_TrackWord.h.

Referenced by getChi2RZ(), and setTrackWord().

constexpr double TTTrack_TrackWord::minD0 = -16.
static

Definition at line 91 of file TTTrack_TrackWord.h.

constexpr double TTTrack_TrackWord::minPhi0 = -0.7853981696
static

Definition at line 88 of file TTTrack_TrackWord.h.

constexpr double TTTrack_TrackWord::minRinv = -0.006
static

Definition at line 87 of file TTTrack_TrackWord.h.

constexpr double TTTrack_TrackWord::minTanl = -8.
static

Definition at line 89 of file TTTrack_TrackWord.h.

constexpr double TTTrack_TrackWord::minZ0 = -20.46912512
static

Definition at line 90 of file TTTrack_TrackWord.h.

constexpr unsigned int TTTrack_TrackWord::nSectors = 9
static

Definition at line 108 of file TTTrack_TrackWord.h.

constexpr double TTTrack_TrackWord::sectorWidth = (2. * M_PI) / nSectors
static

Definition at line 109 of file TTTrack_TrackWord.h.

Referenced by localPhi().

constexpr double TTTrack_TrackWord::stepD0 = (1. / (1 << 8))
static

Definition at line 97 of file TTTrack_TrackWord.h.

Referenced by getD0(), and setTrackWord().

constexpr double TTTrack_TrackWord::stepPhi0 = (2. * std::abs(minPhi0)) / (1 << TrackBitWidths::kPhiSize)
static

Definition at line 94 of file TTTrack_TrackWord.h.

Referenced by getPhi(), and setTrackWord().

constexpr double TTTrack_TrackWord::stepRinv = (2. * std::abs(minRinv)) / (1 << TrackBitWidths::kRinvSize)
static

Definition at line 93 of file TTTrack_TrackWord.h.

Referenced by getRinv(), and setTrackWord().

constexpr double TTTrack_TrackWord::stepTanL = (1. / (1 << 12))
static

Definition at line 95 of file TTTrack_TrackWord.h.

Referenced by getTanl(), and setTrackWord().

constexpr double TTTrack_TrackWord::stepZ0 = (2. * std::abs(minZ0)) / (1 << TrackBitWidths::kZ0Size)
static

Definition at line 96 of file TTTrack_TrackWord.h.

Referenced by getZ0(), and setTrackWord().

tkword_bs_t TTTrack_TrackWord::trackWord_
private

Definition at line 323 of file TTTrack_TrackWord.h.

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