00001 #ifndef DQM_SISTRIPCOMMISSIONINGSOURCES_PEDSFULLNOISETASK_H 00002 #define DQM_SISTRIPCOMMISSIONINGSOURCES_PEDSFULLNOISETASK_H 00003 00004 #include <vector> 00005 00006 #include "DataFormats/Common/interface/DetSet.h" 00007 #include "DQM/SiStripCommissioningSources/interface/CommissioningTask.h" 00008 00009 // Forward Declarations 00010 namespace edm { class ParameterSet; } 00011 class DQMStore; 00012 class FedChannelConnection; 00013 class SiStripEventSummary; 00014 class SiStripRawDigi; 00015 class TH2S; 00016 00020 class PedsFullNoiseTask : public CommissioningTask { 00021 00022 public: 00023 00024 PedsFullNoiseTask(DQMStore * dqm, const FedChannelConnection & conn, const edm::ParameterSet & pset); 00025 virtual ~PedsFullNoiseTask(); 00026 00027 private: 00028 00029 virtual void book(); 00030 virtual void fill( const SiStripEventSummary &, 00031 const edm::DetSet<SiStripRawDigi> &); 00032 virtual void update(); 00033 00034 // analysis histograms and related variables 00035 HistoSet pedhist_, noiseprof_; 00036 CompactHistoSet noisehist_; 00037 TH2S * hist2d_; 00038 std::vector<int16_t> peds_; 00039 std::vector<float> pedsfl_; 00040 // keeps track of whether desired number of events were skipped 00041 bool skipped_; 00042 // number of events to skip 00043 uint16_t nskip_; 00044 // keeps track of whether pedestal step is finished 00045 bool pedsdone_; 00046 // number of events to be used for pedestals 00047 uint16_t nevpeds_; 00048 // width of the expected noise peak (1 bin/adc hardcoded) 00049 uint16_t nadcnoise_; 00050 // number of strips per apv 00051 uint16_t nstrips_; 00052 // whether to fill the old-style noise profile 00053 bool fillnoiseprofile_; 00054 // for expert debugging only! - whether to use average instead of median CM 00055 bool useavgcm_; 00056 // for expert debugging only! - whether to use float pedestals instead of rounded int's 00057 bool usefloatpeds_; 00058 00059 }; 00060 00061 #endif // DQM_SISTRIPCOMMISSIONINGSOURCES_PEDSFULLNOISETASK_H