31 NTuple::Array<float> cov;
32 NTuple::Item<long> gain, cellIndex;
33 NTuple::Item<long> corrUndo;
34 sc=
m_nt->addItem(
"gain",gain,0,3);
35 if (
sc!=StatusCode::SUCCESS) {
37 return StatusCode::FAILURE;
40 sc=
m_nt->addItem(
"cellIndex",cellIndex,0,200000);
41 if (
sc!=StatusCode::SUCCESS) {
43 return StatusCode::FAILURE;
47 if (
sc!=StatusCode::SUCCESS) {
49 return StatusCode::FAILURE;
52 sc=
m_nt->addItem(
"corrUndo",corrUndo,0,2);
53 if (
sc!=StatusCode::SUCCESS) {
55 return StatusCode::FAILURE;
68 larAutoCorr = larComplete;
76 if(larAutoCorr==
nullptr){
77 ATH_MSG_ERROR(
"Unable to retrieve ILArAutoCorr with key " <<
m_objKey.key() <<
" neither from DetectorStore neither from conditions" );
78 return StatusCode::FAILURE;
81 if (not larAutoCorr_c) {
82 ATH_MSG_ERROR(
"Dynamic cast failed in LArAutoCorr2Ntuple::stop");
83 return StatusCode::FAILURE;
86 if (not larAutoCorr_c->correctionsApplied()) {
89 sc=larAutoCorr_nc->applyCorrections();
91 ATH_MSG_ERROR(
"Failed to apply corrections to LArCaliWaveContainer!" );
93 ATH_MSG_INFO(
"Applied corrections to LArCaliWaveContainer" );
100 unsigned cellCounter=0;
101 unsigned cellZeroCounter=0;
108 cellIndex = cellCounter;
109 for(
unsigned i=0;i<
m_nsamples-1 && i<corr.size();i++){
114 if (
sc!=StatusCode::SUCCESS) {
116 return StatusCode::FAILURE;
119 }
else { ++cellZeroCounter;}
127 for(;itUndo!=itUndo_e;++itUndo) {
135 if (
sc!=StatusCode::SUCCESS) {
137 return StatusCode::FAILURE;
144 ATH_MSG_INFO(
"LArAutoCorr2Ntuple has finished, " << cellCounter <<
"records written, " << cellZeroCounter <<
" zero length vectors" );
145 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
#define ATLAS_THREAD_SAFE
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const ServiceHandle< StoreGateSvc > & detStore() const
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
BooleanProperty m_applyCorr
BooleanProperty m_addCorrUndo
LArAutoCorr2Ntuple(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode stop()
virtual StatusCode initialize()
SG::ReadCondHandleKey< ILArAutoCorr > m_objKey
This class implements the ILArAutoCorr interface.
c-struct reproducing the structure of the persistent data
std::vector< float > m_vAutoCorr
const LArOnlineID_Base * m_onlineId
bool fillFromIdentifier(const HWIdentifier &id)
LArCond2NtupleBase(const std::string &name, ISvcLocator *pSvcLocator)
Subset::ConstCorrectionVecIt ConstCorrectionIt