mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 19:30:03 +02:00

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorCalibration@14 113b152e-814d-439b-b186-022a431db7b5
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
#ifndef MOENCHCOMMONMODE_H
|
|
#define MOENCHCOMMONMODE_H
|
|
|
|
#include "commonModeSubtraction.h"
|
|
|
|
class moenchCommonMode : public commonModeSubtraction {
|
|
/** @short class to calculate the common mode noise for moench02 i.e. on 4 supercolumns separately */
|
|
public:
|
|
/** constructor - initalizes a commonModeSubtraction with 4 different regions of interest
|
|
\param nn number of samples for the moving average
|
|
*/
|
|
moenchCommonMode(int nn=1000) : commonModeSubtraction(nn,4){} ;
|
|
|
|
|
|
/** add value to common mode as a function of the pixel value, subdividing the region of interest in the 4 supercolumns of 40 columns each;
|
|
\param val value to add to the common mode
|
|
\param ix pixel coordinate in the x direction
|
|
\param iy pixel coordinate in the y direction
|
|
*/
|
|
virtual void addToCommonMode(double val, int ix=0, int iy=0) {
|
|
(void) iy;
|
|
int isc=ix/40;
|
|
if (isc>=0 && isc<nROI) {
|
|
cmPed[isc]+=val;
|
|
nCm[isc]++;
|
|
}
|
|
};
|
|
/**returns common mode value as a function of the pixel value, subdividing the region of interest in the 4 supercolumns of 40 columns each;
|
|
\param ix pixel coordinate in the x direction
|
|
\param iy pixel coordinate in the y direction
|
|
\returns common mode value
|
|
*/
|
|
virtual double getCommonMode(int ix=0, int iy=0) {
|
|
(void) iy;
|
|
int isc=ix/40;
|
|
if (isc>=0 && isc<nROI) {
|
|
if (nCm[isc]>0) return cmPed[isc]/nCm[isc]-cmStat[isc].Mean();
|
|
}
|
|
return 0;
|
|
};
|
|
|
|
};
|
|
|
|
|
|
#endif
|