CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PixelThresholdClusterizer.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_SiPixelClusterizer_PixelThresholdClusterizer_H
2 #define RecoLocalTracker_SiPixelClusterizer_PixelThresholdClusterizer_H
3 
4 //-----------------------------------------------------------------------
39 //-----------------------------------------------------------------------
40 
41 // Base class, defines SiPixelDigi and SiPixelCluster. The latter includes
42 // Pixel, PixelPos and Shift as inner classes.
43 //
46 
47 // The private pixel buffer
49 
50 // Parameter Set:
52 
53 #include <vector>
54 
55 
57  public:
58 
61 
62  // Full I/O in DetSet
64  const PixelGeomDetUnit * pixDet,
65  const std::vector<short>& badChannels,
67 );
68 
69 
70  private:
71 
73 
75  SiPixelArrayBuffer theBuffer; // internal nrow * ncol matrix
76  bool bufferAlreadySet; // status of the buffer array
77  std::vector<SiPixelCluster::PixelPos> theSeeds; // cached seed pixels
78  std::vector<SiPixelCluster> theClusters; // resulting clusters
79 
81  float thePixelThresholdInNoiseUnits; // Pixel threshold in units of noise
82  float theSeedThresholdInNoiseUnits; // Pixel cluster seed in units of noise
83  float theClusterThresholdInNoiseUnits; // Cluster threshold in units of noise
84 
85  int thePixelThreshold; // Pixel threshold in electrons
86  int theSeedThreshold; // Seed threshold in electrons
87  float theClusterThreshold; // Cluster threshold in electrons
88  int theConversionFactor; // adc to electron conversion factor
89  int theOffset; // adc to electron conversion offset
90 
94  uint32_t detid_;
95  bool dead_flag;
96  bool doMissCalibrate; // Use calibration or not
99  bool setup(const PixelGeomDetUnit * pixDet);
103 );
104  // Calibrate the ADC charge to electrons
105  int calibrate(int adc, int col, int row);
106 
107 };
108 
109 #endif
int adc(sample_type sample)
get the ADC sample (12 bits)
SiPixelArrayBuffer theBuffer
Data storage.
void clusterizeDetUnit(const edm::DetSet< PixelDigi > &input, const PixelGeomDetUnit *pixDet, const std::vector< short > &badChannels, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output)
Cluster pixels. This method operates on a matrix of pixels and finds the largest contiguous cluster a...
PixelThresholdClusterizer(edm::ParameterSet const &conf)
SiPixelCluster make_cluster(const SiPixelCluster::PixelPos &pix, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output)
The actual clustering algorithm: group the neighboring pixels around the seed.
edm::DetSet< PixelDigi >::const_iterator DigiIterator
#define end
Definition: vmac.h:38
tuple conf
Definition: dbtoconf.py:185
int theNumOfRows
Geometry-related information.
void clear_buffer(DigiIterator begin, DigiIterator end)
Clear the internal buffer array.
std::vector< SiPixelCluster > theClusters
Pixel cluster – collection of neighboring pixels above threshold.
float thePixelThresholdInNoiseUnits
Clustering-related quantities:
#define begin
Definition: vmac.h:31
bool setup(const PixelGeomDetUnit *pixDet)
Private helper methods:
int calibrate(int adc, int col, int row)
std::vector< SiPixelCluster::PixelPos > theSeeds
void copy_to_buffer(DigiIterator begin, DigiIterator end)
Copy adc counts from PixelDigis into the buffer, identify seeds.
An explicit threshold-based clustering algorithm.
Class to store ADC counts during clustering.