CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SiPixelRecHitQuality.cc
Go to the documentation of this file.
2 
4 
6  // Constructor: pre-computes masks and shifts from field widths
7  // X is now XY
8  // Y is now Q
9  probX_width = 14;
10  probY_width = 8;
11  qBin_width = 3;
12  edge_width = 1;
13  bad_width = 1;
14  twoROC_width = 1;
16  spare_width = 3;
17 
19  spare_width !=
20  32) {
21  throw cms::Exception("SiPixelRecHitQuality::Packing: ")
22  << "\nERROR: The allocated bits for the quality word to not sum to 32."
23  << "\n\n";
24  }
25 
26  probX_units = 1.0018;
27  probY_units = 1.0461;
30 
31  // Fields are counted from right to left!
32  probX_shift = 0;
39 
40  // Ensure the complement of the correct
41  // number of bits:
42  QualWordType zero32 = 0; // 32-bit wide set of 0's
43 
44  probX_mask = ~(~zero32 << probX_width);
45  probY_mask = ~(~zero32 << probY_width);
46  qBin_mask = ~(~zero32 << qBin_width);
47  edge_mask = ~(~zero32 << edge_width);
48  bad_mask = ~(~zero32 << bad_width);
49  twoROC_mask = ~(~zero32 << twoROC_width);
51 }
52 
53 // Initialize the packing format singleton
55 
57  edm::LogWarning("ObsoleteVariable")
58  << "Since 39x, probabilityX and probabilityY have been replaced by probabilityXY and probabilityQ";
59 }
60 
61 void SiPixelRecHitQuality::warningOutOfBoundQbin(int iValue, QualWordType const& iQualWord) {
62  edm::LogWarning("OutOfBounds") << "Qbin outside the bounds of the quality word: Qbin = " << iValue
63  << " and QualityWord = " << iQualWord << " --> Now defaulting to Qbin = 0.0";
64 }
65 
66 void SiPixelRecHitQuality::warningOutOfBoundProb(const char* iName, float iProb, QualWordType const& iQualWord) {
67  edm::LogWarning("OutOfBounds") << "Prob" << iName << " outside the bounds of the quality word: Prob" << iName
68  << " = 1+" << iProb - 1 << " and QualityWord = " << iQualWord
69  << " --> Now defaulting to Prob" << iName << " = 0.0";
70 }
71 
72 void SiPixelRecHitQuality::warningOutOfBoundRaw(const char* iName, int iRaw, QualWordType const& iQualWord) {
73  edm::LogWarning("OutOfBounds") << "Probability" << iName << " outside the bounds of the quality word: Raw = " << iRaw
74  << " and QualityWord = " << iQualWord << " --> Now defaulting to Prob" << iName
75  << " = 0.0";
76 }
static const Packing thePacking
static std::vector< std::string > checklist log
static void warningOutOfBoundRaw(const char *iVariable, int iRaw, QualWordType const &)
static void warningOutOfBoundQbin(int, QualWordType const &)
Log< level::Warning, false > LogWarning
static void warningOutOfBoundProb(const char *iVariable, float, QualWordType const &)