ATLAS Offline Software
Loading...
Searching...
No Matches
PropResultRootWriterSvc.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3 */
4
6#include "TFile.h"
7#include <vector>
8#include <deque>
9#include <mutex>
10#include <thread>
11
12
13
14Trk::PropResultRootWriterSvc::PropResultRootWriterSvc(const std::string& name, ISvcLocator* svc)
15 : AthService(name, svc),
16 m_thistSvc("THistSvc", name),
17 m_tree(nullptr) {
18}
19
21
23 ATH_CHECK(AthService::initialize());
24
25 CHECK(m_thistSvc.retrieve());
26
27 const std::string treeName = m_treeName;
28 m_tree = new TTree(treeName.data(), "MyStudies");
29
30 std::string fullNtupleName = static_cast<std::string>(m_ntupleDirName) + m_treeName;
31 CHECK(m_thistSvc->regTree(fullNtupleName, m_tree));
32
33 if (m_tree == nullptr) {
34 ATH_MSG_ERROR("Unable to create TTree");
35 return StatusCode::FAILURE;
36 }
37
38 m_tree->Branch("event_nr", &m_eventNum);
39
40 m_tree->Branch("start_d0", &m_start_d0);
41 m_tree->Branch("start_z0", &m_start_z0);
42 m_tree->Branch("start_phi", &m_start_phi);
43 m_tree->Branch("start_theta", &m_start_theta);
44 m_tree->Branch("start_qop", &m_start_qop);
45
46 m_tree->Branch("fwd_success", &m_fwd_success);
47 m_tree->Branch("fwd_time", &m_fwd_time);
48 m_tree->Branch("fwd_final_l0", &m_fwd_final_l0);
49 m_tree->Branch("fwd_final_l1", &m_fwd_final_l1);
50 m_tree->Branch("fwd_final_x", &m_fwd_final_x);
51 m_tree->Branch("fwd_final_y", &m_fwd_final_y);
52 m_tree->Branch("fwd_final_z", &m_fwd_final_z);
53 m_tree->Branch("fwd_final_phi", &m_fwd_final_phi);
54 m_tree->Branch("fwd_final_theta", &m_fwd_final_theta);
55 m_tree->Branch("fwd_final_qop", &m_fwd_final_qop);
56 m_tree->Branch("fwd_final_sigma_l0", &m_fwd_final_sigma_l0);
57 m_tree->Branch("fwd_final_sigma_l1", &m_fwd_final_sigma_l1);
58 m_tree->Branch("fwd_final_sigma_phi", &m_fwd_final_sigma_phi);
59 m_tree->Branch("fwd_final_sigma_theta", &m_fwd_final_sigma_theta);
60 m_tree->Branch("fwd_final_sigma_qop", &m_fwd_final_sigma_qop);
61
62 m_tree->Branch("bkw_success", &m_bkw_success);
63 m_tree->Branch("bkw_time", &m_bkw_time);
64 m_tree->Branch("bkw_final_d0", &m_bkw_final_d0);
65 m_tree->Branch("bkw_final_z0", &m_bkw_final_z0);
66 m_tree->Branch("bkw_final_phi", &m_bkw_final_phi);
67 m_tree->Branch("bkw_final_theta", &m_bkw_final_theta);
68 m_tree->Branch("bkw_final_qop", &m_bkw_final_qop);
69 m_tree->Branch("bkw_final_sigma_d0", &m_bkw_final_sigma_d0);
70 m_tree->Branch("bkw_final_sigma_z0", &m_bkw_final_sigma_z0);
71 m_tree->Branch("bkw_final_sigma_phi", &m_bkw_final_sigma_phi);
72 m_tree->Branch("bkw_final_sigma_theta", &m_bkw_final_sigma_theta);
73 m_tree->Branch("bkw_final_sigma_qop", &m_bkw_final_sigma_qop);
74
75 return StatusCode::SUCCESS;
76}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x,...)
#define CHECK(...)
Evaluate an expression and check for errors.
Gaudi::Property< std::string > m_ntupleDirName
virtual ~PropResultRootWriterSvc()
destructor
Gaudi::Property< std::string > m_treeName
ServiceHandle< ITHistSvc > m_thistSvc
virtual StatusCode initialize() override
PropResultRootWriterSvc(const std::string &name, ISvcLocator *svcloc)
constructor