1 #ifndef RecoLocalCalo_HcalRecAlgos_MahiFit_HH 2 #define RecoLocalCalo_HcalRecAlgos_MahiFit_HH 15 #include <Math/Functor.h> 52 std::array<double, MaxSVSize>
pulseN;
53 std::array<double, MaxSVSize>
pulseM;
54 std::array<double, MaxSVSize>
pulseP;
90 void setParameters(
bool iDynamicPed,
double iTS4Thresh,
double chiSqSwitch,
92 double iMeanTime,
double iTimeSigmaHPD,
double iTimeSigmaSiPM,
93 const std::vector <int> &iActiveBXs,
int iNMaxItersMin,
int iNMaxItersNNLS,
94 double iDeltaChiSqThresh,
double iNnlsThresh);
97 float& reconstructedEnergy,
98 float& reconstructedTime,
103 void doFit(std::array<float,3> &correctedOutput,
int nbx,
const HcalTimeSlew* hcalTimeSlew_delay)
const;
113 double minimize()
const;
114 void onePulseMinimize()
const;
115 void updateCov()
const;
120 double calculateArrivalTime()
const;
121 double calculateChiSq()
const;
123 void resetWorkspace()
const;
125 void nnlsUnconstrainParameter(Index idxp)
const;
126 void nnlsConstrainParameter(Index minratioidx)
const;
130 double getSiPMDarkCurrent(
double darkCurrent,
double fcByPE,
double lambda)
const;
165 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
SampleMatrix covDecompLinv
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