SimplePedestalCalculator

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#ifndef ApvAnalysis_SimplePedestalCalculator_h
#define ApvAnalysis_SimplePedestalCalculator_h

#include "CalibTracker/SiStripAPVAnalysis/interface/TkPedestalCalculator.h"
#include <map>
/**
 * Concrete implementation of  TkPedestalCalculator for Simple.
 */

class SimplePedestalCalculator : public TkPedestalCalculator {
public:
  SimplePedestalCalculator(int evnt_ini);
  ~SimplePedestalCalculator() override;

  void resetPedestals() override {
    thePedestal.clear();
    theRawNoise.clear();
  }
  void setPedestals(ApvAnalysis::PedestalType& in) override { thePedestal = in; }
  void setRawNoise(ApvAnalysis::PedestalType& in) { theRawNoise = in; }

  void updateStatus() override;

  void updatePedestal(ApvAnalysis::RawSignalType& in) override;

  ApvAnalysis::PedestalType rawNoise() const override { return theRawNoise; }
  ApvAnalysis::PedestalType pedestal() const override { return thePedestal; }

  void newEvent() override;

private:
  void init();
  void initializePedestal(ApvAnalysis::RawSignalType& in);
  void refinePedestal(ApvAnalysis::RawSignalType& in);

protected:
  ApvAnalysis::PedestalType thePedestal;
  ApvAnalysis::PedestalType theRawNoise;
  std::vector<int> thePedSum, thePedSqSum;
  std::vector<unsigned short> theEventPerStrip;
  int numberOfEvents;
  int eventsRequiredToCalibrate;
  //  int eventsRequiredToUpdate;
  //  float cutToAvoidSignal;
  bool alreadyUsedEvent;
};
#endif