1 #ifndef RecoLocalCalo_HcalRecAlgos_MahiFit_HH 2 #define RecoLocalCalo_HcalRecAlgos_MahiFit_HH 15 #include <Math/Functor.h> 104 void setParameters(
bool iDynamicPed,
double iTS4Thresh,
double chiSqSwitch,
106 bool iCalculateArrivalTime,
double iMeanTime,
double iTimeSigmaHPD,
double iTimeSigmaSiPM,
107 const std::vector <int> &iActiveBXs,
int iNMaxItersMin,
int iNMaxItersNNLS,
108 double iDeltaChiSqThresh,
double iNnlsThresh);
111 float& reconstructedEnergy,
112 float& reconstructedTime,
119 void doFit(std::array<float,3> &correctedOutput,
const int nbx)
const;
130 double minimize()
const;
131 void onePulseMinimize()
const;
132 void updateCov()
const;
138 double calculateChiSq()
const;
140 void resetWorkspace()
const;
142 void nnlsUnconstrainParameter(Index idxp)
const;
143 void nnlsConstrainParameter(Index minratioidx)
const;
166 float tsDelay1GeV_=0.f;
186 std::unique_ptr<FitterFuncs::PulseShapeFunctor>
psfPtr_;
SamplePulseMatrix invcovp
HcalTimeSlew::BiasSetting slewFlavor_
Eigen::LLT< SampleMatrix > SampleDecompLLT
MahiNnlsWorkspace nnlsWork_
SampleDecompLLT covDecomp
Eigen::LDLT< PulseMatrix > PulseDecompLDLT
SamplePulseMatrix pulseDerivMat
bool calculateArrivalTime_
std::unique_ptr< FitterFuncs::PulseShapeFunctor > psfPtr_
Eigen::Matrix< double, FullSampleVectorSize, 1 > FullSampleVector
SampleMatrix pedConstraint
std::vector< int > activeBXs_
const unsigned int fullTSofInterest_
Eigen::Matrix< double, SampleVectorSize, 1 > SampleVector
std::unique_ptr< ROOT::Math::Functor > pfunctor_
Eigen::Matrix< double, FullSampleVectorSize, FullSampleVectorSize > FullSampleMatrix
Eigen::Matrix< double, SampleVectorSize, SampleVectorSize > SampleMatrix
unsigned int fullTSOffset
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, PulseVectorSize, 1 > PulseVector
SamplePulseMatrix pulseMat
std::array< FullSampleMatrix, MaxPVSize > pulseCovArray
Eigen::Matrix< double, SampleVectorSize, Eigen::Dynamic, 0, SampleVectorSize, PulseVectorSize > SamplePulseMatrix
PulseDecompLDLT pulseDecomp
const unsigned int fullTSSize_
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, PulseVectorSize, PulseVectorSize > PulseMatrix