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