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
|
#ifndef SiPixelErrorsDigisToCalibDigis_h
#define SiPixelErrorsDigisToCalibDigis_h
/** class SiPixelErrorsDigisToCalibDigis
Description: Create monitorElements for the Errors in created in the reduction of digis to calibDigis
**/
// Original Author: Ricardo Vasquez Sierra on April 9, 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/ServiceRegistry/interface/Service.h"
#include "DataFormats/Common/interface/DetSetVector.h"
#include "DataFormats/DetId/interface/DetId.h"
#include "DataFormats/SiPixelDigi/interface/SiPixelCalibDigi.h"
#include "DataFormats/SiPixelDigi/interface/SiPixelCalibDigiError.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DQM/SiPixelCommon/interface/SiPixelHistogramId.h"
#include "DQM/SiPixelCommon/interface/SiPixelFolderOrganizer.h"
#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h"
#include "Geometry/CommonDetUnit/interface/PixelGeomDetType.h"
#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
#include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingMap.h"
//
// class declaration
//
class SiPixelErrorsDigisToCalibDigis : public edm::one::EDAnalyzer<> {
public:
typedef dqm::legacy::MonitorElement MonitorElement;
typedef dqm::legacy::DQMStore DQMStore;
explicit SiPixelErrorsDigisToCalibDigis(const edm::ParameterSet&);
~SiPixelErrorsDigisToCalibDigis() override;
MonitorElement* bookDQMHistogram2D(uint32_t detid,
std::string name,
std::string title,
int nchX,
double lowX,
double highX,
int nchY,
double lowY,
double highY);
MonitorElement* bookDQMHistoPlaquetteSummary2D(
uint32_t detid,
std::string name,
std::string
title); // take the detid to determine the size of rows and columns, this saves looking up everything in the cabling map by the user.
bool setDQMDirectory(std::string dirName);
bool setDQMDirectory(uint32_t detID); //automatically create directory hierachy based on DetID
protected:
edm::ESHandle<TrackerGeometry> geom_;
edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerGeomToken_;
private:
void analyze(const edm::Event&, const edm::EventSetup&) override;
void endJob() override;
// ----------member data ---------------------------
// store the number of error per detector id encountered
// store the location of the mismatching error in the detector id
edm::InputTag siPixelProducerLabel_;
edm::EDGetTokenT<edm::DetSetVector<SiPixelCalibDigiError> > tPixelCalibDigiError;
DQMStore* daqBE_;
SiPixelHistogramId* theHistogramIdWorker_;
std::string outputFilename_;
bool createOutputFile_;
SiPixelFolderOrganizer* folderMaker_;
std::map<uint32_t, MonitorElement*> SiPixelErrorsDigisToCalibDigis_2DErrorInformation_;
MonitorElement* temp;
};
#endif
|