ATLAS Offline Software
Loading...
Searching...
No Matches
LArCaliWaves2Ntuple.cxx File Reference
Include dependency graph for LArCaliWaves2Ntuple.cxx:

Go to the source code of this file.

Functions

StatusCode LArCaliWaves2Ntuple::stop ATLAS_NOT_THREAD_SAFE ()
 Install fatal handler with default options.

Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

StatusCode LArCaliWaves2Ntuple::stop ATLAS_NOT_THREAD_SAFE ( void )
inline

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.

getLorentzAngle() Read LorentzAngle from HIST and write out into local DB

getBSErrors() Read BSErrors from Monitoring HIST and write out into local DB

getEfficiency() Read Efficiency from Monitoring HIST and write out into local DB

getRawOccupancy() Read RawOccupancy from Monitoring HIST and write out into local DB

getNoiseOccupancy() Read NoiseOccupancy from HIST and write out into local DB

getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats

beginning of the loop of channels

bad bit newly found

known bad bit

for low noisy cells

for high noisy cells

0.01 is used to scale "PER" to the same order of magnitude to "SIG"

smaller deviation: distorted

checking TmaxAmp, Not mixed with MaxAmp and Width

channel information output

Only dead or distorted, or short known BCs are considered below.

index of bc

Definition at line 48 of file LArCaliWaves2Ntuple.cxx.

49{
50
51 // Check DACSatur jobOption consistency, in case setup default values
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) {
84 ATH_MSG_ERROR( "addItem 'DAC' failed" );
85 return StatusCode::FAILURE;
86 }
87
88 sc=m_nt->addItem("gain",m_gain,0,3);
89 if (sc!=StatusCode::SUCCESS) {
90 ATH_MSG_ERROR( "addItem 'gain' failed" );
91 return StatusCode::FAILURE;
92 }
93
94 if (m_addCalib) {
95 sc=m_nt->addItem("isPulsed",m_isPulsed);
96 if (sc!=StatusCode::SUCCESS) {
97 ATH_MSG_ERROR( "addItem 'isPulsed' failed" );
98 return StatusCode::FAILURE;
99 }
100 sc=m_nt->addItem("nPulsedCalibLines",m_nPulsedCalibLines,0,4);
101 if (sc!=StatusCode::SUCCESS) {
102 ATH_MSG_ERROR( "addItem 'nPulsedCalibLines' failed" );
103 return StatusCode::FAILURE;
104 }
105
106 sc=m_nt->addItem("pulsedCalibLines",4,m_pulsedCalibLines);
107 if (sc!=StatusCode::SUCCESS) {
108 ATH_MSG_ERROR( "addItem 'pulsedCalibLines' failed" );
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) {
116 ATH_MSG_ERROR( "addItem 'Jitter' failed" );
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) {
124 ATH_MSG_ERROR( "addItem 'corrUndo' failed" );
125 return StatusCode::FAILURE;
126 }
127 }
128
129
130 const LArCalibLineMapping *clCont=nullptr;
131 if(m_isSC) {
132 ATH_MSG_DEBUG( "LArCaliWaves2Ntuple: using SC calib map" );
133 SG::ReadCondHandle<LArCalibLineMapping> clHdl{m_calibMapSCKey};
134 clCont=*clHdl;
135 } else {
136 SG::ReadCondHandle<LArCalibLineMapping> clHdl{m_calibMapKey};
137 clCont=*clHdl;
138 }
139
140 if(!clCont) {
141 ATH_MSG_WARNING( "Do not have calib line mapping !!!" );
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] );
150 const LArCaliWaveContainer* caliWaveContainer = nullptr;
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 );
157 LArCaliWaveContainer* caliWaveContainer_nc=nullptr;
158 if (m_applyCorr) {
159 if (!caliWaveContainer->correctionsApplied()) {
160 caliWaveContainer_nc=const_cast<LArCaliWaveContainer*>(caliWaveContainer);
161 sc=caliWaveContainer_nc->applyCorrections();
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 {
169 ATH_MSG_WARNING( "Corrections already applied. Can't apply twice!" );
170 }
171 }// end if applyCorr
172
173
174 for (int igain=CaloGain::LARHIGHGAIN;igain<m_NGains.value() ;++igain){
175 for (const HWIdentifier chid: m_onlineId->channel_range()) {
176 m_gain=(long)igain;
177 const LArCaliWaveVec& cwv = caliWaveContainer->get(chid,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) {
183 const LArCaliWave& wave=*cwv_it;
184 if (wave.isEmpty()) continue;
185 if (m_addCorrUndo) m_corrUndo=0;
186 bool skip=writeEntry(chid,igain,wave,clCont);
187 if (skip) continue;
188 sc=ntupleSvc()->writeRecord(m_nt);
189 if (sc!=StatusCode::SUCCESS) {
190 ATH_MSG_ERROR( "writeRecord failed" );
191 return sc;
192 }
193 }//End loop over DAC
194 }//end loop over identifiers
195 }//end loop over gains
196
197
198 if (m_addCorrUndo) {
199 for (int igain=CaloGain::LARHIGHGAIN;igain<m_NGains.value();++igain) {
200 LArCaliWaveContainer::ConstCorrectionIt itUndo=caliWaveContainer->undoCorrBegin(igain);
201 LArCaliWaveContainer::ConstCorrectionIt itUndo_e=caliWaveContainer->undoCorrEnd(igain);
202 for(;itUndo!=itUndo_e;itUndo++) {
203 const HWIdentifier chid(itUndo->first);
204 const LArCaliWaveVec& cwv = itUndo->second;
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) {
208 const LArCaliWave& wave=*cwv_it;
209 m_gain = (long)igain;
210 m_corrUndo = 1;
211 bool skip=writeEntry(chid,igain,wave,clCont);
212 if (skip) continue;
213 sc=ntupleSvc()->writeRecord(m_nt);
214 if (sc!=StatusCode::SUCCESS) {
215 ATH_MSG_ERROR( "writeRecord failed" );
216 return sc;
217 }
218 }//end loop over DAC
219 }//end loop over corrections
220 }//end loop over gain
221 }//end if addUndoCorr
222 if (caliWaveContainer_nc) {
223 ATH_CHECK(caliWaveContainer_nc->undoCorrections());
224 ATH_MSG_INFO("Reverted corrections of CaliWave container");
225 }
226 }
227 ATH_MSG_INFO( "LArWave2Ntuple has finished." );
228 return StatusCode::SUCCESS;
229} // end finalize-method.
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static Double_t sc
INTupleSvc * ntupleSvc()
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
bool isEmpty() const
is LArWave uninitialized?
Definition LArWave.h:183
@ LARHIGHGAIN
Definition CaloGain.h:18
::StatusCode StatusCode
StatusCode definition for legacy code.