![]() |
![]() |
#include <CommonTools/SiStripZeroSuppression/interface/SiStripFedZeroSuppression.h>
Definition at line 17 of file SiStripFedZeroSuppression.h.
SiStripFedZeroSuppression::SiStripFedZeroSuppression | ( | uint16_t | fedalgo | ) | [inline] |
Definition at line 20 of file SiStripFedZeroSuppression.h.
00020 : 00021 theFEDalgorithm(fedalgo){}; ~SiStripFedZeroSuppression(){};
SiStripFedZeroSuppression::~SiStripFedZeroSuppression | ( | ) | [inline] |
void SiStripFedZeroSuppression::fillThresholds_ | ( | const uint32_t | detID, | |
size_t | size | |||
) | [private] |
Definition at line 211 of file SiStripFedZeroSuppression.cc.
References e, highThr_, highThrSN_, lowThr_, lowThrSN_, noiseHandle, noises_, strip(), and thresholdHandle.
Referenced by suppress().
00211 { 00212 SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detID); 00213 SiStripThreshold::Range detThRange = thresholdHandle->getRange(detID); 00214 00215 if (highThr_.size() != size) { 00216 highThr_.resize(size); 00217 lowThr_.resize(size); 00218 noises_.resize(size); 00219 highThrSN_.resize(size); 00220 lowThrSN_.resize(size); 00221 } 00222 00223 noiseHandle->allNoises(noises_, detNoiseRange); 00224 thresholdHandle->allThresholds(lowThrSN_, highThrSN_, detThRange); // thresholds as S/N 00225 for (size_t strip = 0; strip < size; ++strip) { 00226 float noise = noises_[strip]; 00227 // uncomment line below to check bluk noise decoding 00228 //assert( noise == noiseHandle->getNoise(strip,detNoiseRange) ); 00229 highThr_[strip] = static_cast<int16_t>(highThrSN_[strip]*noise+0.5+1e-6); 00230 lowThr_[strip] = static_cast<int16_t>( lowThrSN_[strip]*noise+0.5+1e-6); 00231 // Note: it's a bit wierd, but there are some cases for which 'highThrSN_[strip]*noise' is an exact integer 00232 // but due to roundoffs it gets rounded to the integer below if. 00233 // Apparently the optimized code inlines differently and this changes the roundoff. 00234 // The +1e-6 fixes the problem. [GPetruc] 00235 } 00236 }
void SiStripFedZeroSuppression::init | ( | const edm::EventSetup & | es | ) |
Definition at line 12 of file SiStripFedZeroSuppression.cc.
References edm::EventSetup::get(), noiseHandle, and thresholdHandle.
Referenced by SiStripZeroSuppressionAlgorithm::run().
00012 { 00013 // Get ESObject 00014 es.get<SiStripNoisesRcd>().get(noiseHandle); 00015 es.get<SiStripThresholdRcd>().get(thresholdHandle); 00016 }
bool SiStripFedZeroSuppression::IsAValidDigi | ( | ) |
Definition at line 341 of file SiStripFedZeroSuppression.cc.
References adc, adcMaxNeigh, adcNext, adcNext2, adcPrev, adcPrev2, lat::endl(), edm::isDebugEnabled(), LogTrace, theFEDalgorithm, theFEDhighThresh, theFEDlowThresh, theNeighFEDhighThresh, theNeighFEDlowThresh, theNext2FEDlowThresh, theNextFEDhighThresh, theNextFEDlowThresh, thePrev2FEDlowThresh, thePrevFEDhighThresh, and thePrevFEDlowThresh.
Referenced by suppress().
00342 { 00343 00344 #ifdef DEBUG_SiStripZeroSuppression_ 00345 00346 00347 if (edm::isDebugEnabled()){ 00348 00349 LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] " 00350 << "\n\t adc " << adc 00351 << "\n\t adcPrev " << adcPrev 00352 << "\n\t adcNext " << adcNext 00353 << "\n\t adcMaxNeigh " << adcMaxNeigh 00354 << "\n\t adcPrev2 " << adcPrev2 00355 << "\n\t adcNext2 " << adcNext2 00356 <<std::endl; 00357 00358 LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] " 00359 << "\n\t theFEDlowThresh " << theFEDlowThresh 00360 << "\n\t theFEDhighThresh " << theFEDhighThresh 00361 << "\n\t thePrevFEDlowThresh " << thePrevFEDlowThresh 00362 << "\n\t thePrevFEDhighThresh " << thePrevFEDhighThresh 00363 << "\n\t theNextFEDlowThresh " << theNextFEDlowThresh 00364 << "\n\t theNextFEDhighThresh " << theNextFEDhighThresh 00365 << "\n\t theNeighFEDlowThresh " << theNeighFEDlowThresh 00366 << "\n\t theNeighFEDhighThresh " << theNeighFEDhighThresh 00367 << "\n\t thePrev2FEDlowThresh " << thePrev2FEDlowThresh 00368 << "\n\t theNext2FEDlowThresh " << theNext2FEDlowThresh 00369 <<std::endl; 00370 } 00371 #endif 00372 // Decide if this strip should be accepted. 00373 bool accept = false; 00374 switch (theFEDalgorithm) { 00375 case 1: 00376 accept = (adc >= theFEDlowThresh); 00377 break; 00378 case 2: 00379 accept = (adc >= theFEDhighThresh || (adc >= theFEDlowThresh && 00380 adcMaxNeigh >= theNeighFEDlowThresh)); 00381 break; 00382 case 3: 00383 accept = (adc >= theFEDhighThresh || (adc >= theFEDlowThresh && 00384 adcMaxNeigh >= theNeighFEDhighThresh)); 00385 break; 00386 case 4: 00387 accept = ( 00388 (adc >= theFEDhighThresh) //Test for adc>highThresh (same as algorithm 2) 00389 || 00390 ( 00391 (adc >= theFEDlowThresh) //Test for adc>lowThresh, with neighbour adc>lowThresh (same as algorithm 2) 00392 && 00393 (adcMaxNeigh >= theNeighFEDlowThresh) 00394 ) 00395 || 00396 ( 00397 (adc < theFEDlowThresh) //Test for adc<lowThresh 00398 && 00399 ( 00400 ( 00401 (adcPrev >= thePrevFEDhighThresh) //with both neighbours>highThresh 00402 && 00403 (adcNext >= theNextFEDhighThresh) 00404 ) 00405 || 00406 ( 00407 (adcPrev >= thePrevFEDhighThresh) //OR with previous neighbour>highThresh and 00408 && 00409 (adcNext >= theNextFEDlowThresh) //both the next neighbours>lowThresh 00410 && 00411 (adcNext2 >= theNext2FEDlowThresh) 00412 ) 00413 || 00414 ( 00415 (adcNext >= theNextFEDhighThresh) //OR with next neighbour>highThresh and 00416 && 00417 (adcPrev >= thePrevFEDlowThresh) //both the previous neighbours>lowThresh 00418 && 00419 (adcPrev2 >= thePrev2FEDlowThresh) 00420 ) 00421 || 00422 ( 00423 (adcNext >= theNextFEDlowThresh) //OR with both next neighbours>lowThresh and 00424 && 00425 (adcNext2 >= theNext2FEDlowThresh) //both the previous neighbours>lowThresh 00426 && 00427 (adcPrev >= thePrevFEDlowThresh) 00428 && 00429 (adcPrev2 >= thePrev2FEDlowThresh) 00430 ) 00431 ) 00432 ) 00433 ); 00434 break; 00435 } 00436 return accept; 00437 }
void SiStripFedZeroSuppression::suppress | ( | const std::vector< int16_t > & | in, | |
edm::DetSet< SiStripDigi > & | out | |||
) |
Definition at line 238 of file SiStripFedZeroSuppression.cc.
References adc, adcMaxNeigh, adcNext, adcNext2, adcPrev, adcPrev2, edm::DetSet< T >::data, fillThresholds_(), highThr_, edm::DetSet< T >::id, IsAValidDigi(), edm::isDebugEnabled(), LogTrace, lowThr_, edm::DetSet< T >::push_back(), size, strip(), theFEDhighThresh, theFEDlowThresh, theNeighFEDhighThresh, theNeighFEDlowThresh, theNext2FEDlowThresh, theNextFEDhighThresh, theNextFEDlowThresh, thePrev2FEDlowThresh, thePrevFEDhighThresh, thePrevFEDlowThresh, and truncate().
00238 { 00239 00240 const uint32_t detID = out.id; 00241 size_t size = in.size(); 00242 #ifdef DEBUG_SiStripZeroSuppression_ 00243 if (edm::isDebugEnabled()) 00244 LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] Zero suppression on std::vector<int16_t>: detID " << detID << " size = " << in.size(); 00245 #endif 00246 00247 fillThresholds_(detID, size); // want to decouple this from the other cost 00248 00249 std::vector<int16_t>::const_iterator in_iter=in.begin(); 00250 for (size_t strip = 0; strip < size; ++strip, ++in_iter){ 00251 00252 size_t strip_mod_128 = strip & 127; 00253 #ifdef DEBUG_SiStripZeroSuppression_ 00254 if (edm::isDebugEnabled()) 00255 LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] detID= " << detID << " strip= " << strip << " adc= " << *in_iter; 00256 #endif 00257 adc = *in_iter; 00258 00259 theFEDlowThresh = lowThr_[strip]; 00260 theFEDhighThresh = highThr_[strip]; 00261 00262 //Find adc values for neighbouring strips 00263 00264 /* 00265 If a strip is the last one on the chip 00266 set its next neighbor's thresholds to infinity 00267 because the FED does not merge clusters across 00268 chip boundaries right now 00269 */ 00270 00271 //adcPrev = -9999; // useless, they are set 00272 //adcNext = -9999; // in the next lines in any case 00273 if ( strip_mod_128 == 127 ) { 00274 adcNext = 0; 00275 theNextFEDlowThresh = 9999; 00276 theNextFEDhighThresh = 9999; 00277 } else { 00278 adcNext = *(in_iter+1); 00279 theNextFEDlowThresh = lowThr_[strip+1]; 00280 theNextFEDhighThresh = highThr_[strip+1]; 00281 } 00282 00283 /* 00284 Similarily, for the first strip 00285 on a chip 00286 */ 00287 if ( strip_mod_128 == 0 ) { 00288 adcPrev = 0; 00289 thePrevFEDlowThresh = 9999; 00290 thePrevFEDhighThresh = 9999; 00291 } else { 00292 adcPrev = *(in_iter-1); 00293 thePrevFEDlowThresh = lowThr_[strip-1]; 00294 thePrevFEDhighThresh = highThr_[strip-1]; 00295 } 00296 00297 if ( adcNext < adcPrev){ 00298 adcMaxNeigh = adcPrev; 00299 theNeighFEDlowThresh = thePrevFEDlowThresh; 00300 theNeighFEDhighThresh = thePrevFEDhighThresh; 00301 } else { 00302 adcMaxNeigh = adcNext; 00303 theNeighFEDlowThresh = theNextFEDlowThresh; 00304 theNeighFEDhighThresh = theNextFEDhighThresh; 00305 } 00306 00307 //Find adc values for next neighbouring strips 00308 //adcPrev2 = -9999; // 00309 //adcNext2 = -9999; // useless to set them here 00310 //thePrev2FEDlowThresh = 1; // they are overwritten always in the next 8 lines 00311 //theNext2FEDlowThresh = 1; // 00312 if ( strip_mod_128 >=126 ) { 00313 adcNext2 = 0; 00314 theNext2FEDlowThresh = 9999; 00315 //} else if ( strip_mod_128 < 126 ) { // if it's not >= then is <, no need to "if" again 00316 } else { 00317 adcNext2 = *(in_iter+2); 00318 theNext2FEDlowThresh = lowThr_[strip+2]; 00319 } 00320 if ( strip_mod_128 <= 1 ) { 00321 adcPrev2 = 0; 00322 thePrev2FEDlowThresh = 9999; 00323 //} else if ( strip_mod_128 > 1 ) { // same as above 00324 } else { 00325 adcPrev2 = *(in_iter-2); 00326 thePrev2FEDlowThresh = lowThr_[strip-2];; 00327 } 00328 00329 if (IsAValidDigi()){ 00330 #ifdef DEBUG_SiStripZeroSuppression_ 00331 if (edm::isDebugEnabled()) 00332 LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] DetId " << out.id << " strip " << strip << " adc " << *in_iter << " digiCollection size " << out.data.size() ; 00333 #endif 00334 //GB 23/6/08: truncation should be done at the very beginning 00335 out.push_back(SiStripDigi(strip, (*in_iter<0 ? 0 : truncate( *in_iter ) ))); 00336 } 00337 } 00338 }
void SiStripFedZeroSuppression::suppress | ( | const edm::DetSet< SiStripRawDigi > & | in, | |
edm::DetSet< SiStripDigi > & | out | |||
) |
Definition at line 116 of file SiStripFedZeroSuppression.cc.
References adc, adcMaxNeigh, adcNext, adcNext2, adcPrev, adcPrev2, edm::DetSet< T >::data, SiStripThreshold::Data::getHth(), SiStripThreshold::Data::getLth(), edm::DetSet< T >::id, IsAValidDigi(), edm::isDebugEnabled(), LogTrace, noiseHandle, strip(), theFEDhighThresh, theFEDlowThresh, theNeighFEDhighThresh, theNeighFEDlowThresh, theNext2FEDlowThresh, theNextFEDhighThresh, theNextFEDlowThresh, thePrev2FEDlowThresh, thePrevFEDhighThresh, thePrevFEDlowThresh, thresholdHandle, and truncate().
00117 { 00118 const uint32_t detID = out.id; 00119 SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detID); 00120 SiStripThreshold::Range detThRange = thresholdHandle->getRange(detID); 00121 #ifdef DEBUG_SiStripZeroSuppression_ 00122 if (edm::isDebugEnabled()) 00123 LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] Zero suppression on edm::DetSet<SiStripRawDigi>: detID " << detID << " size = " << in.data.size(); 00124 #endif 00125 edm::DetSet<SiStripRawDigi>::const_iterator in_iter=in.data.begin(); 00126 for (;in_iter!=in.data.end();in_iter++){ 00127 00128 const uint32_t strip = (uint32_t) (in_iter-in.data.begin()); 00129 00130 #ifdef DEBUG_SiStripZeroSuppression_ 00131 if (edm::isDebugEnabled()) 00132 LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] detID= " << detID << " strip= " << strip << " adc= " << in_iter->adc(); 00133 #endif 00134 adc = in_iter->adc(); 00135 00136 SiStripThreshold::Data thresholds=thresholdHandle->getData(strip,detThRange); 00137 theFEDlowThresh = static_cast<int16_t>(thresholds.getLth()*noiseHandle->getNoise(strip,detNoiseRange)+0.5); 00138 theFEDhighThresh = static_cast<int16_t>(thresholds.getHth()*noiseHandle->getNoise(strip,detNoiseRange)+0.5); 00139 00140 adcPrev = -9999; 00141 adcNext = -9999; 00142 /* 00143 If a strip is the last one on the chip 00144 set its next neighbor's thresholds to infinity 00145 because the FED does not merge clusters across 00146 chip boundaries right now 00147 */ 00148 if ( strip%128 == 127 ) { 00149 adcNext = 0; 00150 theNextFEDlowThresh = 9999; 00151 theNextFEDhighThresh = 9999; 00152 } 00153 else { 00154 adcNext = (in_iter+1)->adc(); 00155 SiStripThreshold::Data thresholds_1=thresholdHandle->getData(strip+1,detThRange); 00156 theNextFEDlowThresh = static_cast<int16_t>(thresholds_1.getLth()*noiseHandle->getNoise(strip+1,detNoiseRange)+0.5); 00157 theNextFEDhighThresh = static_cast<int16_t>(thresholds_1.getHth()*noiseHandle->getNoise(strip+1,detNoiseRange)+0.5); 00158 } 00159 /* 00160 Similarily, for the first strip 00161 on a chip 00162 */ 00163 if ( strip%128 == 0 ) { 00164 adcPrev = 0; 00165 thePrevFEDlowThresh = 9999; 00166 thePrevFEDhighThresh = 9999; 00167 } 00168 else { 00169 adcPrev = (in_iter-1)->adc(); 00170 SiStripThreshold::Data thresholds_1=thresholdHandle->getData(strip-1,detThRange); 00171 thePrevFEDlowThresh = static_cast<int16_t>(thresholds_1.getLth()*noiseHandle->getNoise(strip-1,detNoiseRange)+0.5); 00172 thePrevFEDhighThresh = static_cast<int16_t>(thresholds_1.getHth()*noiseHandle->getNoise(strip-1,detNoiseRange)+0.5); 00173 } 00174 if ( adcNext < adcPrev){ 00175 adcMaxNeigh = adcPrev; 00176 theNeighFEDlowThresh = thePrevFEDlowThresh; 00177 theNeighFEDhighThresh = thePrevFEDhighThresh; 00178 } else { 00179 adcMaxNeigh = adcNext; 00180 theNeighFEDlowThresh = theNextFEDlowThresh; 00181 theNeighFEDhighThresh = theNextFEDhighThresh; 00182 } 00183 00184 //Find adc values for next neighbouring strips 00185 adcPrev2 = -9999; 00186 adcNext2 = -9999; 00187 thePrev2FEDlowThresh = 1; 00188 theNext2FEDlowThresh = 1; 00189 if ( strip%128 >= 126 ) { 00190 adcNext2 = 0; 00191 theNext2FEDlowThresh = 9999; 00192 } 00193 else if ( strip%128 < 126 ) { 00194 adcNext2 = (in_iter+2)->adc(); 00195 theNext2FEDlowThresh = static_cast<int16_t>(thresholdHandle->getData(strip+2,detThRange).getLth()*noiseHandle->getNoise(strip+2,detNoiseRange)+0.5); 00196 } 00197 if ( strip%128 <= 1 ) { 00198 adcPrev2 = 0; 00199 thePrev2FEDlowThresh = 9999; 00200 } 00201 else if ( strip%128 > 1 ) { 00202 adcPrev2 = (in_iter-2)->adc(); 00203 thePrev2FEDlowThresh = static_cast<int16_t>(thresholdHandle->getData(strip-2,detThRange).getLth()*noiseHandle->getNoise(strip-2,detNoiseRange)+0.5); 00204 } 00205 //GB 23/6/08: truncation should be done at the very beginning 00206 if (IsAValidDigi()) 00207 out.data.push_back(SiStripDigi(strip, truncate(in_iter->adc()))); 00208 } 00209 }
void SiStripFedZeroSuppression::suppress | ( | const std::vector< SiStripDigi > & | in, | |
std::vector< SiStripDigi > & | selectedSignal, | |||
const uint32_t & | detID | |||
) |
Definition at line 18 of file SiStripFedZeroSuppression.cc.
References noiseHandle, suppress(), and thresholdHandle.
00018 { 00019 suppress(in, selectedSignal, detID, noiseHandle, thresholdHandle); 00020 }
void SiStripFedZeroSuppression::suppress | ( | const std::vector< SiStripDigi > & | in, | |
std::vector< SiStripDigi > & | selectedSignal, | |||
const uint32_t & | detID, | |||
edm::ESHandle< SiStripNoises > & | noiseHandle, | |||
edm::ESHandle< SiStripThreshold > & | thresholdHandle | |||
) |
Definition at line 22 of file SiStripFedZeroSuppression.cc.
References adc, adcMaxNeigh, adcNext, adcNext2, adcPrev, adcPrev2, SiStripThreshold::Data::getHth(), SiStripThreshold::Data::getLth(), i, IsAValidDigi(), strip(), theFEDhighThresh, theFEDlowThresh, theNeighFEDhighThresh, theNeighFEDlowThresh, theNext2FEDlowThresh, theNextFEDhighThresh, theNextFEDlowThresh, thePrev2FEDlowThresh, thePrevFEDhighThresh, and thePrevFEDlowThresh.
Referenced by SiStripDigitizerAlgorithm::run(), SiStripZeroSuppressionAlgorithm::run(), and suppress().
00023 { 00024 00025 int i; 00026 int inSize = in.size(); 00027 SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detID); 00028 SiStripThreshold::Range detThRange = thresholdHandle->getRange(detID); 00029 00030 // reserving more than needed, but quicker than one at a time 00031 selectedSignal.clear(); 00032 selectedSignal.reserve(inSize); 00033 for (i = 0; i < inSize; i++) { 00034 //Find adc values for neighbouring strips 00035 const uint32_t strip = (uint32_t) in[i].strip(); 00036 00037 adc = in[i].adc(); 00038 00039 SiStripThreshold::Data thresholds=thresholdHandle->getData(strip,detThRange); 00040 theFEDlowThresh = static_cast<int16_t>(thresholds.getLth()*noiseHandle->getNoise(strip,detNoiseRange)+0.5); 00041 theFEDhighThresh = static_cast<int16_t>(thresholds.getHth()*noiseHandle->getNoise(strip,detNoiseRange)+0.5); 00042 00043 adcPrev = -9999; 00044 adcNext = -9999; 00045 adcPrev2 = -9999; 00046 adcNext2 = -9999; 00047 00048 /* 00049 Since we are not running on 00050 Raw data we need to initialize 00051 all the FED threshold 00052 */ 00053 00054 theNextFEDlowThresh = theFEDlowThresh; 00055 theNext2FEDlowThresh = theFEDlowThresh; 00056 thePrevFEDlowThresh = theFEDlowThresh; 00057 thePrev2FEDlowThresh = theFEDlowThresh; 00058 theNeighFEDlowThresh = theFEDlowThresh; 00059 00060 theNextFEDhighThresh = theFEDhighThresh; 00061 thePrevFEDhighThresh = theFEDhighThresh; 00062 theNeighFEDhighThresh = theFEDhighThresh; 00063 00064 if ( ((strip)%128) == 127){ 00065 adcNext = 0; 00066 theNextFEDlowThresh = 9999; 00067 theNextFEDhighThresh = 9999; 00068 }else if (i + 1 < inSize && in[i+1].strip() == strip + 1) { 00069 adcNext = in[i+1].adc(); 00070 SiStripThreshold::Data thresholds_1=thresholdHandle->getData(strip+1,detThRange); 00071 theNextFEDlowThresh = static_cast<int16_t>(thresholds_1.getLth()*noiseHandle->getNoise(strip+1,detNoiseRange)+0.5); 00072 theNextFEDhighThresh = static_cast<int16_t>(thresholds_1.getHth()*noiseHandle->getNoise(strip+1,detNoiseRange)+0.5); 00073 if ( ((strip)%128) == 126){ 00074 adcNext2 = 0; 00075 theNext2FEDlowThresh = 9999; 00076 }else if (i + 2 < inSize && in[i+2].strip() == strip + 2) { 00077 adcNext2 = in[i+2].adc(); 00078 theNext2FEDlowThresh = static_cast<int16_t>(thresholdHandle->getData(strip+2,detThRange).getLth()*noiseHandle->getNoise(strip+2,detNoiseRange)+0.5); 00079 } 00080 } 00081 00082 if ( ((strip)%128) == 0){ 00083 adcPrev = 0; 00084 thePrevFEDlowThresh = 9999; 00085 thePrevFEDhighThresh = 9999; 00086 }else if (i - 1 >= 0 && in[i-1].strip() == strip - 1) { 00087 adcPrev = in[i-1].adc(); 00088 SiStripThreshold::Data thresholds_1=thresholdHandle->getData(strip-1,detThRange); 00089 thePrevFEDlowThresh = static_cast<int16_t>(thresholds_1.getLth()*noiseHandle->getNoise(strip-1,detNoiseRange)+0.5); 00090 thePrevFEDhighThresh = static_cast<int16_t>(thresholds_1.getHth()*noiseHandle->getNoise(strip-1,detNoiseRange)+0.5); 00091 if ( ((strip)%128) == 1){ 00092 adcPrev2 = 0; 00093 thePrev2FEDlowThresh = 99999; 00094 }else if (i - 2 >= 0 && in[i-2].strip() == strip - 2) { 00095 adcPrev2 = in[i-2].adc(); 00096 thePrev2FEDlowThresh = static_cast<int16_t>(thresholdHandle->getData(strip-2,detThRange).getLth()*noiseHandle->getNoise(strip-2,detNoiseRange)+0.5); 00097 } 00098 } 00099 00100 if ( adcNext <= adcPrev){ 00101 adcMaxNeigh = adcPrev; 00102 theNeighFEDlowThresh = thePrevFEDlowThresh; 00103 theNeighFEDhighThresh = thePrevFEDhighThresh; 00104 } else { 00105 adcMaxNeigh = adcNext; 00106 theNeighFEDlowThresh = theNextFEDlowThresh; 00107 theNeighFEDhighThresh = theNextFEDhighThresh; 00108 } 00109 00110 if (IsAValidDigi()){ 00111 selectedSignal.push_back(SiStripDigi(strip, adc)); 00112 } 00113 } 00114 }
uint16_t SiStripFedZeroSuppression::truncate | ( | int16_t | adc | ) | const [inline, private] |
int16_t SiStripFedZeroSuppression::adc [private] |
Definition at line 53 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::adcMaxNeigh [private] |
Definition at line 56 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::adcNext [private] |
Definition at line 55 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::adcNext2 [private] |
Definition at line 58 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::adcPrev [private] |
Definition at line 54 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::adcPrev2 [private] |
Definition at line 57 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
std::vector<int16_t> SiStripFedZeroSuppression::highThr_ [private] |
Definition at line 72 of file SiStripFedZeroSuppression.h.
Referenced by fillThresholds_(), and suppress().
std::vector<float> SiStripFedZeroSuppression::highThrSN_ [private] |
std::vector<int16_t> SiStripFedZeroSuppression::lowThr_ [private] |
Definition at line 72 of file SiStripFedZeroSuppression.h.
Referenced by fillThresholds_(), and suppress().
std::vector<float> SiStripFedZeroSuppression::lowThrSN_ [private] |
Definition at line 43 of file SiStripFedZeroSuppression.h.
Referenced by fillThresholds_(), init(), and suppress().
std::vector<float> SiStripFedZeroSuppression::noises_ [private] |
uint16_t SiStripFedZeroSuppression::theFEDalgorithm [private] |
int16_t SiStripFedZeroSuppression::theFEDhighThresh [private] |
Definition at line 51 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::theFEDlowThresh [private] |
Definition at line 50 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::theNeighFEDhighThresh [private] |
Definition at line 66 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::theNeighFEDlowThresh [private] |
Definition at line 65 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::theNext2FEDlowThresh [private] |
Definition at line 69 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::theNextFEDhighThresh [private] |
Definition at line 63 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::theNextFEDlowThresh [private] |
Definition at line 62 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::thePrev2FEDlowThresh [private] |
Definition at line 68 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::thePrevFEDhighThresh [private] |
Definition at line 61 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
int16_t SiStripFedZeroSuppression::thePrevFEDlowThresh [private] |
Definition at line 60 of file SiStripFedZeroSuppression.h.
Referenced by IsAValidDigi(), and suppress().
Definition at line 47 of file SiStripFedZeroSuppression.h.
Referenced by fillThresholds_(), init(), and suppress().