1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
#ifndef ROC__Analyzer_h
#define ROC__Analyzer_h
// -*- C++ -*-
//
// Package: SiPixelDQMRocLevelAnalyzer
// Class: SiPixelDQMRocLevelAnalyzer
//
/**\class SiPixelDQMRocLevelAnalyzer SiPixelDQMRocLevelAnalyzer.cc DQM/SiPixelDQMRocLevelAnalyzer/src/SiPixelDQMRocLevelAnalyzer.cc
Description: <one line class summary>
Implementation:
<Notes on implementation>
*/
//
// Original Author: Lukas Wehrli
// Created: Thu Sep 30 14:03:02 CEST 2008
//
//
// system include files
#include <memory>
// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "CommonTools/UtilAlgos/interface/TFileService.h"
#include <string>
#include "TH1D.h"
#include "TFile.h"
#include <cmath>
//
// class decleration
//
class SiPixelDQMRocLevelAnalyzer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
public:
typedef dqm::legacy::MonitorElement MonitorElement;
typedef dqm::legacy::DQMStore DQMStore;
explicit SiPixelDQMRocLevelAnalyzer(const edm::ParameterSet &);
~SiPixelDQMRocLevelAnalyzer() override;
private:
void beginJob() override;
void analyze(const edm::Event &, const edm::EventSetup &) override;
void endJob() override;
//
void RocSummary(std::string tagname);
void RocSumOneModule(int maxr,
int maxc,
MonitorElement *const &me,
std::vector<double> &vecCN,
std::vector<double> &vecMean,
std::vector<double> &vecSD,
int &chipNumber);
void FillRocLevelHistos(TH1F *hrocdep, TH1F *hdist, std::vector<double> &vecx, std::vector<double> &vecy);
// ----------member data ---------------------------
edm::ParameterSet conf_;
DQMStore *dbe;
edm::Service<TFileService> fs_;
std::vector<MonitorElement *> mes;
bool bRS, fRS, bPixelAlive;
std::vector<double> vbpixCN;
std::vector<double> vbpixM;
std::vector<double> vbpixSD;
std::vector<double> vfpixCN;
std::vector<double> vfpixM;
std::vector<double> vfpixSD;
//barrel
TH1F *bhPixelAlive;
TH1F *bhPixelAlive_dist;
TH1F *bhThresholdMean;
TH1F *bhThresholdMean_dist;
TH1F *bhThresholdRMS;
TH1F *bhThresholdRMS_dist;
TH1F *bhNoiseMean;
TH1F *bhNoiseMean_dist;
TH1F *bhNoiseRMS;
TH1F *bhNoiseRMS_dist;
TH1F *bhGainMean;
TH1F *bhGainMean_dist;
TH1F *bhGainRMS;
TH1F *bhGainRMS_dist;
TH1F *bhPedestalMean;
TH1F *bhPedestalMean_dist;
TH1F *bhPedestalRMS;
TH1F *bhPedestalRMS_dist;
//endcap
TH1F *ehPixelAlive;
TH1F *ehPixelAlive_dist;
TH1F *ehThresholdMean;
TH1F *ehThresholdMean_dist;
TH1F *ehThresholdRMS;
TH1F *ehThresholdRMS_dist;
TH1F *ehNoiseMean;
TH1F *ehNoiseMean_dist;
TH1F *ehNoiseRMS;
TH1F *ehNoiseRMS_dist;
TH1F *ehGainMean;
TH1F *ehGainMean_dist;
TH1F *ehGainRMS;
TH1F *ehGainRMS_dist;
TH1F *ehPedestalMean;
TH1F *ehPedestalMean_dist;
TH1F *ehPedestalRMS;
TH1F *ehPedestalRMS_dist;
};
#endif
|