mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 23:10:02 +02:00
64 lines
1.9 KiB
C++
64 lines
1.9 KiB
C++
// SPDX-License-Identifier: LGPL-3.0-or-other
|
|
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
|
#ifndef INTERPOLATION_ETAVEL_H
|
|
#define INTERPOLATION_ETAVEL_H
|
|
|
|
#include "EtaVEL.h"
|
|
#include <slsInterpolation.h>
|
|
//#include "TH2F.h"
|
|
//#include "EtaVEL.cpp"
|
|
// class EtaVEL;
|
|
|
|
class etaVELInterpolation : public etaInterpolationBase {
|
|
|
|
public:
|
|
interpolation_EtaVEL(int nx = 40, int ny = 160, int ns = 25,
|
|
double etamin = -0.02, double etamax = 1.02,
|
|
int p = 0);
|
|
~interpolation_EtaVEL();
|
|
|
|
// create eta distribution, eta rebinnining etc.
|
|
// returns flat field image
|
|
void prepareInterpolation(int &ok) { prepareInterpolation(ok, 10000); };
|
|
void prepareInterpolation(int &ok, int maxit);
|
|
|
|
// create interpolated image
|
|
// returns interpolated image
|
|
|
|
// return position inside the pixel for the given photon
|
|
void getInterpolatedPosition(Int_t x, Int_t y, Double_t *data,
|
|
Double_t &int_x, Double_t &int_y);
|
|
void getInterpolatedBin(Double_t *cluster, Int_t &int_x, Int_t &int_y);
|
|
|
|
int addToFlatField(Double_t *cluster, Double_t &etax, Double_t &etay);
|
|
int addToFlatField(Double_t etax, Double_t etay);
|
|
int setPlot(int p = -1) {
|
|
if (p >= 0)
|
|
plot = p;
|
|
return plot;
|
|
};
|
|
// int WriteH(){newEta->Write("newEta"); heta->Write("heta");};
|
|
EtaVEL *setEta(EtaVEL *ev) {
|
|
if (ev) {
|
|
delete newEta;
|
|
newEta = ev;
|
|
}
|
|
return newEta;
|
|
};
|
|
|
|
// TH2F *setEta(TH2F *ev){if (ev) {delete heta; heta=ev;} return heta;};
|
|
void iterate();
|
|
// void DrawH();
|
|
double getChiSq() { return newEta->getChiSq(); };
|
|
|
|
protected:
|
|
EtaVEL *newEta;
|
|
// TH2F *heta;
|
|
int plot;
|
|
|
|
// ClassDefNV(interpolation_EtaVEL,1);
|
|
// #pragma link C++ class interpolation_EtaVEL-;
|
|
};
|
|
|
|
#endif
|