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