Algorithm for APV latency scan.
- Author
- M. Wingham, R.Bainbridge
Definition at line 16 of file ApvLatencyAlgorithm.h.
void ApvLatencyAlgorithm::analyse |
( |
| ) |
|
|
overrideprivatevirtual |
Performs histogram anaylsis.
Implements CommissioningAlgorithm.
Definition at line 61 of file ApvLatencyAlgorithm.cc.
References CommissioningAnalysis::addErrorCode(), CommissioningAlgorithm::anal(), submitPVResolutionJobs::count, histo(), histo_, combine::histos, dqmdumpme::k, config_102169_raw_cff::latency, sistrip::mlCommissioning_, sistrip::nullPtr_, jetsAK4_CHS_cff::sort, mathSSE::sqrt(), and createJobs::tmp.
64 <<
" NULL pointer to base Analysis object!";
72 <<
" NULL pointer to derived Analysis object!";
78 std::vector<const TProfile*>
histos;
79 std::vector<unsigned short> monitorables;
84 histos.push_back(const_cast<const TProfile*>(dynamic_cast<TProfile*>(
histo_.first)));
98 monitorables.push_back(0);
106 std::vector<unsigned short> binContent;
107 binContent.reserve((
unsigned short)
histo->GetNbinsX());
108 binContent.resize((
unsigned short)
histo->GetNbinsX(), 0);
110 for (
unsigned short k = 0;
k < (
unsigned short)
histo->GetNbinsX();
k++) {
113 binContent.push_back((
unsigned int)(
histo->GetBinContent(
k)));
118 sort(binContent.begin(), binContent.end());
122 float meanNoise = 0.;
123 float mean2Noise = 0.;
125 for (
unsigned short k = (
unsigned short)(binContent.size() * .1);
k < (
unsigned short)(binContent.size() * .9);
k++) {
126 meanNoise += binContent[
k];
127 mean2Noise += binContent[
k] * binContent[
k];
131 meanNoise = meanNoise * binContent.size() * 0.8;
132 mean2Noise = mean2Noise * binContent.size() * 0.8;
133 float sigmaNoise =
sqrt(fabs(meanNoise * meanNoise - mean2Noise));
136 unsigned short count = 0;
137 unsigned short maxlatency = 0;
138 unsigned int maxhits = 0;
140 for (
unsigned short k = 1;
k < ((
unsigned short)
histo->GetNbinsX() + 1);
k++) {
141 if (
histo->GetBinContent((Int_t)
k) > maxhits)
143 if ((
float)
histo->GetBinContent((Int_t)
k) > (meanNoise + 5 * sigmaNoise)) {
160 monitorables.clear();
161 monitorables.push_back(
latency);
163 anal->latency_ = monitorables[0];
CommissioningAnalysis *const anal() const
static const char mlCommissioning_[]
virtual void addErrorCode(const std::string &error)
Analysis for APV latency scan.
const Histo & histo() const
Abstract base for derived classes that provide analysis of commissioning histograms.
Log< level::Warning, false > LogWarning
static const char nullPtr_[]