MedianCommonModeCalculator

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
#ifndef Tracker_MedianCommonModeCalculator_h
#define Tracker_MedianCommonModeCalculator_h

#include "CalibTracker/SiStripAPVAnalysis/interface/TkCommonModeCalculator.h"
#include "CalibTracker/SiStripAPVAnalysis/interface/TkNoiseCalculator.h"
#include "CalibTracker/SiStripAPVAnalysis/interface/TkApvMask.h"
/**
 * Concrete implementation of TkCommonModeCalculator  for Median.
 */

class MedianCommonModeCalculator : public TkCommonModeCalculator {
public:
  MedianCommonModeCalculator();

  ~MedianCommonModeCalculator() override;

  ApvAnalysis::PedestalType doIt(const ApvAnalysis::PedestalType&) override;

  void setCM(TkCommonMode* in) override { theTkCommonMode = in; }
  void setCM(const std::vector<float>& in) override { theTkCommonMode->setCommonMode(in); }
  TkCommonMode* commonMode() override { return theTkCommonMode; }

  void newEvent() override;
  float getCMSlope() override { return slope; }

protected:
  void calculateCommonMode(ApvAnalysis::PedestalType&);

  TkCommonMode* theTkCommonMode;
  std::vector<float> theCommonModeValues;
  bool alreadyUsedEvent;
  float slope;

  ///  TkNoiseCalculator*   theNoiseCalculator;
  ///  TkApvMask*           theApvMask;
  ///  float cutToAvoidSignal;
};
#endif