CMS 3D CMS Logo

FedTimingTask Class Reference

#include <DQM/SiStripCommissioningSources/interface/FedTimingTask.h>

Inheritance diagram for FedTimingTask:

CommissioningTask

List of all members.

Public Member Functions

 FedTimingTask (DQMStore *, const FedChannelConnection &)
virtual ~FedTimingTask ()

Private Member Functions

virtual void book ()
virtual void fill (const SiStripEventSummary &, const edm::DetSet< SiStripRawDigi > &)
virtual void update ()

Private Attributes

uint16_t nBins_
HistoSet timing_


Detailed Description

Definition at line 9 of file FedTimingTask.h.


Constructor & Destructor Documentation

FedTimingTask::FedTimingTask ( DQMStore dqm,
const FedChannelConnection conn 
)

Definition at line 10 of file FedTimingTask.cc.

References LogDebug.

00011                                                                  :
00012   CommissioningTask( dqm, conn, "FedTimingTask" ),
00013   timing_(),
00014   nBins_(40) //@@ this should be from number of scope mode samples (mean booking in event loop and putting scope mode length in trigger fed)
00015 {
00016   LogDebug("Commissioning") << "[FedTimingTask::FedTimingTask] Constructing object...";
00017 }

FedTimingTask::~FedTimingTask (  )  [virtual]

Definition at line 21 of file FedTimingTask.cc.

References LogDebug.

00021                               {
00022   LogDebug("Commissioning") << "[FedTimingTask::FedTimingTask] Destructing object...";
00023 }


Member Function Documentation

void FedTimingTask::book (  )  [private, virtual]

Reimplemented from CommissioningTask.

Definition at line 27 of file FedTimingTask.cc.

References CommissioningTask::connection(), CommissioningTask::dqm(), sistrip::EXPERT_HISTO, sistrip::FED_KEY, sistrip::FED_TIMING, CommissioningTask::fedKey(), CommissioningTask::HistoSet::histo(), sistrip::LLD_CHAN, LogDebug, nBins_, timing_, indexGen::title, CommissioningTask::HistoSet::vNumOfEntries_, CommissioningTask::HistoSet::vSumOfContents_, and CommissioningTask::HistoSet::vSumOfSquares_.

00027                          {
00028   LogDebug("Commissioning") << "[FedTimingTask::book]";
00029 
00030   uint16_t nbins = 24 * nBins_; // 24 "fine" pll skews possible
00031   
00032   std::string title;
00033   
00034   title = SiStripHistoTitle( sistrip::EXPERT_HISTO, 
00035                              sistrip::FED_TIMING, 
00036                              sistrip::FED_KEY, 
00037                              fedKey(),
00038                              sistrip::LLD_CHAN, 
00039                              connection().lldChannel() ).title();
00040 
00041   timing_.histo( dqm()->bookProfile( title, title, 
00042                                      nbins, -0.5, nbins*1.-0.5,
00043                                      1025, 0., 1025. ) );
00044   
00045   timing_.vNumOfEntries_.resize(nbins,0);
00046   timing_.vSumOfContents_.resize(nbins,0);
00047   timing_.vSumOfSquares_.resize(nbins,0);
00048   
00049 }

void FedTimingTask::fill ( const SiStripEventSummary summary,
const edm::DetSet< SiStripRawDigi > &  digis 
) [private, virtual]

Reimplemented from CommissioningTask.

Definition at line 61 of file FedTimingTask.cc.

References edm::DetSet< T >::data, LogDebug, nBins_, SiStripEventSummary::pllFine(), timing_, and CommissioningTask::updateHistoSet().

00062                                                                    {
00063   LogDebug("Commissioning") << "[FedTimingTask::fill]";
00064 
00065   //@@ if scope mode length is in trigger fed, then 
00066   //@@ can add check here on number of digis
00067   if ( digis.data.size() < nBins_ ) {
00068     edm::LogWarning("Commissioning") << "[FedTimingTask::fill]" 
00069                                      << " Unexpected number of digis! " 
00070                                      << digis.data.size(); 
00071   } else {
00072     
00073     uint32_t pll_fine = summary.pllFine();
00074     for ( uint16_t coarse = 0; coarse < nBins_/*digis.data.size()*/; coarse++ ) {
00075       uint16_t fine = (coarse+1)*24 - (pll_fine+1);
00076       updateHistoSet( timing_, fine, digis.data[coarse].adc() );
00077     }
00078 
00079   }
00080 
00081 }

void FedTimingTask::update (  )  [private, virtual]

Reimplemented from CommissioningTask.

Definition at line 85 of file FedTimingTask.cc.

References LogDebug, timing_, and CommissioningTask::updateHistoSet().

00085                            {
00086   LogDebug("Commissioning") << "[FedTimingTask::update]";
00087   updateHistoSet( timing_ );
00088 }


Member Data Documentation

uint16_t FedTimingTask::nBins_ [private]

Definition at line 25 of file FedTimingTask.h.

Referenced by book(), and fill().

HistoSet FedTimingTask::timing_ [private]

Definition at line 23 of file FedTimingTask.h.

Referenced by book(), fill(), and update().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:20:51 2009 for CMSSW by  doxygen 1.5.4