1 #ifndef RecoLocalCalo_HcalRecAlgos_MahiFit_HH 2 #define RecoLocalCalo_HcalRecAlgos_MahiFit_HH 15 #include <Math/Functor.h> 53 std::array<double, MaxSVSize>
pulseN;
54 std::array<double, MaxSVSize>
pulseM;
55 std::array<double, MaxSVSize>
pulseP;
124 void setParameters(
bool iDynamicPed,
double iTS4Thresh,
double chiSqSwitch,
126 double iMeanTime,
double iTimeSigmaHPD,
double iTimeSigmaSiPM,
127 const std::vector <int> &iActiveBXs,
int iNMaxItersMin,
int iNMaxItersNNLS,
128 double iDeltaChiSqThresh,
double iNnlsThresh);
131 float& reconstructedEnergy,
132 float& reconstructedTime,
139 void doFit(std::array<float,3> &correctedOutput,
const int nbx)
const;
150 double minimize()
const;
151 void onePulseMinimize()
const;
152 void updateCov()
const;
157 double calculateArrivalTime()
const;
158 double calculateChiSq()
const;
160 void resetWorkspace()
const;
162 void nnlsUnconstrainParameter(Index idxp)
const;
163 void nnlsConstrainParameter(Index minratioidx)
const;
186 double tsDelay1GeV_=0;
205 std::unique_ptr<FitterFuncs::PulseShapeFunctor>
psfPtr_;
SamplePulseMatrix invcovp
HcalTimeSlew::BiasSetting slewFlavor_
Eigen::LLT< SampleMatrix > SampleDecompLLT
MahiNnlsWorkspace nnlsWork_
SampleDecompLLT covDecomp
PulseVector ampvecpermtest
Eigen::LDLT< PulseMatrix > PulseDecompLDLT
std::array< FullSampleVector, MaxPVSize > pulseShapeArray
std::array< double, MaxSVSize > pulseM
SamplePulseMatrix pulseDerivMat
std::array< double, MaxSVSize > pulseN
std::unique_ptr< FitterFuncs::PulseShapeFunctor > psfPtr_
Eigen::Matrix< double, FullSampleVectorSize, 1 > FullSampleVector
SampleMatrix pedConstraint
std::vector< int > activeBXs_
std::array< FullSampleVector, MaxPVSize > pulseDerivArray
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
std::array< double, MaxSVSize > pulseP
const unsigned int fullTSSize_
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, PulseVectorSize, PulseVectorSize > PulseMatrix