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 
5 
7 private:
8  // A list of 2d points
9  class TimewalkCurve {
10  public:
11  // pset must contain "charge" and "delay" of type vdouble
13 
14  // linear interpolation
15  double operator()(double x) const;
16 
17  private:
18  std::vector<double> x_;
19  std::vector<double> y_;
20  };
21 
22  // Holds the timewalk model data
23  class TimewalkModel {
24  public:
26 
27  // returns the delay for given input charge and threshold
28  double operator()(double q_in, double q_threshold) const;
29 
30  private:
31  std::size_t find_closest_index(const std::vector<double>& vec, double value) const;
32 
33  std::vector<double> threshold_values;
34  std::vector<TimewalkCurve> curves;
35  };
36 
37 public:
39  ~PixelDigitizerAlgorithm() override;
40 
41  // initialization that cannot be done in the constructor
42  void init(const edm::EventSetup& es) override;
43 
44  bool select_hit(const PSimHit& hit, double tCorr, double& sigScale) const override;
45  bool isAboveThreshold(const DigitizerUtility::SimHitInfo* hitInfo, float charge, float thr) const override;
46  void add_cross_talk(const Phase2TrackerGeomDetUnit* pixdet) override;
47 
48  // Addition four xtalk-related parameters to PixelDigitizerAlgorithm specific parameters initialized in Phase2TrackerDigitizerAlgorithm
53 
54  // Timewalk parameters
57 };
58 #endif
PixelDigitizerAlgorithm::TimewalkModel::threshold_values
std::vector< double > threshold_values
Definition: PixelDigitizerAlgorithm.h:33
PixelDigitizerAlgorithm::init
void init(const edm::EventSetup &es) override
Definition: PixelDigitizerAlgorithm.cc:25
PixelDigitizerAlgorithm::TimewalkModel::TimewalkModel
TimewalkModel(const edm::ParameterSet &pset)
Definition: PixelDigitizerAlgorithm.cc:198
PixelDigitizerAlgorithm::PixelDigitizerAlgorithm
PixelDigitizerAlgorithm(const edm::ParameterSet &conf)
Definition: PixelDigitizerAlgorithm.cc:40
PixelDigitizerAlgorithm::odd_column_interchannelCoupling_next_column_
const double odd_column_interchannelCoupling_next_column_
Definition: PixelDigitizerAlgorithm.h:51
PixelDigitizerAlgorithm::TimewalkModel::find_closest_index
std::size_t find_closest_index(const std::vector< double > &vec, double value) const
Definition: PixelDigitizerAlgorithm.cc:213
Phase2TrackerDigitizerAlgorithm.h
PixelDigitizerAlgorithm::odd_row_interchannelCoupling_next_row_
const double odd_row_interchannelCoupling_next_row_
Definition: PixelDigitizerAlgorithm.h:49
DDAxes::x
PixelDigitizerAlgorithm::apply_timewalk_
bool apply_timewalk_
Definition: PixelDigitizerAlgorithm.h:55
PixelDigitizerAlgorithm::TimewalkCurve
Definition: PixelDigitizerAlgorithm.h:9
PixelDigitizerAlgorithm::even_row_interchannelCoupling_next_row_
const double even_row_interchannelCoupling_next_row_
Definition: PixelDigitizerAlgorithm.h:50
PixelDigitizerAlgorithm::isAboveThreshold
bool isAboveThreshold(const DigitizerUtility::SimHitInfo *hitInfo, float charge, float thr) const override
Definition: PixelDigitizerAlgorithm.cc:230
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
PixelDigitizerAlgorithm::add_cross_talk
void add_cross_talk(const Phase2TrackerGeomDetUnit *pixdet) override
Definition: PixelDigitizerAlgorithm.cc:80
PixelDigitizerAlgorithm::timewalk_model_
const TimewalkModel timewalk_model_
Definition: PixelDigitizerAlgorithm.h:56
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
PixelDigitizerAlgorithm::TimewalkCurve::y_
std::vector< double > y_
Definition: PixelDigitizerAlgorithm.h:19
edm::ParameterSet
Definition: ParameterSet.h:47
Phase2TrackerDigitizerAlgorithm
Definition: Phase2TrackerDigitizerAlgorithm.h:59
PixelDigitizerAlgorithm::TimewalkModel::curves
std::vector< TimewalkCurve > curves
Definition: PixelDigitizerAlgorithm.h:34
PixelDigitizerAlgorithm::TimewalkCurve::x_
std::vector< double > x_
Definition: PixelDigitizerAlgorithm.h:18
value
Definition: value.py:1
edm::EventSetup
Definition: EventSetup.h:58
PixelDigitizerAlgorithm::even_column_interchannelCoupling_next_column_
const double even_column_interchannelCoupling_next_column_
Definition: PixelDigitizerAlgorithm.h:52
DigitizerUtility::SimHitInfo
Definition: DigitizerUtility.h:14
PixelDigitizerAlgorithm::TimewalkCurve::TimewalkCurve
TimewalkCurve(const edm::ParameterSet &pset)
Definition: PixelDigitizerAlgorithm.cc:178
PixelDigitizerAlgorithm::select_hit
bool select_hit(const PSimHit &hit, double tCorr, double &sigScale) const override
Definition: PixelDigitizerAlgorithm.cc:70
PSimHit
Definition: PSimHit.h:15
PixelDigitizerAlgorithm::TimewalkModel::operator()
double operator()(double q_in, double q_threshold) const
Definition: PixelDigitizerAlgorithm.cc:208
PixelDigitizerAlgorithm
Definition: PixelDigitizerAlgorithm.h:6
PixelDigitizerAlgorithm::~PixelDigitizerAlgorithm
~PixelDigitizerAlgorithm() override
Definition: PixelDigitizerAlgorithm.cc:66
PixelDigitizerAlgorithm::TimewalkModel
Definition: PixelDigitizerAlgorithm.h:23
hit
Definition: SiStripHitEffFromCalibTree.cc:88
PixelDigitizerAlgorithm::TimewalkCurve::operator()
double operator()(double x) const
Definition: PixelDigitizerAlgorithm.cc:185
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27