45 string type =
"default";
50 while((currentLine !=
"<end_file>") && (currentLine !=
"</file>")) {
53 std::getline(
m_fs, currentLine);
55 cout << currentLine << endl;
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;
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);
73 if(results.size() == 0)
continue;
76 if(
type ==
"<cluster>") {
77 TCS::ClusterTOB cl(
TCS::ClusterTOB(atoi(results.at(0).c_str()),atoi(results.at(1).c_str()),atoi(results.at(2).c_str()),atoi(results.at(3).c_str())));
78 if(results.size()==6) {
79 cl.setEtaDouble( atof(results.at(4).c_str()) );
80 cl.setPhiDouble( atof(results.at(5).c_str()) );
83 }
else if(
type ==
"<eEm>") {
84 TCS::eEmTOB eEm(
TCS::eEmTOB( atoi(results.at(0).c_str()),atoi(results.at(4).c_str()),atoi(results.at(5).c_str()) ));
85 if(results.size()==8) {
88 eEm.
setReta( atof(results.at(1).c_str()) );
89 eEm.
setRhad( atof(results.at(2).c_str()) );
90 eEm.
setWstot( atof(results.at(3).c_str()) );
93 }
else if(
type ==
"<eTau>") {
94 TCS::eTauTOB eTau( atoi(results.at(0).c_str()),atoi(results.at(3).c_str()),atoi(results.at(4).c_str()) );
95 if(results.size()==7) {
98 eTau.
setRCore( atof(results.at(1).c_str()) );
99 eTau.
setRHad( atof(results.at(2).c_str()) );
102 }
else if(
type ==
"<tau>") {
103 TCS::ClusterTOB tau(
TCS::ClusterTOB(atoi(results.at(0).c_str()),atoi(results.at(1).c_str()),atoi(results.at(2).c_str()),atoi(results.at(3).c_str())));
104 if(results.size()==6) {
109 }
else if(
type ==
"<jet>") {
110 TCS::JetTOB jet( atoi(results.at(0).c_str()),atoi(results.at(1).c_str()),atoi(results.at(2).c_str()),atoi(results.at(3).c_str()) );
111 if(results.size()==6) {
112 jet.setEtaDouble( atof(results.at(4).c_str()) );
113 jet.setPhiDouble( atof(results.at(5).c_str()) );
116 }
else if(
type ==
"<jTau>") {
117 TCS::jTauTOB tau( atoi(results.at(0).c_str()),0,atoi(results.at(1).c_str()),atoi(results.at(2).c_str()) );
118 if(results.size()==5) {
123 }
else if(
type ==
"<jEm>") {
124 TCS::jEmTOB jEm( atoi(results.at(0).c_str()), atoi(results.at(1).c_str()), atoi(results.at(2).c_str()));
125 if(results.size()==5){
130 }
else if(
type ==
"<jLJet>") {
131 TCS::jLJetTOB jet( atoi(results.at(0).c_str()),atoi(results.at(1).c_str()),atoi(results.at(2).c_str()) );
132 if(results.size()==5) {
133 jet.setEtaDouble( atof(results.at(3).c_str()) );
134 jet.setPhiDouble( atof(results.at(4).c_str()) );
137 }
else if(
type ==
"<gLJet>") {
138 TCS::gLJetTOB jet( atoi(results.at(0).c_str()),atoi(results.at(1).c_str()),atoi(results.at(2).c_str()) );
139 if(results.size()==5) {
140 jet.setEtaDouble( atof(results.at(3).c_str()) );
141 jet.setPhiDouble( atof(results.at(4).c_str()) );
144 }
else if(
type ==
"<jJet>") {
145 TCS::jJetTOB jet( atoi(results.at(0).c_str()),atoi(results.at(1).c_str()),atoi(results.at(2).c_str()) );
146 if(results.size()==5) {
147 jet.setEtaDouble( atof(results.at(3).c_str()) );
148 jet.setPhiDouble( atof(results.at(4).c_str()) );
151 }
else if(
type ==
"<gJet>") {
152 TCS::gJetTOB jet( atoi(results.at(0).c_str()),atoi(results.at(1).c_str()),atoi(results.at(2).c_str()) );
153 if(results.size()==5) {
154 jet.setEtaDouble( atof(results.at(3).c_str()) );
155 jet.setPhiDouble( atof(results.at(4).c_str()) );
158 }
else if(
type ==
"<muon>") {
159 unsigned int et = atoi(results.at(0).c_str());
160 int eta = atoi(results.at(1).c_str());
161 int phi = atoi(results.at(2).c_str());
163 if(results.size()==5) {
164 muon.setEtaDouble( atof(results.at(3).c_str()) );
165 muon.setPhiDouble( atof(results.at(4).c_str()) );
168 }
else if(
type ==
"<lateMuon>") {
169 unsigned int et = atoi(results.at(0).c_str());
170 int eta = atoi(results.at(1).c_str());
171 int phi = atoi(results.at(2).c_str());
173 if(results.size()==5) {
177 m_event->addLateMuon( latemuon );
178 }
else if(
type ==
"<muonNextBC>") {
179 unsigned int et = atoi(results.at(0).c_str());
180 int eta = atoi(results.at(1).c_str());
181 int phi = atoi(results.at(2).c_str());
183 if(results.size()==5) {
187 m_event->addMuonNextBC( nextbcmuon );
188 }
else if(
type ==
"<met>") {
189 int ex = atoi(results.at(0).c_str());
190 int ey = atoi(results.at(1).c_str());
191 int et = atoi(results.at(2).c_str());
194 }
else if(
type ==
"<info>") {
195 uint32_t runNo = atol(results.at(0).c_str());
196 uint32_t evtNo = atol(results.at(1).c_str());
197 uint32_t lumiB = atol(results.at(2).c_str());
198 uint32_t BCID = atol(results.at(3).c_str());
199 m_event->setEventInfo(runNo, evtNo, lumiB, BCID);
201 TCS_EXCEPTION(
"TOB for this event is of unknown type " <<
type<<
": '"<<currentLine<<
"'");