16 ATH_CHECK( detStore()->retrieve(ll,
"LArOnline_SuperCellID") );
22 ATH_CHECK( detStore()->retrieve(ll,
"LArOnlineID") );
29 ATH_MSG_INFO(
"Will always return HIGH gain autocorrelation matrix for EM calo, MEDIUM for HEC and FCAL" );
32 return StatusCode::SUCCESS;
54 Eigen::MatrixXd AutoCorrMatrix=Eigen::MatrixXd::Zero(nSamples,nSamples);
64 if ( dbcorr.size()== 0 ) {
68 else if (dbcorr.size() < nSamples-1 ) {
69 ATH_MSG_WARNING(
"Not enough samples in AutoCorr vector for channel " <<
m_onlineID->channel_name(CellID) <<
" in Gain = " << gain);
70 nSamples=1+dbcorr.size();
74 for (
unsigned i=0;i<nSamples;i++) {
75 AutoCorrMatrix(i,i)= 1 ;
76 for (
unsigned j=i+1;j<nSamples;j++) {
77 AutoCorrMatrix(i,j) = AutoCorrMatrix(j,i) = dbcorr[j-i-1];
86 <<
" in Gain = " << gain
87 <<
":\n" << AutoCorrMatrix);
89 return AutoCorrMatrix;
103 Eigen::MatrixXd AutoCorrMatrix=Eigen::MatrixXd::Identity(nSamples,nSamples);
112 if ( corrdb.size()== 0 ) {
116 else if ( corrdb.size() < nSamples*(nSamples+1)/2 ) {
118 <<
"in Gain = " << gain <<
" for AC Physics mode");
123 const unsigned int nsamples_AC = (-1+((int)(sqrt(1+8*corrdb.size()))))/2;
125 for (
unsigned i=0;i<nSamples;i++) {
126 for (
unsigned j=i;j<nSamples;j++,k++) {
128 AutoCorrMatrix(i,j) = AutoCorrMatrix(j,i)= corrdb[k];
131 k+=nsamples_AC-nSamples;
139 <<
" in Gain = " << gain
140 <<
":\n" << AutoCorrMatrix);
141 return AutoCorrMatrix;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Helpers for checking error return status codes and reporting errors.
This class defines the interface for accessing AutoCorrelation parameters for each channel @stereotyp...
LArVectorProxy AutoCorrRef_t
virtual AutoCorrRef_t autoCorr(const HWIdentifier &CellID, int gain) const =0
Helper for the Liquid Argon Calorimeter cell identifiers.