22 factory_ = std::make_unique<ApvTimingSummaryFactory>();
24 <<
" Constructing object...";
31 <<
" Destructing object...";
41 HistosMap::const_iterator iter;
42 Analyses::iterator ianal;
43 std::map<std::string, uint16_t>
errors;
46 for (ianal =
data().begin(); ianal !=
data().end(); ianal++) {
60 for (iter =
histos().begin(); iter !=
histos().end(); iter++) {
62 if (iter->second.empty()) {
64 <<
" Zero histograms found!";
69 std::vector<TH1*> profs;
70 Histos::const_iterator ihis = iter->second.begin();
71 for (; ihis != iter->second.end(); ihis++) {
74 profs.push_back(prof);
85 if (!
anal->foundTickMark()) {
90 if (
anal->time() > time_max) {
91 time_max =
anal->time();
92 device_max = iter->first;
96 if (
anal->time() < time_min) {
97 time_min =
anal->time();
98 device_min = iter->first;
105 <<
" Unable to set maximum time! Found unexpected value: " << time_max;
110 <<
" Crate/FEC/Ring/CCU/module/channel: " <<
min.fecCrate() <<
"/" <<
min.fecSlot()
111 <<
"/" <<
min.fecRing() <<
"/" <<
min.ccuAddr() <<
"/" <<
min.ccuChan() <<
"/" 112 <<
min.lldChan() <<
" has minimum time for tick mark rising edge [ns]: " << time_min;
116 <<
" Crate/FEC/Ring/CCU/module/channel: " <<
max.fecCrate() <<
"/" <<
max.fecSlot()
117 <<
"/" <<
max.fecRing() <<
"/" <<
max.ccuAddr() <<
"/" <<
max.ccuChan() <<
"/" 118 <<
max.lldChan() <<
" has maximum time for tick mark rising edge [ns]: " << time_max;
121 <<
" Difference b/w minimum and maximum times" 122 <<
" for tick mark rising edges [ns] is: " << (time_max - time_min);
126 for (ianal =
data().begin(); ianal !=
data().end(); ianal++) {
131 anal->refTime(time_max, this->
pset().getParameter<int>(
"TargetDelay"));
132 if (
anal->isValid()) {
135 if (!
anal->getErrorCodes().empty()) {
142 <<
" Analyzed histograms for " <<
histos().size() <<
" FED channels, of which " 146 <<
" No histograms to analyze!";
151 <<
" Analyzed histograms for " <<
histos().size() <<
" FED channels, of which " 155 std::stringstream
ss;
157 std::map<std::string, uint16_t>::const_iterator
ii;
159 ss <<
" " <<
ii->first <<
": " <<
ii->second << std::endl;
164 <<
"%): " <<
ss.str();
168 <<
" No histograms to analyze!";
Log< level::Info, true > LogVerbatim
const HistosMap & histos() const
Analyses & data(bool getMaskedData=false)
Analysis for timing run using APV tick marks.
static const char mlDqmClient_[]
static const uint16_t valid_
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
void histoAnalysis(bool debug) override
int extract(std::vector< int > *output, const std::string &dati)
std::unique_ptr< Factory > factory_
static const uint16_t invalid_
const edm::ParameterSet & pset() const
Log< level::Warning, false > LogWarning
Analysis for timing run using APV tick marks.
~ApvTimingHistograms() override
ApvTimingHistograms(const edm::ParameterSet &pset, DQMStore *)