Install fatal handler with default options.
This is meant to be easy to call from python via ctypes.
Install fatal handler with default options.
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(
"isPulsed",m_isPulsed);
96 if (
sc!=StatusCode::SUCCESS) {
98 return StatusCode::FAILURE;
99 }
100 sc=m_nt->addItem(
"nPulsedCalibLines",m_nPulsedCalibLines,0,4);
101 if (
sc!=StatusCode::SUCCESS) {
103 return StatusCode::FAILURE;
104 }
105
106 sc=m_nt->addItem(
"pulsedCalibLines",4,m_pulsedCalibLines);
107 if (
sc!=StatusCode::SUCCESS) {
109 return StatusCode::FAILURE;
110 }
111 }
112
113 if (m_saveJitter) {
114 sc=m_nt->addItem(
"Jitter",m_jitter,0.,1.);
115 if (
sc!=StatusCode::SUCCESS) {
117 return StatusCode::FAILURE;
118 }
119 }
120
121 if (m_addCorrUndo) {
122 sc=m_nt->addItem(
"corrUndo",m_corrUndo,0,1);
123 if (
sc!=StatusCode::SUCCESS) {
125 return StatusCode::FAILURE;
126 }
127 }
128
129
131 if(m_isSC) {
134 clCont=*clHdl;
135 } else {
137 clCont=*clHdl;
138 }
139
140 if(!clCont) {
142 return StatusCode::FAILURE;
143 }
144
145 for (
unsigned k=0 ;
k<m_keylist.size() ;
k++ ) {
146 const std::string&
key = m_keylist[
k] ;
147
148
149 ATH_MSG_INFO(
"Processing WaveContainer from StoreGate! key=" << m_keylist[k] );
151 StatusCode sc = m_detStore->retrieve(caliWaveContainer,key);
152 if (
sc.isFailure()) {
153 ATH_MSG_ERROR(
"Cannot read LArCaliWaveContainer from StoreGate! key=" << key );
154 return StatusCode::FAILURE;
155 } else
156 ATH_MSG_INFO(
"Read LArCaliWaveContainer from StoreGate! key= " << key );
158 if (m_applyCorr) {
162 if (
sc.isFailure()) {
163 ATH_MSG_ERROR(
"Failed to apply corrections to LArCaliWaveContainer!" );
164 }
165 else
166 ATH_MSG_INFO(
"Applied corrections to LArCaliWaveContainer" );
167 }
168 else {
170 }
171 }
172
173
175 for (
const HWIdentifier chid: m_onlineId->channel_range()) {
176 m_gain=(long)igain;
178 if (cwv.empty()) continue;
179
180 LArCaliWaveVec::const_iterator cwv_it=cwv.begin();
181 LArCaliWaveVec::const_iterator cwv_it_e=cwv.end();
182 for (;cwv_it!=cwv_it_e;++cwv_it) {
185 if (m_addCorrUndo) m_corrUndo=0;
186 bool skip=writeEntry(chid,igain,wave,clCont);
189 if (
sc!=StatusCode::SUCCESS) {
192 }
193 }
194 }
195 }
196
197
198 if (m_addCorrUndo) {
202 for(;itUndo!=itUndo_e;itUndo++) {
205 LArCaliWaveVec::const_iterator cwv_it=cwv.begin();
206 LArCaliWaveVec::const_iterator cwv_it_e=cwv.end();
207 for (;cwv_it!=cwv_it_e;++cwv_it) {
209 m_gain = (long)igain;
210 m_corrUndo = 1;
211 bool skip=writeEntry(chid,igain,wave,clCont);
214 if (
sc!=StatusCode::SUCCESS) {
217 }
218 }
219 }
220 }
221 }
222 if (caliWaveContainer_nc) {
224 ATH_MSG_INFO(
"Reverted corrections of CaliWave container");
225 }
226 }
228 return StatusCode::SUCCESS;
229}
#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?
::StatusCode StatusCode
StatusCode definition for legacy code.