CMS 3D CMS Logo

PixelCPEGenericBase.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_SiPixelRecHits_PixelCPEGenericBase_H
2 #define RecoLocalTracker_SiPixelRecHits_PixelCPEGenericBase_H
3 
4 #include <vector>
5 
7 
9 public:
13  // The truncation value pix_maximum is an angle-dependent cutoff on the
14  // individual pixel signals. It should be applied to all pixels in the
15  // cluster [signal_i = fminf(signal_i, pixmax)] before the column and row
16  // sums are made. Morris
17  int pixmx{};
18 
19  // These are errors predicted by PIXELAV
20  float sigmay{}; // CPE Generic y-error for multi-pixel cluster
21  float sigmax{}; // CPE Generic x-error for multi-pixel cluster
22  float sy1{}; // CPE Generic y-error for single single-pixel
23  float sy2{}; // CPE Generic y-error for single double-pixel cluster
24  float sx1{}; // CPE Generic x-error for single single-pixel cluster
25  float sx2{}; // CPE Generic x-error for single double-pixel cluster
26 
27  // These are irradiation bias corrections
28  float deltay{}; // CPE Generic y-bias for multi-pixel cluster
29  float deltax{}; // CPE Generic x-bias for multi-pixel cluster
30  float dy1{}; // CPE Generic y-bias for single single-pixel cluster
31  float dy2{}; // CPE Generic y-bias for single double-pixel cluster
32  float dx1{}; // CPE Generic x-bias for single single-pixel cluster
33  float dx2{}; // CPE Generic x-bias for single double-pixel cluster
34  };
35 
37  const MagneticField* mag,
38  const TrackerGeometry& geom,
39  const TrackerTopology& ttopo,
40  const SiPixelLorentzAngle* lorentzAngle,
41  const SiPixelGenErrorDBObject* genErrorDBObject,
42  const SiPixelLorentzAngle* lorentzAngleWidth);
43 
44  ~PixelCPEGenericBase() override = default;
45 
47 
48 protected:
49  std::unique_ptr<ClusterParam> createClusterParam(const SiPixelCluster& cl) const override;
50 
51  static void collect_edge_charges(ClusterParam& theClusterParam,
52  int& q_f_X,
53  int& q_l_X,
54  int& q_f_Y,
55  int& q_l_Y,
56  bool truncate);
57 
58  void initializeLocalErrorVariables(float& xerr,
59  float& yerr,
60  bool& edgex,
61  bool& edgey,
62  bool& bigInX,
63  bool& bigInY,
64  int& maxPixelCol,
65  int& maxPixelRow,
66  int& minPixelCol,
67  int& minPixelRow,
68  uint& sizex,
69  uint& sizey,
70  DetParam const& theDetParam,
71  ClusterParamGeneric const& theClusterParam) const;
72 
73  void setXYErrors(float& xerr,
74  float& yerr,
75  const bool edgex,
76  const bool edgey,
77  const unsigned int sizex,
78  const unsigned int sizey,
79  const bool bigInX,
80  const bool bigInY,
81  const bool useTemplateErrors,
82  DetParam const& theDetParam,
83  ClusterParamGeneric const& theClusterParam) const;
84 
85  const float edgeClusterErrorX_;
86  const float edgeClusterErrorY_;
89 
90  // Rechit errors in case other, more correct, errors are not vailable
91  const std::vector<float> xerr_barrel_l1_, yerr_barrel_l1_, xerr_barrel_ln_;
92  const std::vector<float> yerr_barrel_ln_, xerr_endcap_, yerr_endcap_;
95 };
96 
97 #endif // RecoLocalTracker_SiPixelRecHits_PixelCPEGenericBase_H
const float yerr_barrel_l1_def_
const std::vector< float > yerr_barrel_ln_
const std::vector< float > xerr_barrel_ln_
ClusterParamGeneric(const SiPixelCluster &cl)
const std::vector< float > yerr_barrel_l1_
static void collect_edge_charges(ClusterParam &theClusterParam, int &q_f_X, int &q_l_X, int &q_f_Y, int &q_l_Y, bool truncate)
const std::vector< float > yerr_endcap_
const float edgeClusterErrorY_
const std::vector< float > xerr_endcap_
static void fillPSetDescription(edm::ParameterSetDescription &desc)
const float xerr_barrel_l1_def_
PixelCPEGenericBase(edm::ParameterSet const &conf, const MagneticField *mag, const TrackerGeometry &geom, const TrackerTopology &ttopo, const SiPixelLorentzAngle *lorentzAngle, const SiPixelGenErrorDBObject *genErrorDBObject, const SiPixelLorentzAngle *lorentzAngleWidth)
const float yerr_barrel_ln_def_
~PixelCPEGenericBase() override=default
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
void setXYErrors(float &xerr, float &yerr, const bool edgex, const bool edgey, const unsigned int sizex, const unsigned int sizey, const bool bigInX, const bool bigInY, const bool useTemplateErrors, DetParam const &theDetParam, ClusterParamGeneric const &theClusterParam) const
const float xerr_barrel_ln_def_
const std::vector< float > xerr_barrel_l1_
Pixel cluster – collection of neighboring pixels above threshold.
const float edgeClusterErrorX_
std::unique_ptr< ClusterParam > createClusterParam(const SiPixelCluster &cl) const override
void initializeLocalErrorVariables(float &xerr, float &yerr, bool &edgex, bool &edgey, bool &bigInX, bool &bigInY, int &maxPixelCol, int &maxPixelRow, int &minPixelCol, int &minPixelRow, uint &sizex, uint &sizey, DetParam const &theDetParam, ClusterParamGeneric const &theClusterParam) const