42 {
43
44
45 string type =
"default";
46 string currentLine;
48
49
50 while((currentLine != "<end_file>") && (currentLine != "</file>")) {
51
52
53 std::getline(
m_fs, currentLine);
55 cout << currentLine << endl;
56
57
58
59 if(currentLine == "<end_file>" || currentLine == "</file>") return false;
60 if(currentLine == "<end_event>" || currentLine == "</event>") break;
61 if(currentLine ==
"<cluster>" || currentLine ==
"<eEm>" || currentLine ==
"<eTau>" || currentLine ==
"<jet>" || currentLine ==
"<jTau>" || currentLine ==
"<jEm>" || currentLine ==
"<jLJet>" || currentLine ==
"<gLJet>" || currentLine ==
"<jJet>" || currentLine ==
"<gJet>" || currentLine ==
"<muon>" || currentLine ==
"<lateMuon>" || currentLine ==
"<muonNextBC>" || currentLine ==
"<tau>" || currentLine ==
"<met>" || currentLine ==
"<info>")
type = currentLine;
62 if(currentLine ==
"</cluster>" || currentLine ==
"</eEm>" || currentLine ==
"</eTau>" || currentLine ==
"</jet>" || currentLine ==
"</jTau>" || currentLine ==
"</jEm>" || currentLine ==
"</jLJet>" || currentLine ==
"</gLJet>" || currentLine ==
"</jJet>" || currentLine ==
"</gJet>" || currentLine ==
"</muon>" || currentLine ==
"</lateMuon>" || currentLine ==
"</muonNextBC>" || currentLine ==
"</tau>" || currentLine ==
"</met>" || currentLine ==
"</info>") {
type =
"";
continue; }
63 if(currentLine == "<begin_file>" || currentLine == "<file>" || currentLine == "<begin_event>" || currentLine == "<event>" || currentLine == "<cluster>" || currentLine == "<eEm>" || currentLine == "<eTau>" || currentLine == "<jet>" || currentLine == "<jTau>" || currentLine == "<jEm>" || currentLine == "<jLJet>" || currentLine == "<gLJet>" || currentLine == "<jJet>" || currentLine == "<gJet>" || currentLine == "<muon>" || currentLine == "<lateMuon>" || currentLine == "<muonNextBC>" || currentLine == "<tau>" || currentLine == "<met>" || currentLine == "<info>") continue;
64
65
66 std::stringstream
ss(currentLine);
67 std::istream_iterator<std::string>
it(
ss);
68 std::istream_iterator<std::string>
end;
69 std::vector<std::string>
results(it, end);
70
71
72
73 if(
results.size() == 0)
continue;
74
75
76 if(type == "<cluster>") {
81 }
83 } else if(type == "<eEm>") {
91 }
93 } else if(type == "<eTau>") {
100 }
102 } else if(type == "<tau>") {
107 }
109 } else if(type == "<jet>") {
114 }
116 } else if(type == "<jTau>") {
121 }
123 } else if(type == "<jEm>") {
128 }
130 } else if(type == "<jLJet>") {
135 }
137 } else if(type == "<gLJet>") {
142 }
144 } else if(type == "<jJet>") {
149 }
151 } else if(type == "<gJet>") {
156 }
158 } else if(type == "<muon>") {
162 TCS::MuonTOB
muon(
et, 0,
eta,
static_cast<unsigned int>(
phi) );
166 }
168 } else if(type == "<lateMuon>") {
172 TCS::LateMuonTOB latemuon(
et, 0,
eta,
phi );
174 latemuon.setEtaDouble(
atof(
results.at(3).c_str()) );
175 latemuon.setPhiDouble(
atof(
results.at(4).c_str()) );
176 }
177 m_event->addLateMuon( latemuon );
178 } else if(type == "<muonNextBC>") {
182 TCS::MuonNextBCTOB nextbcmuon(
et, 0,
eta,
phi );
184 nextbcmuon.setEtaDouble(
atof(
results.at(3).c_str()) );
185 nextbcmuon.setPhiDouble(
atof(
results.at(4).c_str()) );
186 }
187 m_event->addMuonNextBC( nextbcmuon );
188 } else if(type == "<met>") {
192 TCS::MetTOB met( ex, ey,
et );
194 } else if(type == "<info>") {
199 m_event->setEventInfo(runNo, evtNo, lumiB, BCID);
200 } else {
201 TCS_EXCEPTION(
"TOB for this event is of unknown type " << type<<
": '"<<currentLine<<
"'");
202
203 }
204 }
205
207
208 return true;
209}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
float et(const xAOD::jFexSRJetRoI *j)
#define TCS_EXCEPTION(MSG)
TCS::TopoInputEvent * m_event
double atof(std::string_view str)
Converts a string into a double / float.
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]