// 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 //#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