CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 {
17  public:
18 
20 
21  typedef std::pair<LocalPoint,LocalError> LocalValues;
22  typedef std::vector<LocalValues> VLocalValues;
23 
24  using ReturnType = std::tuple<LocalPoint,LocalError,SiPixelRecHitQuality::QualWordType>;
25 
26  // here just to implement it in the clients;
27  // to be properly implemented in the sub-classes in order to make them thread-safe
28 
29  virtual ReturnType getParameters(const SiPixelCluster & cl,
30  const GeomDetUnit & det) const =0;
31 
32  virtual ReturnType getParameters(const SiPixelCluster & cl,
33  const GeomDetUnit & det,
34  const LocalTrajectoryParameters & ltp ) const =0;
35 
37  const GeomDetUnit & det,
38  const TrajectoryStateOnSurface& tsos ) const {
39  return getParameters(cl,det,tsos.localParameters());
40  }
41 
42  virtual VLocalValues localParametersV(const SiPixelCluster& cluster, const GeomDetUnit& gd) const {
43  VLocalValues vlp;
44  ReturnType tuple = getParameters(cluster, gd);
45  vlp.push_back(std::make_pair(std::get<0>(tuple), std::get<1>(tuple)));
46  return vlp;
47  }
48  virtual VLocalValues localParametersV(const SiPixelCluster& cluster, const GeomDetUnit& gd, TrajectoryStateOnSurface& tsos) const {
49  VLocalValues vlp;
50  ReturnType tuple = getParameters(cluster, gd, tsos);
51  vlp.push_back(std::make_pair(std::get<0>(tuple), std::get<1>(tuple)));
52  return vlp;
53  }
54 
55 
57 
58  //--- Flag to control how SiPixelRecHits compute clusterProbability().
59  //--- Note this is set via the configuration file, and it's simply passed
60  //--- to each TSiPixelRecHit.
61  inline unsigned int clusterProbComputationFlag() const
62  {
64  }
65 
66 
67  protected:
68  //--- A flag that could be used to change the behavior of
69  //--- clusterProbability() in TSiPixelRecHit (the *transient* one).
70  //--- The problem is that the transient hits are made after the CPE runs
71  //--- and they don't get the access to the PSet, so we pass it via the
72  //--- CPE itself...
73  //
75 
76 };
77 
78 #endif
const LocalTrajectoryParameters & localParameters() const
virtual ReturnType getParameters(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
std::pair< LocalPoint, LocalError > LocalValues
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::tuple< LocalPoint, LocalError, SiPixelRecHitQuality::QualWordType > ReturnType