CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiPixelQuality.h
Go to the documentation of this file.
1 // SiPixelQuality.h
2 //
3 // class definition to hold a list of disabled pixel modules
4 //
5 // M. Eads
6 // Apr 2008
7 
8 #ifndef SiPixelQuality_H
9 #define SiPixelQuality_H
10 
11 #include <vector>
12 #include <utility>
13 
24 
26 
27  public:
29  uint32_t DetID;
30  int errorType;
31  unsigned short BadRocs;
32  };
33 
35  // errortype "whole" = int 0 in DB //
36  // errortype "tbmA" = int 1 in DB //
37  // errortype "tbmB" = int 2 in DB //
38  // errortype "none" = int 3 in DB //
40 
42  //each bad roc correspond to a bit to 1: num= //
43  // 0 <-> all good rocs //
44  // 1 <-> only roc 0 bad //
45  // 2<-> only roc 1 bad //
46  // 3<-> roc 0 and 1 bad //
47  // 4 <-> only roc 2 bad //
48  // ... //
50 
51 
52 
53 
54 
56  public:
57  bool operator() (const disabledModuleType& p,const uint32_t i) const {return p.DetID < i;}
58  bool operator() (const disabledModuleType& p,const disabledModuleType& q) const {return p.DetID < q.DetID;}
59  };
60 
61 
62 
64 
65  // constructor from a list of disabled modules
66  SiPixelQuality(std::vector<disabledModuleType> & disabledModules) : theDisabledModules(disabledModules) {;}
67 
68  virtual ~SiPixelQuality() {;}
69 
70  // set the list of disabled modules (current list is lost)
71  void setDisabledModuleList(std::vector<disabledModuleType> & disabledModules)
72  { theDisabledModules = disabledModules; }
73 
74  // add a single module to the vector of disabled modules
76  { theDisabledModules.push_back(module); }
77 
78  // add a vector of modules to the vector of disabled modules
79  void addDisabledModule(std::vector<disabledModuleType> & idVector);
80 
81  // remove disabled module from the list
82  // returns false if id not in disable list, true otherwise
83  // bool removeDisabledModule(const disabledModuleType & module);
84  // bool removeDisabledModule(const uint32_t & detid);
85 
86 
87 //--------------- Interface for the user -----------------//
88 //------- designed to match SiStripQuality methods ----------//
89 
90 
91 
92  bool IsModuleBad(const uint32_t & detid) const; //returns True if module disabled
93  bool IsModuleUsable(const uint32_t& detid) const; //returns True if module NOT disabled
94  bool IsRocBad(const uint32_t& detid, const short& rocNb) const; //returns True if ROC is disabled
95  bool IsAreaBad(uint32_t detid, sipixelobjects::GlobalPixel global, const edm::EventSetup& es, const SiPixelFedCabling* map ) const;
96  short getBadRocs(const uint32_t& detid) const; //returns bad Rocs for given DetId
97  //each bad roc correspond to a bit to 1: num=
98  //0 <-> all good rocs
99  //1 <-> only roc 0 bad
100  //2<-> only roc 1 bad
101  //3<-> roc 0 and 1 bad
102  // 4 <-> only roc 2 bad
103  //...
104  const std::vector<disabledModuleType> getBadComponentList() const //returns list of disabled modules/ROCs
105  { return theDisabledModules; }
106  const std::vector< LocalPoint > getBadRocPositions(const uint32_t & detid, const TrackerGeometry& theTracker, const SiPixelFedCabling* map ) const;
107  // const std::vector< std::pair <uint8_t, uint8_t> > getBadRocPositions(const uint32_t & detid, const edm::EventSetup& es, const SiPixelFedCabling* map ) const;
108 
109 
110 
111  private:
112  std::vector<disabledModuleType> theDisabledModules;
113  bool IsFedBad(const uint32_t & detid) const;
114 
115 }; // class SiPixelQuality
116 
117 
118 #endif
void addDisabledModule(disabledModuleType module)
int i
Definition: DBlmapReader.cc:9
SiPixelQuality(std::vector< disabledModuleType > &disabledModules)
bool operator()(const disabledModuleType &p, const uint32_t i) const
bool IsFedBad(const uint32_t &detid) const
bool IsRocBad(const uint32_t &detid, const short &rocNb) const
dictionary map
Definition: Association.py:160
global coordinates (row and column in DetUnit, as in PixelDigi)
Definition: GlobalPixel.h:6
virtual ~SiPixelQuality()
const std::vector< LocalPoint > getBadRocPositions(const uint32_t &detid, const TrackerGeometry &theTracker, const SiPixelFedCabling *map) const
const std::vector< disabledModuleType > getBadComponentList() const
bool IsModuleUsable(const uint32_t &detid) const
bool IsModuleBad(const uint32_t &detid) const
std::vector< disabledModuleType > theDisabledModules
string const
Definition: compareJSON.py:14
short getBadRocs(const uint32_t &detid) const
bool IsAreaBad(uint32_t detid, sipixelobjects::GlobalPixel global, const edm::EventSetup &es, const SiPixelFedCabling *map) const
void setDisabledModuleList(std::vector< disabledModuleType > &disabledModules)
Definition: vlib.h:209