CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/DQM/SiStripCommissioningSources/interface/PedsFullNoiseTask.h

Go to the documentation of this file.
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