CondTools
DQM
plugins
DQMXMLFileEventSetupAnalyzer.cc
Go to the documentation of this file.
1
// C++ common header
2
#include <iostream>
3
#include <memory>
4
#include <vector>
5
#include <fstream>
6
7
#include "
FWCore/Framework/interface/EDAnalyzer.h
"
8
#include "
FWCore/Framework/interface/Run.h
"
9
#include "
FWCore/Framework/interface/Event.h
"
10
#include "
FWCore/Framework/interface/EventSetup.h
"
11
#include "
FWCore/Framework/interface/MakerMacros.h
"
12
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
13
#include "
FWCore/Framework/interface/ESHandle.h
"
14
#include "
FWCore/Utilities/interface/Exception.h
"
15
#include "
FWCore/ServiceRegistry/interface/Service.h
"
16
#include "
CondFormats/Common/interface/FileBlob.h
"
17
#include "
CondFormats/DataRecord/interface/DQMXMLFileRcd.h
"
18
#include "
DQMServices/Core/interface/DQMStore.h
"
19
20
namespace
edmtest
{
21
class
DQMXMLFileEventSetupAnalyzer
:
public
edm::EDAnalyzer
{
22
public
:
23
explicit
DQMXMLFileEventSetupAnalyzer
(
const
edm::ParameterSet
&
pset
);
24
explicit
DQMXMLFileEventSetupAnalyzer
(
int
i
);
25
~DQMXMLFileEventSetupAnalyzer
()
override
;
26
void
analyze
(
const
edm::Event
&
event
,
const
edm::EventSetup
&
setup
)
override
;
27
void
beginRun
(
edm::Run
const
&,
edm::EventSetup
const
&)
override
;
28
29
private
:
30
bool
init_
;
31
std::string
labelToGet_
;
32
};
33
34
DQMXMLFileEventSetupAnalyzer::DQMXMLFileEventSetupAnalyzer
(
const
edm::ParameterSet
& ps)
35
: labelToGet_(ps.getParameter<
std
::
string
>(
"labelToGet"
)) {
36
init_
=
false
;
37
//std::cout << "DQMXMLFileEventSetupAnalyzer(const edm::ParameterSet &ps)" << std::endl;
38
}
39
40
DQMXMLFileEventSetupAnalyzer::DQMXMLFileEventSetupAnalyzer
(
int
i
) {
41
init_
=
false
;
42
//std::cout << "DQMXMLFileEventSetupAnalyzer(int i) " << i << std::endl;
43
}
44
45
DQMXMLFileEventSetupAnalyzer::~DQMXMLFileEventSetupAnalyzer
() {
46
init_
=
false
;
47
//std::cout << "~DQMXMLFileEventSetupAnalyzer" << std::endl;
48
}
49
50
void
DQMXMLFileEventSetupAnalyzer::analyze
(
const
edm::Event
&
iEvent
,
const
edm::EventSetup
& iSetup) {
return
; }
51
52
void
DQMXMLFileEventSetupAnalyzer::beginRun
(
edm::Run
const
&
run
,
edm::EventSetup
const
& iSetup) {
53
//std::cout << "DQMXMLFileEventSetupAnalyzer::beginRun()" << std::endl;
54
if
(!
init_
) {
55
init_
=
true
;
56
edm::eventsetup::EventSetupRecordKey
recordKey(
57
edm::eventsetup::EventSetupRecordKey::TypeTag::findType
(
"DQMXMLFileRcd"
));
58
if
(recordKey.
type
() ==
edm::eventsetup::EventSetupRecordKey::TypeTag
()) {
59
throw
cms::Exception
(
"Record not found"
) <<
"Record \"DQMXMLFileRcd"
60
<<
"\" does not exist!"
<< std::endl;
61
}
62
edm::ESHandle<FileBlob>
rootgeo;
63
iSetup.
get
<
DQMXMLFileRcd
>().
get
(
labelToGet_
, rootgeo);
64
//std::cout<<"XML FILE IN MEMORY 1 with label " << labelToGet_ <<std::endl;
65
std::unique_ptr<std::vector<unsigned char> > tb1((*rootgeo).getUncompressedBlob());
66
//here you can implement the stream for putting the TFile on disk...
67
std::string
outfile1(
"XML1_retrieved.xml"
);
68
std::ofstream
output1
(outfile1.c_str());
69
output1
.write((
const
char
*)&(*tb1)[0], tb1->size());
70
output1
.close();
71
72
// iSetup.get<DQMXMLFileRcd>().get("XML2_mio",rootgeo);
73
// std::cout<<"ROOT FILE IN MEMORY 2"<<std::endl;
74
// std::unique_ptr<std::vector<unsigned char> > tb2( (*rootgeo).getUncompressedBlob() );
75
// //here you can implement the stream for putting the TFile on disk...
76
// std::string outfile2("XML2_retrieved.xml") ;
77
// std::ofstream output2(outfile2.c_str()) ;
78
// output2.write((const char *)&(*tb2)[0], tb2->size());
79
// output2.close() ;
80
// std::unique_ptr<std::vector<unsigned char> > tb( (*rootgeo).getUncompressedBlob() );
81
}
82
}
83
84
DEFINE_FWK_MODULE
(
DQMXMLFileEventSetupAnalyzer
);
85
}
// namespace edmtest
edm::eventsetup::heterocontainer::HCTypeTag::findType
static HCTypeTag findType(char const *iTypeName)
find a type based on the types name, if not found will return default HCTypeTag
Definition:
HCTypeTag.cc:121
mps_fire.i
i
Definition:
mps_fire.py:355
skim900GeV_StreamA_MinBiasPD_cfg.output1
output1
Definition:
skim900GeV_StreamA_MinBiasPD_cfg.py:212
ESHandle.h
edm::Run
Definition:
Run.h:45
edmtest
Definition:
AlignPCLThresholdsReader.cc:12
edmtest::DQMXMLFileEventSetupAnalyzer::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition:
DQMXMLFileEventSetupAnalyzer.cc:52
DQMStore.h
edmtest::DQMXMLFileEventSetupAnalyzer::DQMXMLFileEventSetupAnalyzer
DQMXMLFileEventSetupAnalyzer(const edm::ParameterSet &pset)
Definition:
DQMXMLFileEventSetupAnalyzer.cc:34
EDAnalyzer.h
edmtest::DQMXMLFileEventSetupAnalyzer::analyze
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
Definition:
DQMXMLFileEventSetupAnalyzer.cc:50
FileBlob.h
edm::eventsetup::EventSetupRecordKey
Definition:
EventSetupRecordKey.h:30
singleTopDQM_cfi.setup
setup
Definition:
singleTopDQM_cfi.py:37
edmtest::DQMXMLFileEventSetupAnalyzer::labelToGet_
std::string labelToGet_
Definition:
DQMXMLFileEventSetupAnalyzer.cc:31
edm::EDAnalyzer
Definition:
EDAnalyzer.h:29
MakerMacros.h
edm::EventSetup::get
T get() const
Definition:
EventSetup.h:73
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition:
MakerMacros.h:16
Service.h
Run.h
edm::ESHandle
Definition:
DTSurvey.h:22
edm::eventsetup::EventSetupRecordKey::TypeTag
heterocontainer::HCTypeTag TypeTag
Definition:
EventSetupRecordKey.h:32
DQMXMLFileRcd.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSet
Definition:
ParameterSet.h:36
edmtest::DQMXMLFileEventSetupAnalyzer::~DQMXMLFileEventSetupAnalyzer
~DQMXMLFileEventSetupAnalyzer() override
Definition:
DQMXMLFileEventSetupAnalyzer.cc:45
Event.h
DQMXMLFileRcd
Definition:
DQMXMLFileRcd.h:24
edm::eventsetup::EventSetupRecordKey::type
const TypeTag & type() const
Definition:
EventSetupRecordKey.h:40
iEvent
int iEvent
Definition:
GenABIO.cc:224
edm::EventSetup
Definition:
EventSetup.h:57
get
#define get
std
Definition:
JetResolutionObject.h:76
writedatasetfile.run
run
Definition:
writedatasetfile.py:27
Exception
Definition:
hltDiff.cc:246
EventSetup.h
Exception.h
ParameterSet.h
event
Definition:
event.py:1
edmtest::DQMXMLFileEventSetupAnalyzer
Definition:
DQMXMLFileEventSetupAnalyzer.cc:21
edm::Event
Definition:
Event.h:73
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
edmtest::DQMXMLFileEventSetupAnalyzer::init_
bool init_
Definition:
DQMXMLFileEventSetupAnalyzer.cc:30
Generated for CMSSW Reference Manual by
1.8.16