17 if (m_infile && m_infile->IsOpen()) m_infile->Close();
25 return StatusCode::FAILURE;
28 if (
m_rwoption.value() == std::string(
"READ")) {
30 m_EventTree = (TTree*) m_infile->Get(
"FPGATrackSimLogicalEventTree");
31 if (!m_EventTree || m_EventTree->GetEntries() == -1) {
33 return StatusCode::FAILURE;
36 ATH_MSG_INFO (
"Input file: " <<
path <<
" has " << m_EventTree->GetEntries() <<
" event entries.");
41 return StatusCode::FAILURE;
44 branchIn_1st->SetAddress(&m_eventInputHeader_1st);
50 return StatusCode::FAILURE;
53 branchIn_2nd->SetAddress(&m_eventInputHeader_2nd);
57 if (!m_EventTree->GetListOfBranches()->FindObject(
m_branchNameOut.c_str())) {
59 return StatusCode::FAILURE;
62 branchOut->SetAddress(&m_eventOutputHeader);
67 return StatusCode::SUCCESS;
88 return StatusCode::FAILURE;
93 if (
m_rwoption.value() == std::string(
"READ")) {
96 else if (
m_rwoption.value()==std::string(
"RECREATE") ||
m_rwoption.value()==std::string(
"HEADER")) {
99 m_EventTree =
new TTree(
"FPGATrackSimLogicalEventTree",
"data");
102 "FPGATrackSimLogicalEventInputHeader",
103 &m_eventInputHeader_1st);
106 "FPGATrackSimLogicalEventInputHeader",
107 &m_eventInputHeader_2nd);
110 "FPGATrackSimLogicalEventOutputHeader",
111 &m_eventOutputHeader);
115 return StatusCode::FAILURE;
120 return StatusCode::SUCCESS;
129 if (
m_rwoption.value() == std::string(
"RECREATE")) {
130 ATH_MSG_INFO (
"Contains " << m_EventTree->GetEntries() <<
" entries, over " <<
m_event <<
" events run");
135 if (
m_rwoption.value() != std::string(
"HEADER")) {
139 delete m_eventInputHeader_1st ;
140 delete m_eventOutputHeader;
142 return StatusCode::SUCCESS;
149 if (
m_rwoption.value() == std::string(
"READ")) {
151 return StatusCode::SUCCESS;
156 *m_eventInputHeader_1st = *INheader_1st;
162 *m_eventInputHeader_2nd = *INheader_2nd;
168 *m_eventOutputHeader = *OUTheader;
174 if (m_eventInputHeader_1st) {
175 ATH_MSG_DEBUG (
"Wrote Event " <<
m_event <<
" in first stage header event " << m_eventInputHeader_1st->event());
177 ATH_MSG_ERROR(
"m_eventInputHeader_1st is null in FPGATrackSimOutputHeaderTool::writeData");
178 return StatusCode::FAILURE;
181 ATH_MSG_DEBUG (
"Wrote Event " <<
m_event <<
" in second stage header event " << m_eventInputHeader_2nd->event());
183 if (m_eventOutputHeader) {
184 ATH_MSG_DEBUG (
"n.roads_1st = " << m_eventOutputHeader->nFPGATrackSimRoads_1st());
185 ATH_MSG_DEBUG (
"n.roads_2nd = " << m_eventOutputHeader->nFPGATrackSimRoads_2nd());
186 ATH_MSG_DEBUG (
"n.tracks_1st = " << m_eventOutputHeader->nFPGATrackSimTracks_1st());
187 ATH_MSG_DEBUG (
"n.tracks_2nd = " << m_eventOutputHeader->nFPGATrackSimTracks_2nd());
189 ATH_MSG_ERROR(
"m_eventOutputHeader is null in FPGATrackSimOutputHeaderTool::writeData");
190 return StatusCode::FAILURE;
195 m_eventInputHeader_1st->reset();
196 if (
m_runSecondStage and m_eventInputHeader_2nd) m_eventInputHeader_2nd->reset();
197 m_eventOutputHeader->reset();
199 return StatusCode::SUCCESS;
205 if (
m_rwoption.value() != std::string(
"READ")) {
207 return StatusCode::SUCCESS;
210 m_eventInputHeader_1st->reset();
211 m_eventOutputHeader->reset();
216 if (
m_event >= m_EventTree->GetEntries()) {
222 return StatusCode::SUCCESS;
239 ATH_MSG_DEBUG (
"Asked in first stage header event: " << m_eventInputHeader_1st->event());
242 ATH_MSG_DEBUG (
"n.roads_1st = " << m_eventOutputHeader->nFPGATrackSimRoads_1st());
243 ATH_MSG_DEBUG (
"n.tracks_1st = " << m_eventOutputHeader->nFPGATrackSimTracks_1st());
246 ATH_MSG_DEBUG (
"n.roads_2nd = " << m_eventOutputHeader->nFPGATrackSimRoads_2nd());
247 ATH_MSG_DEBUG (
"n.tracks_2nd = " << m_eventOutputHeader->nFPGATrackSimTracks_2nd());
250 *INheader_1st = *m_eventInputHeader_1st;
251 *OUTheader = *m_eventOutputHeader;
258 return StatusCode::SUCCESS;