CMS 3D CMS Logo

PixelDigitizerAlgorithm.h
Go to the documentation of this file.
1 #ifndef _SimTracker_SiPhase2Digitizer_PixelDigitizerAlgorithm_h
2 #define _SimTracker_SiPhase2Digitizer_PixelDigitizerAlgorithm_h
3 
10 
12 private:
13  // A list of 2d points
14  class TimewalkCurve {
15  public:
16  // pset must contain "charge" and "delay" of type vdouble
18 
19  // linear interpolation
20  double operator()(double x) const;
21 
22  private:
23  std::vector<double> x_;
24  std::vector<double> y_;
25  };
26 
27  // Holds the timewalk model data
28  class TimewalkModel {
29  public:
31 
32  // returns the delay for given input charge and threshold
33  double operator()(double q_in, double q_threshold) const;
34 
35  private:
36  std::size_t find_closest_index(const std::vector<double>& vec, double value) const;
37 
38  std::vector<double> threshold_values;
39  std::vector<TimewalkCurve> curves;
40  };
41 
42 public:
44  ~PixelDigitizerAlgorithm() override;
45 
46  // initialization that cannot be done in the constructor
47  void init(const edm::EventSetup& es) override;
48 
49  bool select_hit(const PSimHit& hit, double tCorr, double& sigScale) const override;
50  bool isAboveThreshold(const digitizerUtility::SimHitInfo* hitInfo, float charge, float thr) const override;
51  void add_cross_talk(const Phase2TrackerGeomDetUnit* pixdet) override;
52  void module_killing_DB(const Phase2TrackerGeomDetUnit* pixdet) override;
53 
54  // Addition four xtalk-related parameters to PixelDigitizerAlgorithm specific parameters initialized in Phase2TrackerDigitizerAlgorithm
59 
60  // Timewalk parameters
63 
67 };
68 #endif
edm::ESGetToken< SiPixelQuality, SiPixelQualityRcd > siPixelBadModuleToken_
void init(const edm::EventSetup &es) override
void module_killing_DB(const Phase2TrackerGeomDetUnit *pixdet) override
const TimewalkModel timewalk_model_
void add_cross_talk(const Phase2TrackerGeomDetUnit *pixdet) override
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
double operator()(double q_in, double q_threshold) const
TimewalkCurve(const edm::ParameterSet &pset)
Definition: value.py:1
bool select_hit(const PSimHit &hit, double tCorr, double &sigScale) const override
TimewalkModel(const edm::ParameterSet &pset)
PixelDigitizerAlgorithm(const edm::ParameterSet &conf, edm::ConsumesCollector iC)
bool isAboveThreshold(const digitizerUtility::SimHitInfo *hitInfo, float charge, float thr) const override
std::size_t find_closest_index(const std::vector< double > &vec, double value) const
edm::ESGetToken< SiPixelLorentzAngle, SiPixelLorentzAngleSimRcd > siPixelLorentzAngleToken_