CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/CondFormats/SiStripObjects/interface/PedsOnlyAnalysis.h

Go to the documentation of this file.
00001 #ifndef CondFormats_SiStripObjects_PedsOnlyAnalysis_H
00002 #define CondFormats_SiStripObjects_PedsOnlyAnalysis_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 PedsOnlyAnalysis : public CommissioningAnalysis {
00016   
00017  public:
00018 
00019   // ---------- con(de)structors ----------
00020 
00021   PedsOnlyAnalysis( const uint32_t& key );
00022 
00023   PedsOnlyAnalysis();
00024 
00025   virtual ~PedsOnlyAnalysis() {;}
00026 
00027   friend class PedsOnlyAlgorithm;
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& raw() const;
00037 
00038   // Mean and rms spread (value per APV)
00039   inline const VFloat& pedsMean() const;
00040   inline const VFloat& pedsSpread() const;
00041   inline const VFloat& rawMean() const;
00042   inline const VFloat& rawSpread() const;
00043 
00044   // Max and min values (value per APV)
00045   inline const VFloat& pedsMax() const;
00046   inline const VFloat& pedsMin() const; 
00047   inline const VFloat& rawMax() const;
00048   inline const VFloat& rawMin() const;
00049 
00050   // ---------- misc ----------
00051   
00053   void print( std::stringstream&, uint32_t apv_number = 0 );
00054   
00056   void summary( std::stringstream& ) const;
00057   
00059   void reset();
00060   
00061   // ---------- private member data ----------
00062 
00063  private:
00064   
00065   // VVFloats means: 1 vector per APV, 1 value per strip.
00066 
00068   VVFloat peds_;
00069 
00071   VVFloat raw_;
00072 
00073   // VFloat: 1 value per APV
00074 
00076   VFloat pedsMean_;
00077 
00079   VFloat pedsSpread_;
00080 
00082   VFloat rawMean_;
00083 
00085   VFloat rawSpread_;
00086 
00088   VFloat pedsMax_;
00089 
00091   VFloat pedsMin_; 
00092 
00094   VFloat rawMax_;
00095 
00097   VFloat rawMin_;
00098   
00099   // true if legacy histogram naming is used
00100   bool legacy_;
00101   
00102 };
00103 
00104 // ---------- Inline methods ----------
00105 
00106 const PedsOnlyAnalysis::VVFloat& PedsOnlyAnalysis::peds() const { return peds_; }
00107 const PedsOnlyAnalysis::VVFloat& PedsOnlyAnalysis::raw() const { return raw_; }
00108 
00109 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::pedsMean() const { return pedsMean_; }
00110 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::pedsSpread() const { return pedsSpread_; }
00111 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::rawMean() const { return rawMean_; }
00112 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::rawSpread() const { return rawSpread_; }
00113 
00114 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::pedsMax() const { return pedsMax_; }
00115 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::pedsMin() const { return pedsMin_; } 
00116 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::rawMax() const { return rawMax_; }
00117 const PedsOnlyAnalysis::VFloat& PedsOnlyAnalysis::rawMin() const { return rawMin_; }
00118 
00119 #endif // CondFormats_SiStripObjects_PedsOnlyAnalysis_H