CMS 3D CMS Logo

SiStripTT6CommonModeNoiseSubtraction Class Reference

#include <CommonTools/SiStripZeroSuppression/interface/SiStripTT6CommonModeNoiseSubtraction.h>

Inheritance diagram for SiStripTT6CommonModeNoiseSubtraction:

SiStripCommonModeNoiseSubtractor

List of all members.

Public Member Functions

void init (const edm::EventSetup &es)
 SiStripTT6CommonModeNoiseSubtraction (double in)
void subtract (const uint32_t &, std::vector< int16_t > &)
 ~SiStripTT6CommonModeNoiseSubtraction ()


Detailed Description

Definition at line 7 of file SiStripTT6CommonModeNoiseSubtraction.h.


Constructor & Destructor Documentation

SiStripTT6CommonModeNoiseSubtraction::SiStripTT6CommonModeNoiseSubtraction ( double  in  )  [inline]

Definition at line 10 of file SiStripTT6CommonModeNoiseSubtraction.h.

SiStripTT6CommonModeNoiseSubtraction::~SiStripTT6CommonModeNoiseSubtraction (  )  [inline]

Definition at line 11 of file SiStripTT6CommonModeNoiseSubtraction.h.

00011 {};


Member Function Documentation

void SiStripTT6CommonModeNoiseSubtraction::init ( const edm::EventSetup es  )  [virtual]

Implements SiStripCommonModeNoiseSubtractor.

Definition at line 6 of file SiStripTT6CommonModeNoiseSubtraction.cc.

References edm::EventSetup::get(), SiStripCommonModeNoiseSubtractor::noiseHandle, and SiStripCommonModeNoiseSubtractor::qualityHandle.

00006                                                                       {
00007   es.get<SiStripNoisesRcd>().get(noiseHandle);
00008   es.get<SiStripQualityRcd>().get(qualityHandle);
00009 }

void SiStripTT6CommonModeNoiseSubtraction::subtract ( const uint32_t &  detId,
std::vector< int16_t > &  digis 
) [virtual]

Implements SiStripCommonModeNoiseSubtractor.

Definition at line 11 of file SiStripTT6CommonModeNoiseSubtraction.cc.

References funct::abs(), SiStripCommonModeNoiseSubtractor::cut_to_avoid_signal_, lat::endl(), edm::isDebugEnabled(), LogDebug, ls, SiStripCommonModeNoiseSubtractor::noiseHandle, SiStripCommonModeNoiseSubtractor::qualityHandle, and ss.

00011                                                                                                   {
00012 
00013   short FixedBias=128;
00014   SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detId);
00015   SiStripQuality::Range detQualityRange = qualityHandle->getRange(detId);
00016 #ifdef DEBUG_SiStripZeroSuppression_
00017   std::stringstream ss;  
00018   if (edm::isDebugEnabled())
00019     ss << "[SiStripTT6CommonModeNoiseSubtraction::subtract] digis.size()= " << digis.size() << std::endl;
00020 #endif
00021 
00022   std::vector<int16_t>::iterator fs;
00023   std::vector<int16_t>::iterator ls;
00024   double sumVal = 0.0;
00025   double sumWt =  0.0;
00026   
00027   for (uint16_t istrip=0;istrip<digis.size();++istrip){
00028     if ( !qualityHandle->IsStripBad(detQualityRange,istrip) ) {
00029       float stripNoise=noiseHandle->getNoise(istrip,detNoiseRange);
00030       if( abs(digis[istrip]-FixedBias) < cut_to_avoid_signal_*stripNoise ) { 
00031         double nWeight = 1/(stripNoise*stripNoise);
00032         sumVal += (digis[istrip]-FixedBias)*nWeight;
00033         sumWt += nWeight;
00034       }
00035     }
00036      
00037     if (istrip%128 == 127){
00038       double CM = (sumWt) ? sumVal/sumWt :0.0;
00039       
00040       fs = digis.begin()+istrip-127;
00041       ls = digis.begin()+istrip+1;
00042       
00043 #ifdef DEBUG_SiStripZeroSuppression_
00044       if (edm::isDebugEnabled())
00045         ss << " APV= " << (uint16_t) istrip/128 << " CM= " << CM << std::endl;
00046 #endif      
00047       while (fs < ls) {
00048         *fs = (int16_t) (*fs-FixedBias-CM);
00049 #ifdef DEBUG_SiStripZeroSuppression_
00050         if (edm::isDebugEnabled())
00051           ss << " adc CM subtr " << *fs << std::endl;
00052 #endif
00053         fs++;
00054       }
00055       sumVal = 0.0;
00056       sumWt =  0.0;
00057     }
00058   }
00059 #ifdef DEBUG_SiStripZeroSuppression_
00060   LogDebug("SiStripZeroSuppression") << ss.str().c_str();
00061 #endif
00062 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:32:36 2009 for CMSSW by  doxygen 1.5.4