![]() |
![]() |
#include <DQM/SiStripCommissioningClients/interface/FedTimingHistograms.h>
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< Factory > | factory_ |
float | maxDelay_ |
float | minDelay_ |
const float | optimumSamplingPoint_ |
Definition at line 10 of file FedTimingHistograms.h.
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().
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 }
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 }
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.