CMS 3D CMS Logo

CastorSimpleRecAlgo.h
Go to the documentation of this file.
1 #ifndef CASTORSIMPLERECALGO_H
2 #define CASTORSIMPLERECALGO_H 1
3 
9 #include <memory>
10 
23 public:
26  int firstSample, int samplesToAdd, bool correctForTimeslew, bool correctForContainment, float fixedPhaseNs);
29 
31  const CastorCoder& coder,
32  const CastorCalibrations& calibs) const;
33 
34  // sets rechit saturation status bit on if ADC count is >= maxADCvalue
35  void checkADCSaturation(CastorRecHit& rechit, const CastorDataFrame& digi, const int& maxADCvalue) const;
36 
37  //++++ Saturation Correction +++++
38  // recover pulse shape if ADC count is >= masADCvalue
40  const CastorCoder& coder,
41  const CastorCalibrations& calibs,
42  const CastorDataFrame& digi,
43  const int& maxADCvalue,
44  const double& satCorrConst) const;
45 
46  void resetTimeSamples(int f, int t) {
47  firstSample_ = f;
48  samplesToAdd_ = t;
49  }
50 
51 private:
54  std::unique_ptr<CastorPulseContainmentCorrection> pulseCorr_;
55 };
56 
57 #endif
void resetTimeSamples(int f, int t)
CastorSimpleRecAlgo(int firstSample, int samplesToAdd, bool correctForTimeslew, bool correctForContainment, float fixedPhaseNs)
void recoverADCSaturation(CastorRecHit &rechit, const CastorCoder &coder, const CastorCalibrations &calibs, const CastorDataFrame &digi, const int &maxADCvalue, const double &satCorrConst) const
std::unique_ptr< CastorPulseContainmentCorrection > pulseCorr_
double f[11][100]
void checkADCSaturation(CastorRecHit &rechit, const CastorDataFrame &digi, const int &maxADCvalue) const
CastorRecHit reconstruct(const CastorDataFrame &digi, const CastorCoder &coder, const CastorCalibrations &calibs) const