CbmRoot
Loading...
Searching...
No Matches
HalCbmEventInterface.cxx
Go to the documentation of this file.
1/* Copyright (C) 2023-2023 Warsaw University of Technology, Warsaw
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Daniel Wielanek [committer] */
5
6#include "CbmAnaTreeSource.h"
7#include "CbmGlobalTrack.h"
8#include "CbmStsTrack.h"
9#include "CbmTofTrack.h"
10#include "CbmVertex.h"
11#include "FairRootManager.h"
12
13#include <RtypesCore.h>
14#include <TObjArray.h>
15
16#include <Hal/DataManager.h>
17#include <Hal/EventInterfaceAdvanced.h>
18#include <Hal/RootIOManager.h>
19#include <stddef.h>
20
22
24{
25 Hal::DataManager* manager = Hal::DataManager::Instance();
26 fDataContainer = (CbmAnaTreeRecoSourceContainer*) manager->GetObject("CbmAnaTreeSourceContainer.");
27 auto branchList = manager->GetBranchNameList();
28 for (auto name : branchList) {
29 std::cout << name << std::endl;
30 }
31 manager->GetIOManagerInfo();
32 if (fDataContainer == nullptr) {
33 fCbmVertex = (CbmVertex*) manager->GetObject("PrimaryVertex.");
34 fGlobalTracks = (TClonesArray*) manager->GetObject("GlobalTrack");
35 fStsTracks = (TClonesArray*) manager->GetObject("StsTrack");
36 fTofHits = (TClonesArray*) manager->GetObject("TofHit");
37 fTrdTracks = (TClonesArray*) manager->GetObject("TrdTrack");
38 fRichRings = (TClonesArray*) manager->GetObject("RichRing");
39 fMuchTracks = (TClonesArray*) manager->GetObject("MuchTrack");
42 else
44 }
45 else {
47 }
48}
49
51{
52 Hal::DataManager* manager = Hal::DataManager::Instance();
53 switch (fFormatType) {
55 manager->Register("CbmAnaTreeSourceContainer.", "CbmAnaTreeSourceContainer.", fDataContainer, write);
56 } break;
58 manager->Register("PrimaryVertex.", "PrimaryVertex", fCbmVertex, write);
59 manager->Register("GlobalTrack", "Tracks", fGlobalTracks, write);
60
61 if (fStsTracks) manager->Register("StsTrack", "Tracks", fStsTracks, write);
62 if (fTofHits) manager->Register("TofHit", "Tracks", fTofHits, write);
63 if (fTrdTracks) manager->Register("TrdTrack", "Tracks", fTrdTracks, write);
64 if (fRichRings) manager->Register("RichRing", "Tracks", fRichRings, write);
65 if (fMuchTracks) manager->Register("MuchTrack", "Tracks", fMuchTracks, write);
66 } break;
67 default: break;
68 }
69}
70
72{
73 switch (fFormatType) {
75 return fDataContainer->GetVtxTracks()->GetNumberOfChannels();
76 } break;
78 return fGlobalTracks->GetEntriesFast();
79 } break;
80 default: break;
81 }
82 return 0;
83}
84
85TObject* HalCbmEventInterface::GetRawTrackPointer(Int_t /*index*/) const { return nullptr; }
86
87TLorentzVector HalCbmEventInterface::GetVertex() const
88{
89 switch (fFormatType) {
91 AnalysisTree::EventHeader* header = fDataContainer->GetEventHeader();
92 return TLorentzVector(header->GetVertexX(), header->GetVertexY(), header->GetVertexZ(), 0);
93 } break;
95 TLorentzVector vec(fCbmVertex->GetX(), fCbmVertex->GetY(), fCbmVertex->GetZ(), 0);
96 return vec;
97 } break;
98 default: return TLorentzVector(0, 0, 0, 0); break;
99 }
100}
101
103
105
Data class for STS tracks.
int Int_t
bool Bool_t
AnalysisTree::TrackDetector * GetVtxTracks() const
AnalysisTree::EventHeader * GetEventHeader() const
double GetZ() const
Definition CbmVertex.h:69
double GetY() const
Definition CbmVertex.h:68
double GetX() const
Definition CbmVertex.h:67
virtual void ConnectToTreeInternal(eMode mode)
HalCbm::DataFormat fFormatType
virtual TObject * GetRawTrackPointer(Int_t index) const
void UpdateAnaTree(HalCbmMCEventInterface *ie)
void Register(Bool_t write)
virtual Int_t GetTotalTrackNo() const
virtual TLorentzVector GetVertex() const
void UpdateDst(HalCbmMCEventInterface *ie)
CbmAnaTreeRecoSourceContainer * fDataContainer