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
|
#include "CondTools/Ecal/interface/EcalLaserHandler.h"
#include "CondTools/Ecal/interface/EcalMappingElectronicsHandler.h"
#include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
#include "DataFormats/EcalDetId/interface/EEDetId.h"
#include "DataFormats/EcalDetId/interface/EBDetId.h"
#include "DataFormats/EcalDetId/interface/EcalElectronicsId.h"
#include "DataFormats/EcalDetId/interface/EcalTriggerElectronicsId.h"
#include "DataFormats/Provenance/interface/Timestamp.h"
#include <iostream>
#include <memory>
EcalMappingElectronicsHandler::EcalMappingElectronicsHandler(const edm::ParameterSet &ps)
: txtFileSource_(ps.getUntrackedParameter<std::string>("txtFile")),
m_name(ps.getUntrackedParameter<std::string>("name", "EcalMappingElectronicsHandler")),
since_(ps.getUntrackedParameter<long long>("since", 1)) {
std::cout << "EcalMappingElectronics Source handler constructor\n" << std::endl;
}
EcalMappingElectronicsHandler::~EcalMappingElectronicsHandler() {}
void EcalMappingElectronicsHandler::getNewObjects() {
std::cout << "------- Ecal - > getNewObjects\n";
EcalMappingElectronics *payload = new EcalMappingElectronics;
std::unique_ptr<EcalMappingElectronics> mapping = std::make_unique<EcalMappingElectronics>();
//Filling map reading from file
edm::LogInfo("EcalMappingElectronicsHandler")
<< "Reading mapping from file " << edm::FileInPath(txtFileSource_).fullPath().c_str();
std::ifstream f(edm::FileInPath(txtFileSource_).fullPath().c_str());
if (!f.good()) {
edm::LogError("EcalMappingElectronicsHandler") << "File not found";
throw cms::Exception("FileNotFound");
}
// uint32_t detid, elecid, triggerid;
int ix, iy, iz, CL;
// int dccid, towerid, stripid, xtalid;
// int tccid, tower, ipseudostrip, xtalinps;
int dccid, towerid, pseudostrip_in_SC, xtal_in_pseudostrip;
int tccid, tower, pseudostrip_in_TCC, pseudostrip_in_TT;
while (!f.eof()) {
// f >> detid >> elecid >> triggerid;
f >> ix >> iy >> iz >> CL >> dccid >> towerid >> pseudostrip_in_SC >> xtal_in_pseudostrip >> tccid >> tower >>
pseudostrip_in_TCC >> pseudostrip_in_TT;
// if (!EEDetId::validDetId(ix,iy,iz))
// continue;
EEDetId detid(ix, iy, iz, EEDetId::XYMODE);
// std::cout << " dcc tower ps_in_SC xtal_in_ps " << dccid << " " << towerid << " " << pseudostrip_in_SC << " " << xtal_in_pseudostrip << std::endl;
EcalElectronicsId elecid(dccid, towerid, pseudostrip_in_SC, xtal_in_pseudostrip);
// std::cout << " tcc tt ps_in_TT xtal_in_ps " << tccid << " " << tower << " " << pseudostrip_in_TT << " " << xtal_in_pseudostrip << std::endl;
EcalTriggerElectronicsId triggerid(tccid, tower, pseudostrip_in_TT, xtal_in_pseudostrip);
EcalMappingElement aElement;
aElement.electronicsid = elecid.rawId();
aElement.triggerid = triggerid.rawId();
(*payload).setValue(detid, aElement);
}
f.close();
edm::LogInfo("EcalMappingElectronicsHandler") << "Reading completed ready to insert in DB";
//Filling completed transferring to DB
m_to_transfer.push_back(std::make_pair(payload, since_));
// delete payload;
}
|