File indexing completed on 2024-04-06 12:25:41
0001 #ifndef RecoLocalCalo_EcalRecProducers_EigenMatrixTypes_gpu_h
0002 #define RecoLocalCalo_EcalRecProducers_EigenMatrixTypes_gpu_h
0003
0004 #include <array>
0005 #include <Eigen/Dense>
0006
0007 #include "DataFormats/EcalRecHit/interface/RecoTypes.h"
0008
0009 namespace ecal {
0010 namespace multifit {
0011
0012 constexpr int SampleVectorSize = 10;
0013 constexpr int FullSampleVectorSize = 19;
0014 constexpr int PulseVectorSize = 12;
0015 constexpr int NGains = 3;
0016
0017 using data_type = ::ecal::reco::ComputationScalarType;
0018
0019 typedef Eigen::Matrix<data_type, SampleVectorSize, SampleVectorSize> PulseMatrixType;
0020 typedef Eigen::Matrix<char, SampleVectorSize, 1> BXVectorType;
0021 using SampleMatrixD = Eigen::Matrix<double, SampleVectorSize, SampleVectorSize>;
0022
0023 typedef Eigen::Matrix<data_type, SampleVectorSize, 1> SampleVector;
0024 typedef Eigen::Matrix<data_type, FullSampleVectorSize, 1> FullSampleVector;
0025 typedef Eigen::Matrix<data_type, Eigen::Dynamic, 1, 0, PulseVectorSize, 1> PulseVector;
0026 typedef Eigen::Matrix<char, Eigen::Dynamic, 1, 0, PulseVectorSize, 1> BXVector;
0027 typedef Eigen::Matrix<char, SampleVectorSize, 1> SampleGainVector;
0028 typedef Eigen::Matrix<data_type, SampleVectorSize, SampleVectorSize> SampleMatrix;
0029 typedef Eigen::Matrix<data_type, FullSampleVectorSize, FullSampleVectorSize> FullSampleMatrix;
0030 typedef Eigen::Matrix<data_type, Eigen::Dynamic, Eigen::Dynamic, 0, PulseVectorSize, PulseVectorSize> PulseMatrix;
0031 typedef Eigen::Matrix<data_type, SampleVectorSize, Eigen::Dynamic, 0, SampleVectorSize, PulseVectorSize>
0032 SamplePulseMatrix;
0033 typedef Eigen::LLT<SampleMatrix> SampleDecompLLT;
0034 typedef Eigen::LLT<SampleMatrixD> SampleDecompLLTD;
0035 typedef Eigen::LLT<PulseMatrix> PulseDecompLLT;
0036 typedef Eigen::LDLT<PulseMatrix> PulseDecompLDLT;
0037
0038 typedef Eigen::Matrix<data_type, 1, 1> SingleMatrix;
0039 typedef Eigen::Matrix<data_type, 1, 1> SingleVector;
0040
0041 typedef std::array<SampleMatrixD, NGains> SampleMatrixGainArray;
0042
0043 using PermutationMatrix = Eigen::PermutationMatrix<SampleMatrix::RowsAtCompileTime>;
0044
0045 }
0046 }
0047
0048 #endif