File indexing completed on 2023-03-17 10:44:09
0001 #ifndef Tracker_MedianCommonModeCalculator_h
0002 #define Tracker_MedianCommonModeCalculator_h
0003
0004 #include "CalibTracker/SiStripAPVAnalysis/interface/TkCommonModeCalculator.h"
0005 #include "CalibTracker/SiStripAPVAnalysis/interface/TkNoiseCalculator.h"
0006 #include "CalibTracker/SiStripAPVAnalysis/interface/TkApvMask.h"
0007
0008
0009
0010
0011 class MedianCommonModeCalculator : public TkCommonModeCalculator {
0012 public:
0013 MedianCommonModeCalculator();
0014
0015 ~MedianCommonModeCalculator() override;
0016
0017 ApvAnalysis::PedestalType doIt(const ApvAnalysis::PedestalType&) override;
0018
0019 void setCM(TkCommonMode* in) override { theTkCommonMode = in; }
0020 void setCM(const std::vector<float>& in) override { theTkCommonMode->setCommonMode(in); }
0021 TkCommonMode* commonMode() override { return theTkCommonMode; }
0022
0023 void newEvent() override;
0024 float getCMSlope() override { return slope; }
0025
0026 protected:
0027 void calculateCommonMode(ApvAnalysis::PedestalType&);
0028
0029 TkCommonMode* theTkCommonMode;
0030 std::vector<float> theCommonModeValues;
0031 bool alreadyUsedEvent;
0032 float slope;
0033
0034
0035
0036
0037 };
0038 #endif