CMS 3D CMS Logo

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 //
45 #include "PixelClusterizerBase.h"
46 
47 // The private pixel buffer
48 #include "SiPixelArrayBuffer.h"
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,
66  edmNew::DetSetVector<SiPixelCluster>::FastFiller& output) { clusterizeDetUnitT(input, pixDet, badChannels, output); }
68  const PixelGeomDetUnit * pixDet,
69  const std::vector<short>& badChannels,
70  edmNew::DetSetVector<SiPixelCluster>::FastFiller& output) { clusterizeDetUnitT(input, pixDet, badChannels, output); }
71 
72  private:
73 
74  template<typename T>
75  void clusterizeDetUnitT( const T & input,
76  const PixelGeomDetUnit * pixDet,
77  const std::vector<short>& badChannels,
79 
81  SiPixelArrayBuffer theBuffer; // internal nrow * ncol matrix
82  bool bufferAlreadySet; // status of the buffer array
83  std::vector<SiPixelCluster::PixelPos> theSeeds; // cached seed pixels
84  std::vector<SiPixelCluster> theClusters; // resulting clusters
85 
87  float thePixelThresholdInNoiseUnits; // Pixel threshold in units of noise
88  float theSeedThresholdInNoiseUnits; // Pixel cluster seed in units of noise
89  float theClusterThresholdInNoiseUnits; // Cluster threshold in units of noise
90 
91  const int thePixelThreshold; // Pixel threshold in electrons
92  const int theSeedThreshold; // Seed threshold in electrons
93  const float theClusterThreshold; // Cluster threshold in electrons
94  const int theConversionFactor; // adc to electron conversion factor
95  const int theOffset; // adc to electron conversion offset
96 
97  const int theStackADC_; // The maximum ADC count for the stack layers
98  const int theFirstStack_; // The index of the first stack layer
99  const double theElectronPerADCGain_; // ADC to electrons conversion
100 
104  uint32_t detid_;
105  bool dead_flag;
106  const bool doMissCalibrate; // Use calibration or not
107  const bool doSplitClusters;
109  bool setup(const PixelGeomDetUnit * pixDet);
110  void copy_to_buffer( DigiIterator begin, DigiIterator end );
111  void copy_to_buffer( ClusterIterator begin, ClusterIterator end );
112  void clear_buffer( DigiIterator begin, DigiIterator end );
113  void clear_buffer( ClusterIterator begin, ClusterIterator end );
115  // Calibrate the ADC charge to electrons
116  int calibrate(int adc, int col, int row);
117 
118 };
119 
120 #endif
int adc(sample_type sample)
get the ADC sample (12 bits)
#define dso_hidden
SiPixelArrayBuffer theBuffer
Data storage.
void clusterizeDetUnit(const edm::DetSet< PixelDigi > &input, const PixelGeomDetUnit *pixDet, const std::vector< short > &badChannels, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output)
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
static std::string const input
Definition: EdmProvDump.cc:44
edm::DetSet< PixelDigi >::const_iterator DigiIterator
#define end
Definition: vmac.h:37
void clusterizeDetUnit(const edmNew::DetSet< SiPixelCluster > &input, const PixelGeomDetUnit *pixDet, const std::vector< short > &badChannels, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output)
int theNumOfRows
Geometry-related information.
edmNew::DetSet< SiPixelCluster >::const_iterator ClusterIterator
std::vector< SiPixelCluster > theClusters
Pixel cluster – collection of neighboring pixels above threshold.
float thePixelThresholdInNoiseUnits
Clustering-related quantities:
#define begin
Definition: vmac.h:30
col
Definition: cuy.py:1008
std::vector< SiPixelCluster::PixelPos > theSeeds
long double T
A specific threshold-based pixel clustering algorithm.
Class to store ADC counts during clustering.