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
|
/*----------------------------------------------------------------------
Toy EDProducers and EDProducts for testing purposes only.
----------------------------------------------------------------------*/
#include <stdexcept>
#include <string>
#include <iostream>
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "CondFormats/DataRecord/interface/BeamSpotObjectsRcd.h"
#include "CondFormats/BeamSpotObjects/interface/BeamSpotObjects.h"
#include "CondCore/CondDB/interface/Time.h"
#include "CondCore/CondDB/interface/ConnectionPool.h"
#include <fstream>
using namespace std;
namespace edmtest {
class LumiTestWriteReadAnalyzer : public edm::one::EDAnalyzer<> {
public:
explicit LumiTestWriteReadAnalyzer(edm::ParameterSet const& p);
explicit LumiTestWriteReadAnalyzer(int i) {}
virtual ~LumiTestWriteReadAnalyzer() {}
virtual void analyze(const edm::Event& e, const edm::EventSetup& c) override;
private:
const edm::ESGetToken<BeamSpotObjects, BeamSpotObjectsRcd> m_token;
};
LumiTestWriteReadAnalyzer::LumiTestWriteReadAnalyzer(edm::ParameterSet const&)
: m_token(esConsumes<BeamSpotObjects, BeamSpotObjectsRcd>()) {}
void LumiTestWriteReadAnalyzer::analyze(const edm::Event& e, const edm::EventSetup& context) {
static constexpr const char* const MSGSOURCE = "LumiTestWriteReadAnalyzer:";
edm::eventsetup::EventSetupRecordKey recordKey(
edm::eventsetup::EventSetupRecordKey::TypeTag::findType("BeamSpotObjectsRcd"));
if (recordKey.type() == edm::eventsetup::EventSetupRecordKey::TypeTag()) {
//record not found
edm::LogError(MSGSOURCE) << "Record \"BeamSpotObjectsRcd\" does not exist ";
}
auto const& payload = context.getData(m_token);
edm::LogInfo(MSGSOURCE) << "Event " << e.id().event() << " Run " << e.id().run() << " Lumi "
<< e.id().luminosityBlock() << " Time " << e.time().value() << " LumiTestPayload id "
<< payload.beamType() << std::endl;
unsigned int target = e.id().luminosityBlock();
unsigned int found = payload.beamType();
if (target != found) {
boost::posix_time::ptime now = boost::posix_time::microsec_clock::local_time();
std::stringstream msg;
msg << "On time " << boost::posix_time::to_iso_extended_string(now) << " Target " << target << "; found "
<< found;
edm::LogError(MSGSOURCE) << msg.str();
} else {
edm::LogInfo(MSGSOURCE) << "Read target payload was ok." << std::endl;
}
}
DEFINE_FWK_MODULE(LumiTestWriteReadAnalyzer);
} // namespace edmtest
|