Install fatal handler with default options.
This is meant to be easy to call from python via ctypes.
Install fatal handler with default options.
getRawOccupancy() Read RawOccupancy from Monitoring HIST and write out into local DB
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Only dead or distorted, or short known BCs are considered below.
49{
50
51
52 if ( m_dacSaturSkip && m_dacSaturLayer0.size()<3 ) {
53 ATH_MSG_WARNING(
"DACSaturPS jobOption has wrong size. Will use default." ) ;
54 m_dacSaturLayer0.resize(3);
55 m_dacSaturLayer0[0] = 15000 ;
56 m_dacSaturLayer0[1] = 50000 ;
57 m_dacSaturLayer0[2] = 65000 ;
58 }
59 if ( m_dacSaturSkip && m_dacSaturLayer1.size()<3 ) {
60 ATH_MSG_WARNING(
"DACSaturStrips jobOption has wrong size. Will use default." ) ;
61 m_dacSaturLayer1.resize(3);
62 m_dacSaturLayer1[0] = 800 ;
63 m_dacSaturLayer1[1] = 8000 ;
64 m_dacSaturLayer1[2] = 65000 ;
65 }
66 if ( m_dacSaturSkip && m_dacSaturLayer2.size()<3 ) {
67 ATH_MSG_WARNING(
"DACSaturMiddle jobOption has wrong size. Will use default." ) ;
68 m_dacSaturLayer2.resize(3);
69 m_dacSaturLayer2[0] = 1000 ;
70 m_dacSaturLayer2[1] = 10000 ;
71 m_dacSaturLayer2[2] = 65000 ;
72 }
73 if ( m_dacSaturSkip && m_dacSaturLayer3.size()<3 ) {
74 ATH_MSG_WARNING(
"DACSaturBack jobOption has wrong size. Will use default." ) ;
75 m_dacSaturLayer3.resize(3);
76 m_dacSaturLayer3[0] = 800 ;
77 m_dacSaturLayer3[1] = 8000 ;
78 m_dacSaturLayer3[2] = 65000 ;
79 }
80
82 sc=m_nt->addItem(
"DAC",m_dac,0,600000);
83 if (
sc!=StatusCode::SUCCESS) {
85 return StatusCode::FAILURE;
86 }
87
88 sc=m_nt->addItem(
"gain",m_gain,0,3);
89 if (
sc!=StatusCode::SUCCESS) {
91 return StatusCode::FAILURE;
92 }
93
94 if (m_addCalib) {
95 sc=m_nt->addItem(
"nPulsedCalibLines",m_nPulsedCalibLines,0,4);
96 if (
sc!=StatusCode::SUCCESS) {
98 return StatusCode::FAILURE;
99 }
100
101 sc=m_nt->addItem(
"pulsedCalibLines",4,m_pulsedCalibLines);
102 if (
sc!=StatusCode::SUCCESS) {
104 return StatusCode::FAILURE;
105 }
106 }
107
108 if (m_saveJitter) {
109 sc=m_nt->addItem(
"Jitter",m_jitter,0.,1.);
110 if (
sc!=StatusCode::SUCCESS) {
112 return StatusCode::FAILURE;
113 }
114 }
115
116 if (m_addCorrUndo) {
117 sc=m_nt->addItem(
"corrUndo",m_corrUndo,0,1);
118 if (
sc!=StatusCode::SUCCESS) {
120 return StatusCode::FAILURE;
121 }
122 }
123
124
126 if(m_isSC) {
129 clCont=*clHdl;
130 } else {
132 clCont=*clHdl;
133 }
134
135 if(!clCont) {
137 return StatusCode::FAILURE;
138 }
139
140 for (
unsigned k=0 ;
k<m_keylist.size() ;
k++ ) {
141 const std::string&
key = m_keylist[
k] ;
142
143
144 ATH_MSG_INFO(
"Processing WaveContainer from StoreGate! key=" << m_keylist[k] );
146 StatusCode
sc = m_detStore->retrieve(caliWaveContainer,key);
147 if (
sc.isFailure()) {
148 ATH_MSG_ERROR(
"Cannot read LArCaliWaveContainer from StoreGate! key=" << key );
149 return StatusCode::FAILURE;
150 } else
151 ATH_MSG_INFO(
"Read LArCaliWaveContainer from StoreGate! key= " << key );
153 if (m_applyCorr) {
157 if (
sc.isFailure()) {
158 ATH_MSG_ERROR(
"Failed to apply corrections to LArCaliWaveContainer!" );
159 }
160 else
161 ATH_MSG_INFO(
"Applied corrections to LArCaliWaveContainer" );
162 }
163 else {
165 }
166 }
167
168
170 for (
const HWIdentifier chid: m_onlineId->channel_range()) {
171 m_gain=(long)igain;
173 if (cwv.empty()) continue;
174
175 LArCaliWaveVec::const_iterator cwv_it=cwv.begin();
176 LArCaliWaveVec::const_iterator cwv_it_e=cwv.end();
177 for (;cwv_it!=cwv_it_e;++cwv_it) {
180 if (m_addCorrUndo) m_corrUndo=0;
181 bool skip=writeEntry(chid,igain,wave,clCont);
184 if (
sc!=StatusCode::SUCCESS) {
187 }
188 }
189 }
190 }
191
192
193 if (m_addCorrUndo) {
197 for(;itUndo!=itUndo_e;itUndo++) {
200 LArCaliWaveVec::const_iterator cwv_it=cwv.begin();
201 LArCaliWaveVec::const_iterator cwv_it_e=cwv.end();
202 for (;cwv_it!=cwv_it_e;++cwv_it) {
204 m_gain = (long)igain;
205 m_corrUndo = 1;
206 bool skip=writeEntry(chid,igain,wave,clCont);
209 if (
sc!=StatusCode::SUCCESS) {
212 }
213 }
214 }
215 }
216 }
217 if (caliWaveContainer_nc) {
219 ATH_MSG_INFO(
"Reverted corrections of CaliWave container");
220 }
221 }
223 return StatusCode::SUCCESS;
224}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Liquid Argon Cumulative Wave Container.
bool correctionsApplied() const
Have corrections been applied?
StatusCode applyCorrections()
apply correction set
StatusCode undoCorrections()
undo corrections that have been already applied
ConstCorrectionIt undoCorrBegin(unsigned int gain) const
get iterator over the Undo-Vector for a certain gain
ConstCorrectionIt undoCorrEnd(unsigned int gain) const
ConstReference get(const HWIdentifier id, unsigned int gain=0) const
get data with online identifier
Subset::ConstCorrectionVecIt ConstCorrectionIt
bool isEmpty() const
is LArWave uninitialized?