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
|
#ifndef Tracker_TT6CommonModeCalculator_h
#define Tracker_TT6CommonModeCalculator_h
#include "CalibTracker/SiStripAPVAnalysis/interface/TkCommonModeCalculator.h"
#include "CalibTracker/SiStripAPVAnalysis/interface/TkNoiseCalculator.h"
#include "CalibTracker/SiStripAPVAnalysis/interface/TkApvMask.h"
/**
* Concrete implementation of TkCommonModeCalculator for TT6.
*/
class TT6CommonModeCalculator : public TkCommonModeCalculator {
public:
TT6CommonModeCalculator(TkNoiseCalculator* noise_calc, TkApvMask* mask_calc, float sig_cut);
~TT6CommonModeCalculator() 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&);
void calculateCMSlope(ApvAnalysis::PedestalType&);
TkCommonMode* theTkCommonMode;
std::vector<float> theCommonModeValues;
TkNoiseCalculator* theNoiseCalculator;
TkApvMask* theApvMask;
bool alreadyUsedEvent;
float slope;
float cutToAvoidSignal;
};
#endif
|