CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PixelClusterParameterEstimator.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_PixelCluster_Parameter_Estimator_H
2 #define RecoLocalTracker_PixelCluster_Parameter_Estimator_H
3 
6 
10 
13 #include <tuple>
14 
16 public:
18 
19  typedef std::pair<LocalPoint, LocalError> LocalValues;
20  typedef std::vector<LocalValues> VLocalValues;
21 
22  using ReturnType = std::tuple<LocalPoint, LocalError, SiPixelRecHitQuality::QualWordType>;
23 
24  // here just to implement it in the clients;
25  // to be properly implemented in the sub-classes in order to make them thread-safe
26 
27  virtual ReturnType getParameters(const SiPixelCluster& cl, const GeomDetUnit& det) const = 0;
28 
30  const GeomDetUnit& det,
31  const LocalTrajectoryParameters& ltp) const = 0;
32 
34  const GeomDetUnit& det,
35  const TrajectoryStateOnSurface& tsos) const {
36  return getParameters(cl, det, tsos.localParameters());
37  }
38 
39  virtual VLocalValues localParametersV(const SiPixelCluster& cluster, const GeomDetUnit& gd) const {
40  VLocalValues vlp;
41  ReturnType tuple = getParameters(cluster, gd);
42  vlp.push_back(std::make_pair(std::get<0>(tuple), std::get<1>(tuple)));
43  return vlp;
44  }
46  const GeomDetUnit& gd,
47  TrajectoryStateOnSurface& tsos) const {
48  VLocalValues vlp;
49  ReturnType tuple = getParameters(cluster, gd, tsos);
50  vlp.push_back(std::make_pair(std::get<0>(tuple), std::get<1>(tuple)));
51  return vlp;
52  }
53 
55 
56  //--- Flag to control how SiPixelRecHits compute clusterProbability().
57  //--- Note this is set via the configuration file, and it's simply passed
58  //--- to each TSiPixelRecHit.
59  inline unsigned int clusterProbComputationFlag() const { return clusterProbComputationFlag_; }
60 
61 protected:
62  //--- A flag that could be used to change the behavior of
63  //--- clusterProbability() in TSiPixelRecHit (the *transient* one).
64  //--- The problem is that the transient hits are made after the CPE runs
65  //--- and they don't get the access to the PSet, so we pass it via the
66  //--- CPE itself...
67  //
69 };
70 
71 #endif
const LocalTrajectoryParameters & localParameters() const
tuple cl
Definition: haddnano.py:49
virtual ReturnType getParameters(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
virtual VLocalValues localParametersV(const SiPixelCluster &cluster, const GeomDetUnit &gd, TrajectoryStateOnSurface &tsos) const
virtual ReturnType getParameters(const SiPixelCluster &cl, const GeomDetUnit &det, const TrajectoryStateOnSurface &tsos) const
virtual VLocalValues localParametersV(const SiPixelCluster &cluster, const GeomDetUnit &gd) const
Pixel cluster – collection of neighboring pixels above threshold.
std::pair< LocalPoint, LocalError > LocalValues
std::tuple< LocalPoint, LocalError, SiPixelRecHitQuality::QualWordType > ReturnType