CMS 3D CMS Logo

FedTimingHistograms Class Reference

#include <DQM/SiStripCommissioningClients/interface/FedTimingHistograms.h>

Inheritance diagram for FedTimingHistograms:

CommissioningHistograms

List of all members.

Public Types

typedef
SummaryHistogramFactory
< FedTimingAnalysis
Factory

Public Member Functions

void createSummaryHisto (const sistrip::Monitorable &, const sistrip::Presentation &, const std::string &top_level_dir, const sistrip::Granularity &)
 FedTimingHistograms (DQMOldReceiver *)
void histoAnalysis (bool debug)
virtual ~FedTimingHistograms ()

Protected Attributes

std::map< uint32_t,
FedTimingAnalysis
data_
uint32_t deviceWithMaxDelay_
uint32_t deviceWithMinDelay_
std::auto_ptr< Factoryfactory_
float maxDelay_
float minDelay_
const float optimumSamplingPoint_


Detailed Description

Definition at line 10 of file FedTimingHistograms.h.


Member Typedef Documentation

typedef SummaryHistogramFactory<FedTimingAnalysis> FedTimingHistograms::Factory

Reimplemented from CommissioningHistograms.

Definition at line 17 of file FedTimingHistograms.h.


Constructor & Destructor Documentation

FedTimingHistograms::FedTimingHistograms ( DQMOldReceiver mui  ) 

Definition at line 14 of file FedTimingHistograms.cc.

References GenMuonPlsPt100GeV_cfg::cout, and lat::endl().

00015   : CommissioningHistograms( mui, sistrip::FED_TIMING ),
00016     factory_( new Factory ),
00017     optimumSamplingPoint_(15.),
00018     minDelay_(sistrip::invalid_),
00019     maxDelay_(-1.*sistrip::invalid_),
00020     deviceWithMinDelay_(sistrip::invalid_),
00021     deviceWithMaxDelay_(sistrip::invalid_)
00022 {
00023   cout << "[" << __PRETTY_FUNCTION__ << "]"
00024        << " Created object for APV TIMING histograms" << endl;
00025 }

FedTimingHistograms::~FedTimingHistograms (  )  [virtual]

Definition at line 29 of file FedTimingHistograms.cc.

References GenMuonPlsPt100GeV_cfg::cout, and lat::endl().

00029                                           {
00030   cout << "[" << __PRETTY_FUNCTION__ << "]" << endl;
00031 }


Member Function Documentation

void FedTimingHistograms::createSummaryHisto ( const sistrip::Monitorable histo,
const sistrip::Presentation type,
const std::string &  top_level_dir,
const sistrip::Granularity gran 
) [virtual]

Reimplemented from CommissioningHistograms.

Definition at line 144 of file FedTimingHistograms.cc.

References GenMuonPlsPt100GeV_cfg::cout, data_, lat::endl(), factory_, histoAnalysis(), CommissioningHistograms::histogram(), summary, sistrip::UNKNOWN_VIEW, and SiStripEnumsAndStrings::view().

00147                                                                                {
00148   cout << "[" << __PRETTY_FUNCTION__ <<"]" << endl;
00149   
00150   // Check view 
00151   sistrip::View view = SiStripEnumsAndStrings::view(directory);
00152   if ( view == sistrip::UNKNOWN_VIEW ) { return; }
00153   
00154   // Analyze histograms
00155   histoAnalysis( false );
00156 
00157   // Extract data to be histogrammed
00158   factory_->init( histo, type, view, directory, gran );
00159   uint32_t xbins = factory_->extract( data_ );
00160 
00161   // Create summary histogram (if it doesn't already exist)
00162   TH1* summary = histogram( histo, type, view, directory, xbins );
00163 
00164   // Fill histogram with data
00165   factory_->fill( *summary );
00166   
00167 }

void FedTimingHistograms::histoAnalysis ( bool  debug  )  [virtual]

Reimplemented from CommissioningHistograms.

Definition at line 35 of file FedTimingHistograms.cc.

References SiStripFecKey::ccuAddr(), SiStripFecKey::ccuChan(), TestMuL1L2Filter_cff::cerr, GenMuonPlsPt100GeV_cfg::cout, data_, lat::endl(), SiStripFecKey::fecCrate(), SiStripFecKey::fecRing(), SiStripFecKey::fecSlot(), sistrip::invalid_, max, sistrip::maximum_, min, and ss.

Referenced by createSummaryHisto().

00035                                                     {
00036   
00037   // Clear std::map holding analysis objects
00038   data_.clear();
00039 
00040   // Reset minimum / maximum delays
00041   float time_min =  1. * sistrip::invalid_;
00042   float time_max = -1. * sistrip::invalid_;
00043   uint32_t device_min = sistrip::invalid_;
00044   uint32_t device_max = sistrip::invalid_;
00045   
00046 //   // Iterate through std::map containing std::vectors of profile histograms
00047 //   CollationsMap::const_iterator iter = collations().begin();
00048 //   for ( ; iter != collations().end(); iter++ ) {
00049     
00050 //     // Check std::vector of histos is not empty (should be 2 histos)
00051 //     if ( iter->second.empty() ) {
00052 //       cerr << "[" << __PRETTY_FUNCTION__ << "]"
00053 //         << " Zero collation histograms found!" << endl;
00054 //       continue;
00055 //     }
00056     
00057 //     // Retrieve pointers to profile histos for this FED channel 
00058 //     std::vector<TH1*> profs;
00059 //     Collations::const_iterator ihis = iter->second.begin(); 
00060 //     for ( ; ihis != iter->second.end(); ihis++ ) {
00061 //       TProfile* prof = ExtractTObject<TProfile>().extract( mui()->get( ihis->first ) );
00062 //       if ( prof ) { profs.push_back(prof); }
00063 //     } 
00064     
00065 //     // Perform histo analysis
00066 //     FedTimingAnalysis anal( iter->first );
00067 //     FedTimingAlgorithm algo( &anal );
00068 //     algo.analysis( profs );
00069 //     data_[iter->first] = anal; 
00070     
00071 //     // Check tick height is valid
00072 //     if ( anal.height() < 100. ) { 
00073 //       cerr << "[" << __PRETTY_FUNCTION__ << "]"
00074 //         << " Tick mark height too small: " << anal.height() << endl;
00075 //       continue; 
00076 //     }
00077 
00078 //     // Check time of rising edge
00079 //     if ( anal.time() > sistrip::maximum_ ) { continue; }
00080     
00081 //     // Find maximum time
00082 //     if ( anal.time() > time_max ) { 
00083 //       time_max = anal.time(); 
00084 //       device_max = iter->first;
00085 //     }
00086     
00087 //     // Find minimum time
00088 //     if ( anal.time() < time_min ) { 
00089 //       time_min = anal.time(); 
00090 //       device_min = iter->first;
00091 //     }
00092 
00093 //   }
00094 
00095 //   cout << "[" << __PRETTY_FUNCTION__ << "]"
00096 //        << " Analyzed histograms for " 
00097 //        << collations().size() 
00098 //        << " FED channels" << endl;
00099 
00100   // Adjust maximum (and minimum) delay(s) to find optimum sampling point(s)
00101   if ( time_max > sistrip::maximum_ ||
00102        time_max < -1.*sistrip::maximum_ ) { 
00103     cerr << "[" << __PRETTY_FUNCTION__ << "]"
00104          << " Unable to set maximum time! Found unexpected value: "
00105          << time_max << endl;
00106     return; 
00107   }
00108   
00109   SiStripFecKey max( device_max );
00110   cout << " Device (FEC/slot/ring/CCU/module/channel) " 
00111        << max.fecCrate() << "/" 
00112        << max.fecSlot() << "/" 
00113        << max.fecRing() << "/" 
00114        << max.ccuAddr() << "/"
00115        << max.ccuChan() << "/"
00116        << " has maximum delay (rising edge) [ns]:" << time_max << endl;
00117   
00118   SiStripFecKey min( device_min );
00119   cout << " Device (FEC/slot/ring/CCU/module/channel): " 
00120        << min.fecCrate() << "/" 
00121        << min.fecSlot() << "/" 
00122        << min.fecRing() << "/" 
00123        << min.ccuAddr() << "/"
00124        << min.ccuChan() << "/"
00125        << " has minimum delay (rising edge) [ns]:" << time_min << endl;
00126  
00127   // Set maximum time for all analysis objects
00128   std::map<uint32_t,FedTimingAnalysis>::iterator ianal = data_.begin();
00129   for ( ; ianal != data_.end(); ianal++ ) { 
00130     ianal->second.max( time_max ); 
00131     static uint16_t cntr = 0;
00132     if ( debug ) {
00133       std::stringstream ss;
00134       ianal->second.print( ss ); 
00135       cout << ss.str() << endl;
00136       cntr++;
00137     }
00138   }
00139 
00140 }


Member Data Documentation

std::map<uint32_t,FedTimingAnalysis> FedTimingHistograms::data_ [protected]

Reimplemented from CommissioningHistograms.

Definition at line 30 of file FedTimingHistograms.h.

Referenced by createSummaryHisto(), and histoAnalysis().

uint32_t FedTimingHistograms::deviceWithMaxDelay_ [protected]

Definition at line 38 of file FedTimingHistograms.h.

uint32_t FedTimingHistograms::deviceWithMinDelay_ [protected]

Definition at line 37 of file FedTimingHistograms.h.

std::auto_ptr<Factory> FedTimingHistograms::factory_ [protected]

Reimplemented from CommissioningHistograms.

Definition at line 32 of file FedTimingHistograms.h.

Referenced by createSummaryHisto().

float FedTimingHistograms::maxDelay_ [protected]

Definition at line 36 of file FedTimingHistograms.h.

float FedTimingHistograms::minDelay_ [protected]

Definition at line 35 of file FedTimingHistograms.h.

const float FedTimingHistograms::optimumSamplingPoint_ [protected]

Definition at line 34 of file FedTimingHistograms.h.


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