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 
11 
13 private:
14  // A list of 2d points
15  class TimewalkCurve {
16  public:
17  // pset must contain "charge" and "delay" of type vdouble
19 
20  // linear interpolation
21  double operator()(double x) const;
22 
23  private:
24  std::vector<double> x_;
25  std::vector<double> y_;
26  };
27 
28  // Holds the timewalk model data
29  class TimewalkModel {
30  public:
32 
33  // returns the delay for given input charge and threshold
34  double operator()(double q_in, double q_threshold) const;
35 
36  private:
37  std::size_t find_closest_index(const std::vector<double>& vec, double value) const;
38 
39  std::vector<double> threshold_values;
40  std::vector<TimewalkCurve> curves;
41  };
42 
43 public:
45  ~PixelDigitizerAlgorithm() override;
46 
47  // initialization that cannot be done in the constructor
48  void init(const edm::EventSetup& es) override;
49 
50  bool select_hit(const PSimHit& hit, double tCorr, double& sigScale) const override;
51  bool isAboveThreshold(const DigitizerUtility::SimHitInfo* hitInfo, float charge, float thr) const override;
52  void add_cross_talk(const Phase2TrackerGeomDetUnit* pixdet) override;
53 
54  // Addition four xtalk-related parameters to PixelDigitizerAlgorithm specific parameters initialized in Phase2TrackerDigitizerAlgorithm
59 
60  // Timewalk parameters
63 
68 };
69 #endif
PixelDigitizerAlgorithm::siPixelBadModuleToken_
edm::ESGetToken< SiPixelQuality, SiPixelQualityRcd > siPixelBadModuleToken_
Definition: PixelDigitizerAlgorithm.h:64
PixelDigitizerAlgorithm::TimewalkModel::threshold_values
std::vector< double > threshold_values
Definition: PixelDigitizerAlgorithm.h:39
PixelDigitizerAlgorithm::fedCablingMapToken_
const edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > fedCablingMapToken_
Definition: PixelDigitizerAlgorithm.h:66
PixelDigitizerAlgorithm::init
void init(const edm::EventSetup &es) override
Definition: PixelDigitizerAlgorithm.cc:19
PixelDigitizerAlgorithm::TimewalkModel::TimewalkModel
TimewalkModel(const edm::ParameterSet &pset)
Definition: PixelDigitizerAlgorithm.cc:199
GlobalPixel.h
PixelDigitizerAlgorithm::odd_column_interchannelCoupling_next_column_
const double odd_column_interchannelCoupling_next_column_
Definition: PixelDigitizerAlgorithm.h:57
PixelDigitizerAlgorithm::TimewalkModel::find_closest_index
std::size_t find_closest_index(const std::vector< double > &vec, double value) const
Definition: PixelDigitizerAlgorithm.cc:214
SiPixelLorentzAngleSimRcd.h
Phase2TrackerDigitizerAlgorithm.h
PixelDigitizerAlgorithm::odd_row_interchannelCoupling_next_row_
const double odd_row_interchannelCoupling_next_row_
Definition: PixelDigitizerAlgorithm.h:55
DDAxes::x
PixelDigitizerAlgorithm::geomToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
Definition: PixelDigitizerAlgorithm.h:67
ESGetToken.h
PixelDigitizerAlgorithm::apply_timewalk_
bool apply_timewalk_
Definition: PixelDigitizerAlgorithm.h:61
PixelDigitizerAlgorithm::TimewalkCurve
Definition: PixelDigitizerAlgorithm.h:15
PixelDigitizerAlgorithm::even_row_interchannelCoupling_next_row_
const double even_row_interchannelCoupling_next_row_
Definition: PixelDigitizerAlgorithm.h:56
PixelDigitizerAlgorithm::isAboveThreshold
bool isAboveThreshold(const DigitizerUtility::SimHitInfo *hitInfo, float charge, float thr) const override
Definition: PixelDigitizerAlgorithm.cc:231
SiPixelQualityRcd.h
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
PixelDigitizerAlgorithm::add_cross_talk
void add_cross_talk(const Phase2TrackerGeomDetUnit *pixdet) override
Definition: PixelDigitizerAlgorithm.cc:81
PixelDigitizerAlgorithm::timewalk_model_
const TimewalkModel timewalk_model_
Definition: PixelDigitizerAlgorithm.h:62
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
TrackerDigiGeometryRecord.h
PixelDigitizerAlgorithm::TimewalkCurve::y_
std::vector< double > y_
Definition: PixelDigitizerAlgorithm.h:25
edm::ParameterSet
Definition: ParameterSet.h:47
Phase2TrackerDigitizerAlgorithm
Definition: Phase2TrackerDigitizerAlgorithm.h:54
SiPixelFedCablingMapRcd.h
PixelDigitizerAlgorithm::TimewalkModel::curves
std::vector< TimewalkCurve > curves
Definition: PixelDigitizerAlgorithm.h:40
PixelDigitizerAlgorithm::TimewalkCurve::x_
std::vector< double > x_
Definition: PixelDigitizerAlgorithm.h:24
value
Definition: value.py:1
PixelDigitizerAlgorithm::PixelDigitizerAlgorithm
PixelDigitizerAlgorithm(const edm::ParameterSet &conf, edm::ConsumesCollector iC)
Definition: PixelDigitizerAlgorithm.cc:34
edm::EventSetup
Definition: EventSetup.h:58
PixelDigitizerAlgorithm::even_column_interchannelCoupling_next_column_
const double even_column_interchannelCoupling_next_column_
Definition: PixelDigitizerAlgorithm.h:58
edm::ESGetToken< SiPixelQuality, SiPixelQualityRcd >
DigitizerUtility::SimHitInfo
Definition: DigitizerUtility.h:14
PixelDigitizerAlgorithm::TimewalkCurve::TimewalkCurve
TimewalkCurve(const edm::ParameterSet &pset)
Definition: PixelDigitizerAlgorithm.cc:179
PixelDigitizerAlgorithm::select_hit
bool select_hit(const PSimHit &hit, double tCorr, double &sigScale) const override
Definition: PixelDigitizerAlgorithm.cc:71
PixelDigitizerAlgorithm::siPixelLorentzAngleToken_
edm::ESGetToken< SiPixelLorentzAngle, SiPixelLorentzAngleSimRcd > siPixelLorentzAngleToken_
Definition: PixelDigitizerAlgorithm.h:65
PSimHit
Definition: PSimHit.h:15
PixelDigitizerAlgorithm::TimewalkModel::operator()
double operator()(double q_in, double q_threshold) const
Definition: PixelDigitizerAlgorithm.cc:209
PixelDigitizerAlgorithm
Definition: PixelDigitizerAlgorithm.h:12
PixelDigitizerAlgorithm::~PixelDigitizerAlgorithm
~PixelDigitizerAlgorithm() override
Definition: PixelDigitizerAlgorithm.cc:67
PixelDigitizerAlgorithm::TimewalkModel
Definition: PixelDigitizerAlgorithm.h:29
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
hit
Definition: SiStripHitEffFromCalibTree.cc:88
PixelDigitizerAlgorithm::TimewalkCurve::operator()
double operator()(double x) const
Definition: PixelDigitizerAlgorithm.cc:186
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27