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  // void initializeEvent();
45  // run the algorithm to digitize a single det
46  void accumulateSimHits(const std::vector<PSimHit>::const_iterator inputBegin,
47  const std::vector<PSimHit>::const_iterator inputEnd,
48  const size_t inputBeginGlobalIndex,
49  const uint32_t tofBin,
50  const Phase2TrackerGeomDetUnit* pixdet,
51  const GlobalVector& bfield) override;
52  bool select_hit(const PSimHit& hit, double tCorr, double& sigScale) override;
53  bool isAboveThreshold(const DigitizerUtility::SimHitInfo* hitInfo, float charge, float thr) override;
54  void add_cross_talk(const Phase2TrackerGeomDetUnit* pixdet) override;
55 
56  // Addition four xtalk-related parameters to PixelDigitizerAlgorithm specific parameters initialized in Phase2TrackerDigitizerAlgorithm
61 
62  // Timewalk parameters
65 };
66 #endif
Vector3DBase
Definition: Vector3DBase.h:8
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:238
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:59
PixelDigitizerAlgorithm::TimewalkModel::find_closest_index
std::size_t find_closest_index(const std::vector< double > &vec, double value) const
Definition: PixelDigitizerAlgorithm.cc:253
Phase2TrackerDigitizerAlgorithm.h
PixelDigitizerAlgorithm::odd_row_interchannelCoupling_next_row_
const double odd_row_interchannelCoupling_next_row_
Definition: PixelDigitizerAlgorithm.h:57
DDAxes::x
PixelDigitizerAlgorithm::apply_timewalk_
bool apply_timewalk_
Definition: PixelDigitizerAlgorithm.h:63
PixelDigitizerAlgorithm::TimewalkCurve
Definition: PixelDigitizerAlgorithm.h:9
PixelDigitizerAlgorithm::even_row_interchannelCoupling_next_row_
const double even_row_interchannelCoupling_next_row_
Definition: PixelDigitizerAlgorithm.h:58
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
PixelDigitizerAlgorithm::accumulateSimHits
void accumulateSimHits(const std::vector< PSimHit >::const_iterator inputBegin, const std::vector< PSimHit >::const_iterator inputEnd, const size_t inputBeginGlobalIndex, const uint32_t tofBin, const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield) override
Definition: PixelDigitizerAlgorithm.cc:67
PixelDigitizerAlgorithm::add_cross_talk
void add_cross_talk(const Phase2TrackerGeomDetUnit *pixdet) override
Definition: PixelDigitizerAlgorithm.cc:120
PixelDigitizerAlgorithm::timewalk_model_
const TimewalkModel timewalk_model_
Definition: PixelDigitizerAlgorithm.h:64
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:36
Phase2TrackerDigitizerAlgorithm
Definition: Phase2TrackerDigitizerAlgorithm.h:58
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
PixelDigitizerAlgorithm::isAboveThreshold
bool isAboveThreshold(const DigitizerUtility::SimHitInfo *hitInfo, float charge, float thr) override
Definition: PixelDigitizerAlgorithm.cc:270
edm::EventSetup
Definition: EventSetup.h:57
PixelDigitizerAlgorithm::even_column_interchannelCoupling_next_column_
const double even_column_interchannelCoupling_next_column_
Definition: PixelDigitizerAlgorithm.h:60
DigitizerUtility::SimHitInfo
Definition: DigitizerUtility.h:14
PixelDigitizerAlgorithm::TimewalkCurve::TimewalkCurve
TimewalkCurve(const edm::ParameterSet &pset)
Definition: PixelDigitizerAlgorithm.cc:218
PixelDigitizerAlgorithm::select_hit
bool select_hit(const PSimHit &hit, double tCorr, double &sigScale) override
Definition: PixelDigitizerAlgorithm.cc:110
PSimHit
Definition: PSimHit.h:15
PixelDigitizerAlgorithm::TimewalkModel::operator()
double operator()(double q_in, double q_threshold) const
Definition: PixelDigitizerAlgorithm.cc:248
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:225
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27