CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/CondFormats/SiStripObjects/interface/NoiseAnalysis.h

Go to the documentation of this file.
00001 #ifndef CondFormats_SiStripObjects_NoiseAnalysis_H
00002 #define CondFormats_SiStripObjects_NoiseAnalysis_H
00003 
00004 #include "CondFormats/SiStripObjects/interface/CommissioningAnalysis.h"
00005 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
00006 #include <boost/cstdint.hpp>
00007 #include <sstream>
00008 #include <vector>
00009 
00015 class NoiseAnalysis : public CommissioningAnalysis {
00016   
00017  public:
00018 
00019   // ---------- con(de)structors ----------
00020 
00021   NoiseAnalysis( const uint32_t& key );
00022 
00023   NoiseAnalysis();
00024 
00025   virtual ~NoiseAnalysis() {;}
00026 
00027   friend class NoiseAlgorithm;
00028 
00029   // ---------- public interface ----------
00030 
00032   bool isValid() const;
00033   
00034   // Pedestal, noise and raw noise (128-strip vector per APV)
00035   inline const VVFloat& peds() const;
00036   inline const VVFloat& noise() const;
00037   inline const VVFloat& raw() const;
00038 
00039   // Dead and noisy strips (vector per APV)
00040   inline const VVInt& dead() const; 
00041   inline const VVInt& noisy() const;
00042 
00043   // Mean and rms spread (value per APV)
00044   inline const VFloat& pedsMean() const;
00045   inline const VFloat& pedsSpread() const;
00046   inline const VFloat& noiseMean() const;
00047   inline const VFloat& noiseSpread() const;
00048   inline const VFloat& rawMean() const;
00049   inline const VFloat& rawSpread() const;
00050 
00051   // Max and min values (value per APV)
00052   inline const VFloat& pedsMax() const;
00053   inline const VFloat& pedsMin() const; 
00054   inline const VFloat& noiseMax() const;
00055   inline const VFloat& noiseMin() const;
00056   inline const VFloat& rawMax() const;
00057   inline const VFloat& rawMin() const;
00058 
00059   // ---------- misc ----------
00060   
00062   void print( std::stringstream&, uint32_t apv_number = 0 );
00063   
00065   void summary( std::stringstream& ) const;
00066   
00068   void reset();
00069   
00070   // ---------- private member data ----------
00071 
00072  private:
00073   
00074   // VVFloats means: 1 vector per APV, 1 value per strip.
00075 
00077   VVFloat peds_;
00078 
00080   VVFloat noise_;
00081 
00083   VVFloat raw_;
00084 
00085   // VVInts means: 1 vector per APV, values are strip numbers.
00086 
00088   VVInt dead_; 
00089 
00091   VVInt noisy_;
00092 
00093   // VFloat: 1 value per APV
00094 
00096   VFloat pedsMean_;
00097 
00099   VFloat pedsSpread_;
00100 
00102   VFloat noiseMean_;
00103 
00105   VFloat noiseSpread_;
00106 
00108   VFloat rawMean_;
00109 
00111   VFloat rawSpread_;
00112 
00114   VFloat pedsMax_;
00115 
00117   VFloat pedsMin_; 
00118 
00120   VFloat noiseMax_;
00121 
00123   VFloat noiseMin_;
00124 
00126   VFloat rawMax_;
00127 
00129   VFloat rawMin_;
00130   
00131   // true if legacy histogram naming is used
00132   bool legacy_;
00133   
00134 };
00135 
00136 // ---------- Inline methods ----------
00137 
00138 const NoiseAnalysis::VVFloat& NoiseAnalysis::peds() const { return peds_; }
00139 const NoiseAnalysis::VVFloat& NoiseAnalysis::noise() const { return noise_; }
00140 const NoiseAnalysis::VVFloat& NoiseAnalysis::raw() const { return raw_; }
00141 
00142 const NoiseAnalysis::VVInt& NoiseAnalysis::dead() const { return dead_; } 
00143 const NoiseAnalysis::VVInt& NoiseAnalysis::noisy() const { return noisy_; }
00144 
00145 const NoiseAnalysis::VFloat& NoiseAnalysis::pedsMean() const { return pedsMean_; }
00146 const NoiseAnalysis::VFloat& NoiseAnalysis::pedsSpread() const { return pedsSpread_; }
00147 const NoiseAnalysis::VFloat& NoiseAnalysis::noiseMean() const { return noiseMean_; }
00148 const NoiseAnalysis::VFloat& NoiseAnalysis::noiseSpread() const { return noiseSpread_; }
00149 const NoiseAnalysis::VFloat& NoiseAnalysis::rawMean() const { return rawMean_; }
00150 const NoiseAnalysis::VFloat& NoiseAnalysis::rawSpread() const { return rawSpread_; }
00151 
00152 const NoiseAnalysis::VFloat& NoiseAnalysis::pedsMax() const { return pedsMax_; }
00153 const NoiseAnalysis::VFloat& NoiseAnalysis::pedsMin() const { return pedsMin_; } 
00154 const NoiseAnalysis::VFloat& NoiseAnalysis::noiseMax() const { return noiseMax_; }
00155 const NoiseAnalysis::VFloat& NoiseAnalysis::noiseMin() const { return noiseMin_; }
00156 const NoiseAnalysis::VFloat& NoiseAnalysis::rawMax() const { return rawMax_; }
00157 const NoiseAnalysis::VFloat& NoiseAnalysis::rawMin() const { return rawMin_; }
00158 
00159 #endif // CondFormats_SiStripObjects_NoiseAnalysis_H