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#include "HalCbmDetectorID.h"
13
14#include <RtypesCore.h>
15#include <TObjArray.h>
16
17#include <cstddef>
18
19#include <Hal/DataManager.h>
20#include <Hal/EventInterfaceAdvanced.h>
21#include <Hal/RootIOManager.h>
22
24
26{
27 Hal::DataManager* manager = Hal::DataManager::Instance();
29
30 auto branchList = manager->GetBranchNameList();
31 for (auto name : branchList) {
32 std::cout << name << std::endl;
33 }
34 manager->GetIOManagerInfo();
35 if (fDataContainer == nullptr) {
36 fCbmVertex = (CbmVertex*) manager->GetObject("PrimaryVertex.");
37 fGlobalTracks = (TClonesArray*) manager->GetObject("GlobalTrack");
38 fStsTracks = (TClonesArray*) manager->GetObject("StsTrack");
39 fTofHits = (TClonesArray*) manager->GetObject("TofHit");
40 fTrdTracks = (TClonesArray*) manager->GetObject("TrdTrack");
41 fRichRings = (TClonesArray*) manager->GetObject("RichRing");
42 fMuchTracks = (TClonesArray*) manager->GetObject("MuchTrack");
45 else
47 }
48 else {
50 fTempV0 = (TClonesArray*) manager->GetObject("TempV0.");
51 }
52}
53
55{
56 Hal::DataManager* manager = Hal::DataManager::Instance();
57 switch (fFormatType) {
59 manager->Register(HalCbm::GetContainerName("reco"), "CbmAnaTreeSourceContainer.", fDataContainer, write);
60 } break;
62 manager->Register("PrimaryVertex.", "PrimaryVertex", fCbmVertex, write);
63 manager->Register("GlobalTrack", "Tracks", fGlobalTracks, write);
64
65 if (fStsTracks) manager->Register("StsTrack", "Tracks", fStsTracks, write);
66 if (fTofHits) manager->Register("TofHit", "Tracks", fTofHits, write);
67 if (fTrdTracks) manager->Register("TrdTrack", "Tracks", fTrdTracks, write);
68 if (fRichRings) manager->Register("RichRing", "Tracks", fRichRings, write);
69 if (fMuchTracks) manager->Register("MuchTrack", "Tracks", fMuchTracks, write);
70 } break;
71 default: break;
72 }
73}
74
76{
77 switch (fFormatType) {
79 return fDataContainer->GetVtxTracks()->GetNumberOfChannels();
80 } break;
82 return fGlobalTracks->GetEntriesFast();
83 } break;
84 default: break;
85 }
86 return 0;
87}
88
89TObject* HalCbmEventInterface::GetRawTrackPointer(Int_t /*index*/) const { return nullptr; }
90
91TLorentzVector HalCbmEventInterface::GetVertex() const
92{
93 switch (fFormatType) {
95 AnalysisTree::EventHeader* header = fDataContainer->GetEventHeader();
96 return TLorentzVector(header->GetVertexX(), header->GetVertexY(), header->GetVertexZ(), 0);
97 } break;
99 TLorentzVector vec(fCbmVertex->GetX(), fCbmVertex->GetY(), fCbmVertex->GetZ(), 0);
100 return vec;
101 } break;
102 default: return TLorentzVector(0, 0, 0, 0); break;
103 }
104}
105
107
109
Data class for STS tracks.
int Int_t
bool Bool_t
virtual void ConnectToTreeInternal(eMode mode)
CbmAnaTreeRecoContainer * fDataContainer
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)
TString GetContainerName(TString name)