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
|