Belle II Software  release-05-01-25
PXDIgnoredPixelsMap.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Giulia Casarosa, Eugenio Paoloni, *
7  * Peter Kvasnicka, Tadeas Bilka *
8  * *
9  * This software is provided "as is" without any warranty. *
10  **************************************************************************/
11 
12 #ifndef PXD_IGNORED_PIXELS_MAP_H_
13 #define PXD_IGNORED_PIXELS_MAP_H_
14 
15 #include <vxd/dataobjects/VxdID.h>
16 
17 #include <functional>
18 #include <map>
19 #include <unordered_map>
20 #include <set>
21 #include <unordered_set>
22 
23 namespace Belle2 {
43  class PXDIgnoredPixelsMap {
44  public:
46  typedef std::pair<unsigned short, unsigned short> map_pixel;
48  typedef std::function< bool(unsigned short, unsigned short) > pixel_range_test_prototype;
50  typedef std::multimap< unsigned int, pixel_range_test_prototype, std::greater<unsigned int> > IgnoredPixelsRangeSet;
52  typedef std::unordered_set< unsigned int> IgnoredSinglePixelsSet;
53 
57  explicit PXDIgnoredPixelsMap(const std::string& xml_filename);
58 
60  PXDIgnoredPixelsMap() = delete;
61 
67  const std::set<map_pixel> getIgnoredPixels(VxdID id);
68 
74  bool pixelOK(VxdID id, map_pixel pixel);
75 
76  private:
77 
79  std::unordered_map<unsigned short, IgnoredPixelsRangeSet> m_Map;
81  std::unordered_map<unsigned short, IgnoredSinglePixelsSet> m_MapSingles;
82 
87 
91  unsigned short m_lastSensorVCells;
92 
93  };
94 
96 } // namespace Belle2
97 #endif
98 
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
Belle2::PXDIgnoredPixelsMap::PXDIgnoredPixelsMap
PXDIgnoredPixelsMap()=delete
No default constructor.
Belle2::PXDIgnoredPixelsMap::pixel_range_test_prototype
std::function< bool(unsigned short, unsigned short) > pixel_range_test_prototype
Prototype for lambda function used to check if a pixel is in masked range.
Definition: PXDIgnoredPixelsMap.h:57
Belle2::PXDIgnoredPixelsMap::IgnoredPixelsRangeSet
std::multimap< unsigned int, pixel_range_test_prototype, std::greater< unsigned int > > IgnoredPixelsRangeSet
Structure to hold set of masked pixel ranges ordered from largest to smallest by their area (unsigned...
Definition: PXDIgnoredPixelsMap.h:59
Belle2::PXDIgnoredPixelsMap::m_lastIgnored
IgnoredPixelsRangeSet m_lastIgnored
Set of ignored pixel ranges for the most currently queried sensor.
Definition: PXDIgnoredPixelsMap.h:93
Belle2::PXDIgnoredPixelsMap::m_Map
std::unordered_map< unsigned short, IgnoredPixelsRangeSet > m_Map
Structure holding sets of ignored pixel ranges for all sensors by sensor id (unsigned short).
Definition: PXDIgnoredPixelsMap.h:88
Belle2::PXDIgnoredPixelsMap::m_lastIgnoredSingles
IgnoredSinglePixelsSet m_lastIgnoredSingles
Set of ignored single pixels for the most currently queried sensor.
Definition: PXDIgnoredPixelsMap.h:95
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::PXDIgnoredPixelsMap::m_lastSensorVCells
unsigned short m_lastSensorVCells
The most currently queried sensor number of V pixels (for quick pixel uid evaluation)
Definition: PXDIgnoredPixelsMap.h:100
Belle2::PXDIgnoredPixelsMap::m_MapSingles
std::unordered_map< unsigned short, IgnoredSinglePixelsSet > m_MapSingles
Structure holding sets of ingored single pixels for all sensors by sensor id (unsigned short).
Definition: PXDIgnoredPixelsMap.h:90
Belle2::PXDIgnoredPixelsMap::getIgnoredPixels
const std::set< map_pixel > getIgnoredPixels(VxdID id)
Get the set of ignored pixels for a sensor.
Definition: PXDIgnoredPixelsMap.cc:153
Belle2::PXDIgnoredPixelsMap::pixelOK
bool pixelOK(VxdID id, map_pixel pixel)
Check whether a pixel on a given sensor is OK or not.
Definition: PXDIgnoredPixelsMap.cc:172
Belle2::PXDIgnoredPixelsMap::IgnoredSinglePixelsSet
std::unordered_set< unsigned int > IgnoredSinglePixelsSet
Structure to hold set of masked single pixels indexed by their unique id (unsigned int),...
Definition: PXDIgnoredPixelsMap.h:61
Belle2::PXDIgnoredPixelsMap::m_lastSensorID
VxdID m_lastSensorID
The most currently queried sensor number.
Definition: PXDIgnoredPixelsMap.h:98
Belle2::PXDIgnoredPixelsMap::map_pixel
std::pair< unsigned short, unsigned short > map_pixel
Simple structure for a pixel, u = map_pixel.first, v = map_pixel.second.
Definition: PXDIgnoredPixelsMap.h:55