CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MTDThresholdClusterizer.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_FTLClusterizer_MTDThresholdClusterizer_H
2 #define RecoLocalTracker_FTLClusterizer_MTDThresholdClusterizer_H
3 
4 //-----------------------------------------------------------------------
31 //-----------------------------------------------------------------------
32 
33 // Base class, defines FTLRecHit and FLTCluster. The latter includes
34 // FTLHit, FTLHitPos and Shift as inner classes.
35 //
37 
38 // The private pixel buffer
39 #include "MTDArrayBuffer.h"
40 
41 // Parameter Set:
43 
46 
47 #include <vector>
48 
50 
52 public:
54  ~MTDThresholdClusterizer() override;
55 
56  // Full I/O in DetSet
58  const MTDGeometry* geom,
59  const MTDTopology* topo,
60  FTLClusterCollection& output) override;
61 
63 
64 private:
65  std::vector<FTLCluster::FTLHitPos> theSeeds; // cached seed pixels
66  std::vector<FTLCluster> theClusters; // resulting clusters
67 
69  const float theHitThreshold; // Hit threshold
70  const float theSeedThreshold; // MTD cluster seed
71  const float theClusterThreshold; // Cluster threshold
72  const float theTimeThreshold; // Time compatibility between new hit and seed
73  const float thePositionThreshold; // Position threshold between new hit and seed
74 
78 
80 
82  MTDArrayBuffer theBuffer; // internal nrow * ncol matrix
83  bool bufferAlreadySet; // status of the buffer array
84 
85  bool setup(const MTDGeometry* geometry, const MTDTopology* topo, const DetId& id);
86  void copy_to_buffer(RecHitIterator itr, const MTDGeometry* geom, const MTDTopology* topo);
87  void clear_buffer(RecHitIterator itr);
89 };
90 
91 #endif
void clusterize(const FTLRecHitCollection &input, const MTDGeometry *geom, const MTDTopology *topo, FTLClusterCollection &output) override
Cluster hits. This method operates on a matrix of hits and finds the largest contiguous cluster aroun...
static void fillPSetDescription(edm::ParameterSetDescription &desc)
Class to store ADC counts and times during clustering.
FTLRecHitCollection::const_iterator RecHitIterator
const float theHitThreshold
Clustering-related quantities:
int theNumOfRows
Geometry-related information.
MTDThresholdClusterizer(edm::ParameterSet const &conf)
Constructor:
static std::string const input
Definition: EdmProvDump.cc:47
void copy_to_buffer(RecHitIterator itr, const MTDGeometry *geom, const MTDTopology *topo)
Copy FTLRecHit into the buffer, identify seeds.
bool setup(const MTDGeometry *geometry, const MTDTopology *topo, const DetId &id)
std::vector< FTLCluster::FTLHitPos > theSeeds
An explicit threshold-based clustering algorithm.
Definition: DetId.h:17
MTDArrayBuffer theBuffer
Data storage.
FTLCluster make_cluster(const FTLCluster::FTLHitPos &hit)
The actual clustering algorithm: group the neighboring hits around the seed.
void clear_buffer(RecHitIterator itr)
Clear the internal buffer array.
std::vector< FTLCluster > theClusters