A specific threshold-based pixel clustering algorithm. More...
#include <PixelThresholdClusterizerForBricked.h>
Public Member Functions | |
void | clusterizeDetUnit (const edm::DetSet< PixelDigi > &input, const PixelGeomDetUnit *pixDet, const TrackerTopology *tTopo, const std::vector< short > &badChannels, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output) override |
void | clusterizeDetUnit (const edmNew::DetSet< SiPixelCluster > &input, const PixelGeomDetUnit *pixDet, const TrackerTopology *tTopo, const std::vector< short > &badChannels, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output) override |
PixelThresholdClusterizerForBricked (edm::ParameterSet const &conf) | |
~PixelThresholdClusterizerForBricked () override | |
Public Member Functions inherited from PixelThresholdClusterizer | |
PixelThresholdClusterizer (edm::ParameterSet const &conf) | |
~PixelThresholdClusterizer () override | |
Public Member Functions inherited from PixelClusterizerBase | |
void | setSiPixelGainCalibrationService (SiPixelGainCalibrationServiceBase *in) |
virtual | ~PixelClusterizerBase () |
Private Member Functions | |
template<typename T > | |
void | clusterizeDetUnitT (const T &input, const PixelGeomDetUnit *pixDet, const TrackerTopology *tTopo, 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 around each seed pixel. Input and output data stored in DetSet. More... | |
SiPixelCluster | make_cluster_bricked (const SiPixelCluster::PixelPos &pix, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output, bool isbarrel) |
The actual clustering algorithm: group the neighboring pixels around the seed. More... | |
Additional Inherited Members | |
Public Types inherited from PixelClusterizerBase | |
typedef edmNew::DetSet < SiPixelCluster > ::const_iterator | ClusterIterator |
typedef edm::DetSet< PixelDigi > ::const_iterator | DigiIterator |
Static Public Member Functions inherited from PixelThresholdClusterizer | |
static void | fillPSetDescription (edm::ParameterSetDescription &desc) |
Protected Member Functions inherited from PixelThresholdClusterizer | |
int | calibrate (int adc, int col, int row) |
void | clear_buffer (DigiIterator begin, DigiIterator end) |
Clear the internal buffer array. More... | |
void | clear_buffer (ClusterIterator begin, ClusterIterator end) |
template<typename T > | |
void | clusterizeDetUnitT (const T &input, const PixelGeomDetUnit *pixDet, const TrackerTopology *tTopo, 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 around each seed pixel. Input and output data stored in DetSet. More... | |
void | copy_to_buffer (DigiIterator begin, DigiIterator end) |
Copy adc counts from PixelDigis into the buffer, identify seeds. More... | |
void | copy_to_buffer (ClusterIterator begin, ClusterIterator end) |
SiPixelCluster | make_cluster (const SiPixelCluster::PixelPos &pix, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output) |
The actual clustering algorithm: group the neighboring pixels around the seed. More... | |
bool | setup (const PixelGeomDetUnit *pixDet) |
Private helper methods: More... | |
Protected Attributes inherited from PixelThresholdClusterizer | |
const bool | doMissCalibrate |
const bool | doPhase2Calibration |
const bool | doSplitClusters |
SiPixelArrayBuffer | theBuffer |
Data storage. More... | |
std::vector< SiPixelCluster > | theClusters |
const int | theClusterThreshold |
const int | theClusterThreshold_L1 |
float | theClusterThresholdInNoiseUnits |
const int | theConversionFactor |
const int | theConversionFactor_L1 |
uint32_t | theDetid |
const double | theElectronPerADCGain |
std::vector< bool > | theFakePixels |
int | theLayer |
int | theNumOfCols |
int | theNumOfRows |
Geometry-related information. More... | |
const int | theOffset |
const int | theOffset_L1 |
const double | thePhase2DigiBaseline |
const int | thePhase2KinkADC |
const int | thePhase2ReadoutMode |
const int | thePixelThreshold |
float | thePixelThresholdInNoiseUnits |
Clustering-related quantities: More... | |
std::vector < SiPixelCluster::PixelPos > | theSeeds |
const int | theSeedThreshold |
float | theSeedThresholdInNoiseUnits |
Protected Attributes inherited from PixelClusterizerBase | |
SiPixelGainCalibrationServiceBase * | theSiPixelGainCalibrationService_ |
A specific threshold-based pixel clustering algorithm.
An explicit threshold-based clustering algorithm.
Same logic as the base class PixelThresholdClusterizer but specialized for bricked pixels topology
A threshold-based clustering algorithm which clusters SiPixelDigis into SiPixelClusters 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.
SiPixelCluster contains a barrycenter, but it should be noted that 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 PixelArrayBuffer dimensions and pixel thresholds. Makes clusters and stores them in theCache if the option useCache has been set.
Definition at line 46 of file PixelThresholdClusterizerForBricked.h.
PixelThresholdClusterizerForBricked::PixelThresholdClusterizerForBricked | ( | edm::ParameterSet const & | conf | ) |
Constructor: Initilize the buffer to hold pixels from a detector module. This is a vector of 44k ints, stays valid all the time.
Definition at line 29 of file PixelThresholdClusterizerForBricked.cc.
|
override |
Definition at line 32 of file PixelThresholdClusterizerForBricked.cc.
|
inlineoverridevirtual |
Reimplemented from PixelThresholdClusterizer.
Definition at line 52 of file PixelThresholdClusterizerForBricked.h.
References PixelThresholdClusterizer::clusterizeDetUnitT().
|
inlineoverridevirtual |
Reimplemented from PixelThresholdClusterizer.
Definition at line 59 of file PixelThresholdClusterizerForBricked.h.
References PixelThresholdClusterizer::clusterizeDetUnitT().
|
private |
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.
Definition at line 42 of file PixelThresholdClusterizerForBricked.cc.
References cms::cuda::assert(), SplitLinear::begin, edmNew::DetSetVector< T >::FastFiller::begin(), SiPixelCluster::charge(), GetRecoTauVFromDQM_MC_cff::cl2, PixelThresholdClusterizer::clear_buffer(), PixelThresholdClusterizer::copy_to_buffer(), edmNew::DetSetVector< T >::FastFiller::empty(), edmNew::DetSetVector< T >::FastFiller::end(), dataset::end, mps_fire::i, PixelPluginsPhase0_cfi::isBarrel, PixelThresholdClusterizer::make_cluster(), make_cluster_bricked(), SiPixelCluster::minPixelRow(), eostools::move(), PixelSubdetector::PixelBarrel, edmNew::DetSetVector< T >::FastFiller::push_back(), TrackerTopology::pxbLayer(), PixelThresholdClusterizer::setup(), PixelGeomDetUnit::specificTopology(), DetId::subdetId(), PixelThresholdClusterizer::theBuffer, PixelThresholdClusterizer::theClusterThreshold, PixelThresholdClusterizer::theClusterThreshold_L1, PixelThresholdClusterizer::theDetid, PixelThresholdClusterizer::theFakePixels, PixelThresholdClusterizer::theLayer, PixelThresholdClusterizer::theSeeds, and PixelThresholdClusterizer::theSeedThreshold.
|
private |
The actual clustering algorithm: group the neighboring pixels around the seed.
Definition at line 119 of file PixelThresholdClusterizerForBricked.cc.
References PixelClusterizerBase::AccretionCluster::adc, PixelClusterizerBase::AccretionCluster::add(), SiPixelCluster::add(), edmNew::DetSetVector< T >::FastFiller::begin(), c, SiPixelCluster::charge(), GetRecoTauVFromDQM_MC_cff::cl2, SiPixelCluster::PixelPos::col(), SiPixelArrayBuffer::columns(), PixelThresholdClusterizer::doSplitClusters, PixelClusterizerBase::AccretionCluster::empty(), edmNew::DetSetVector< T >::FastFiller::end(), mps_fire::i, PixelClusterizerBase::AccretionCluster::isize, SiStripPI::max, SiStripPI::min, SiPixelCluster::minPixelRow(), SiPixelCluster::pixels(), PixelClusterizerBase::AccretionCluster::pop(), edmNew::DetSetVector< T >::FastFiller::push_back(), alignCSCRings::r, SiPixelCluster::PixelPos::row(), SiPixelArrayBuffer::rows(), SiPixelArrayBuffer::set_adc(), PixelThresholdClusterizer::theBuffer, PixelThresholdClusterizer::theClusterThreshold, PixelThresholdClusterizer::theClusterThreshold_L1, PixelThresholdClusterizer::theLayer, PixelThresholdClusterizer::thePixelThreshold, PixelClusterizerBase::AccretionCluster::top(), PixelClusterizerBase::AccretionCluster::x, PixelClusterizerBase::AccretionCluster::xmin, PixelClusterizerBase::AccretionCluster::y, and PixelClusterizerBase::AccretionCluster::ymin.
Referenced by clusterizeDetUnitT().