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
123
|
// -*- C++ -*-
//
// Package: CondTools/SiPhase2Tracker
// Class: DTCCablingMapTestReader
//
/**\class DTCCablingMapTestReader DTCCablingMapTestReader.cc CondTools/SiPhase2Tracker/plugins/DTCCablingMapTestReader.cc
Description: [one line class summary]
Implementation:
[Notes on implementation]
*/
//
// Original Author: Luigi Calligaris, SPRACE, São Paulo, BR
// Created : Wed, 27 Feb 2019 21:41:13 GMT
//
//
#include <memory>
#include <utility>
#include <unordered_map>
#include <string>
#include <iostream>
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
#include "CondFormats/SiPhase2TrackerObjects/interface/TrackerDetToDTCELinkCablingMap.h"
#include "CondFormats/SiPhase2TrackerObjects/interface/DTCELinkId.h"
#include "CondFormats/DataRecord/interface/TrackerDetToDTCELinkCablingMapRcd.h"
class DTCCablingMapTestReader : public edm::one::EDAnalyzer<> {
public:
explicit DTCCablingMapTestReader(const edm::ParameterSet&);
~DTCCablingMapTestReader() override;
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
private:
void beginJob() override;
void analyze(const edm::Event&, const edm::EventSetup&) override;
void endJob() override;
// ----------member data ---------------------------
const edm::ESGetToken<TrackerDetToDTCELinkCablingMap, TrackerDetToDTCELinkCablingMapRcd> cablingMapToken_;
};
void DTCCablingMapTestReader::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
//The following says we do not know what parameters are allowed so do no validation
// Please change this to state exactly what you do use, even if it is no parameters
edm::ParameterSetDescription desc;
desc.setUnknown();
descriptions.add("DTCCablingMapTestReader", desc);
}
DTCCablingMapTestReader::DTCCablingMapTestReader(const edm::ParameterSet& iConfig) : cablingMapToken_(esConsumes()) {}
DTCCablingMapTestReader::~DTCCablingMapTestReader() {}
void DTCCablingMapTestReader::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
using namespace edm;
using namespace std;
const auto p_cablingMap = &iSetup.getData(cablingMapToken_);
{
ostringstream dump_DetToElink;
dump_DetToElink << "Det To DTC ELink map elements dump (Python-style):" << endl;
std::vector<uint32_t> const knownDetIds = p_cablingMap->getKnownDetIds();
dump_DetToElink << "{";
for (uint32_t detId : knownDetIds) {
dump_DetToElink << "(" << detId << " : [";
auto equal_range = p_cablingMap->detIdToDTCELinkId(detId);
for (auto it = equal_range.first; it != equal_range.second; ++it)
dump_DetToElink << "(" << unsigned(it->second.dtc_id()) << ", " << unsigned(it->second.gbtlink_id()) << ", "
<< unsigned(it->second.elink_id()) << "), ";
dump_DetToElink << "], ";
}
dump_DetToElink << "}" << endl;
edm::LogInfo("DetToElinkCablingMapDump") << dump_DetToElink.str();
}
{
ostringstream dump_ElinkToDet;
dump_ElinkToDet << "DTC Elink To Det map elements dump (Python-style):" << endl;
std::vector<DTCELinkId> const knownDTCELinkIds = p_cablingMap->getKnownDTCELinkIds();
dump_ElinkToDet << "{";
for (DTCELinkId const& currentELink : knownDTCELinkIds) {
dump_ElinkToDet << "(" << unsigned(currentELink.dtc_id()) << ", " << unsigned(currentELink.gbtlink_id()) << ", "
<< unsigned(currentELink.elink_id()) << ") "
<< " : ";
auto detId_it = p_cablingMap->dtcELinkIdToDetId(currentELink);
dump_ElinkToDet << detId_it->second << ", ";
}
dump_ElinkToDet << "}" << endl;
edm::LogInfo("DetToElinkCablingMapDump") << dump_ElinkToDet.str();
}
}
void DTCCablingMapTestReader::beginJob() {}
void DTCCablingMapTestReader::endJob() {}
//define this as a plug-in
DEFINE_FWK_MODULE(DTCCablingMapTestReader);
|