A specific threshold-based pixel clustering algorithm. More...
#include <Phase2ITPixelThresholdClusterizer.h>
Public Member Functions | |
void | clusterizeDetUnit (const edm::DetSet< PixelDigi > &input, const PixelGeomDetUnit *pixDet, const std::vector< short > &badChannels, edmNew::DetSetVector< Phase2ITPixelCluster >::FastFiller &output) |
Cluster pixels. This method operates on a matrix of pixels and finds the largest contiguous cluster around each seed pixel. Input and output data stored in DetSet. More... | |
Phase2ITPixelThresholdClusterizer (edm::ParameterSet const &conf) | |
~Phase2ITPixelThresholdClusterizer () | |
Public Member Functions inherited from Phase2ITPixelClusterizerBase | |
void | setSiPixelGainCalibrationService (SiPixelGainCalibrationServiceBase *in) |
virtual | ~Phase2ITPixelClusterizerBase () |
Private Member Functions | |
int | calibrate (int adc, int col, int row) |
void | clear_buffer (DigiIterator begin, DigiIterator end) |
Clear the internal buffer array. More... | |
void | copy_to_buffer (DigiIterator begin, DigiIterator end) |
Copy adc counts from PixelDigis into the buffer, identify seeds. More... | |
Phase2ITPixelCluster | make_cluster (const Phase2ITPixelCluster::PixelPos &pix, edmNew::DetSetVector< Phase2ITPixelCluster >::FastFiller &output) |
The actual clustering algorithm: group the neighboring pixels around the seed. More... | |
bool | setup (const PixelGeomDetUnit *pixDet) |
Private helper methods: More... | |
Private Attributes | |
bool | bufferAlreadySet |
edm::ParameterSet | conf_ |
bool | dead_flag |
uint32_t | detid_ |
bool | doMissCalibrate |
bool | doSplitClusters |
Phase2ITPixelArrayBuffer | theBuffer |
Data storage. More... | |
std::vector< Phase2ITPixelCluster > | theClusters |
float | theClusterThreshold |
float | theClusterThresholdInNoiseUnits |
int | theConversionFactor |
int | theFirstStack_ |
int | theNumOfCols |
int | theNumOfRows |
Geometry-related information. More... | |
int | theOffset |
int | thePixelThreshold |
float | thePixelThresholdInNoiseUnits |
Clustering-related quantities: More... | |
std::vector< Phase2ITPixelCluster::PixelPos > | theSeeds |
int | theSeedThreshold |
float | theSeedThresholdInNoiseUnits |
int | theStackADC_ |
Additional Inherited Members | |
Public Types inherited from Phase2ITPixelClusterizerBase | |
typedef edm::DetSet< PixelDigi >::const_iterator | DigiIterator |
Protected Attributes inherited from Phase2ITPixelClusterizerBase | |
SiPixelGainCalibrationServiceBase * | theSiPixelGainCalibrationService_ |
A specific threshold-based pixel clustering algorithm.
An explicit threshold-based clustering algorithm.
General logic of Phase2ITPixelThresholdClusterizer:
The clusterization is performed on a matrix with size equal to the size of the pixel detector, each cell containing the ADC count of the corresponding pixel. The matrix is reset after each clusterization.
The search starts from seed pixels, i.e. pixels with sufficiently large amplitudes, found at the time of filling of the matrix and stored in a Phase2ITPixelArrayBuffer.
Translate the pixel charge to electrons, we are suppose to do the calibrations ADC->electrons here. Modify the thresholds to be in electrons, convert adc to electrons. d.k. 20/3/06 Get rid of the noiseVector. d.k. 28/3/06
A threshold-based clustering algorithm which clusters SiPixelDigis into Phase2ITPixelClusters for each DetUnit. The algorithm is straightforward and purely topological: the clustering process starts with seed pixels and continues by adding adjacent pixels above the pixel threshold. Once the cluster is made, it has to be above the cluster threshold as well.
The clusterization is performed on a matrix with size equal to the size of the pixel detector, each cell containing the ADC count of the corresponding pixel. The matrix is reset after each clusterization.
The search starts from seed pixels, i.e. pixels with sufficiently large amplitudes, found at the time of filling of the matrix and stored in a
At this point the noise and dead channels are ignored, but soon they won't be.
Phase2ITPixelCluster contains a barycenter, but it should be noted that information is largely useless. One must use a PositionEstimator class to compute the RecHit position and its error for every given cluster.
Sets the Phase2ITPixelArrayBuffer dimensions and pixel thresholds. Makes clusters and stores them in theCache if the option useCache has been set.
Definition at line 56 of file Phase2ITPixelThresholdClusterizer.h.
Phase2ITPixelThresholdClusterizer::Phase2ITPixelThresholdClusterizer | ( | edm::ParameterSet const & | conf | ) |
Constructor: Initilize the buffer to hold pixels from a detector module. (old comment: This is a vector of 44k ints, stays valid all the time.)
Definition at line 45 of file Phase2ITPixelThresholdClusterizer.cc.
References edm::ParameterSet::getParameter().
Phase2ITPixelThresholdClusterizer::~Phase2ITPixelThresholdClusterizer | ( | ) |
Definition at line 72 of file Phase2ITPixelThresholdClusterizer.cc.
|
private |
Definition at line 247 of file Phase2ITPixelThresholdClusterizer.cc.
References ecalMGPA::adc(), Clusterizer1DCommons::add(), Phase2ITPixelCluster::PixelPos::col(), constexpr, genericTrackCleaner_cfi::electrons, relativeConstraints::empty, muonCSCDigis_cfi::gain, createfilelist::int, PXBDetId::layer(), min(), AlCaHLTBitMon_ParallelJobs::p, muonCSCDigis_cfi::pedestal, lhef::pop(), Phase2ITPixelCluster::PixelPos::row(), x(), TrackerOfflineValidation_Dqm_cff::xmin, and Phase2TrackerMonitorDigi_cff::ymin.
|
private |
Clear the internal buffer array.
Pixels which are not part of recognized clusters are NOT ERASED during the cluster finding. Erase them now.
TO DO: ask Danek... wouldn't it be faster to simply memcopy() zeros into the whole buffer array?
Definition at line 172 of file Phase2ITPixelThresholdClusterizer.cc.
References end.
|
virtual |
Cluster pixels. This method operates on a matrix of pixels and finds the largest contiguous cluster around each seed pixel. Input and output data stored in DetSet.
Implements Phase2ITPixelClusterizerBase.
Definition at line 112 of file Phase2ITPixelThresholdClusterizer.cc.
References begin, edm::DetSet< T >::begin(), Phase2ITPixelCluster::charge(), edm::DetSet< T >::detId(), end, edm::DetSet< T >::end(), mps_fire::i, eostools::move(), edmNew::DetSetVector< T >::FastFiller::push_back(), and GeneralSetup::setup().
|
private |
Copy adc counts from PixelDigis into the buffer, identify seeds.
Definition at line 183 of file Phase2ITPixelThresholdClusterizer.cc.
References ecalMGPA::adc(), begin, cuy::col, metsig::electron, end, muonCSCDigis_cfi::gain, mps_fire::i, recoMuon::in, createfilelist::int, PXBDetId::layer(), muonCSCDigis_cfi::pedestal, and DetId::subdetId().
|
private |
The actual clustering algorithm: group the neighboring pixels around the seed.
Definition at line 353 of file Phase2ITPixelThresholdClusterizer.cc.
References Phase2ITPixelCluster::add(), EnergyCorrector::c, Phase2ITPixelCluster::charge(), Phase2ITPixelCluster::PixelPos::col(), mps_fire::i, hpstanc_transforms::max, min(), Phase2ITPixelCluster::pixels(), edmNew::DetSetVector< T >::FastFiller::push_back(), alignCSCRings::r, and Phase2ITPixelCluster::PixelPos::row().
|
private |
Private helper methods:
Prepare the Clusterizer to work on a particular DetUnit. Re-init the size of the panel/plaquette (so update nrows and ncols),
Definition at line 78 of file Phase2ITPixelThresholdClusterizer.cc.
References trackingPlots::ncols, PixelTopology::ncolumns(), PixelTopology::nrows(), and PixelGeomDetUnit::specificTopology().
|
private |
Definition at line 76 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 72 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 95 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 94 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 96 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 97 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Data storage.
Definition at line 75 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 78 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 87 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 83 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 88 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 107 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 93 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Geometry-related information.
Definition at line 92 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 89 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 85 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Clustering-related quantities:
Definition at line 81 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 77 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 86 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 82 of file Phase2ITPixelThresholdClusterizer.h.
|
private |
Definition at line 106 of file Phase2ITPixelThresholdClusterizer.h.