6#include "AnalysisTree/Matching.hpp"
12#include <AnalysisTree/Configuration.hpp>
16#include <Hal/InputDataInfo.h>
17#include <Hal/RootIOManager.h>
22 AnalysisTree::BranchConfig conf =
GetBranchConf(files,
"VtxTracks", found);
49 AnalysisTree::BranchConfig conf =
GetBranchConf(files,
"SimParticles", found);
74 TFile* oldFile = gFile;
75 TDirectory* oldDir = gDirectory;
76 for (
auto file : files) {
77 TFile* f =
new TFile(file);
78 AnalysisTree::Configuration* conf = (AnalysisTree::Configuration*) f->Get(
"Configuration");
79 auto branches = conf->GetListOfBranches();
80 for (
auto branch : branches) {
81 if (patternToFind.EqualTo(branch)) {
86 return conf->GetBranchConfig(patternToFind.Data());
94 return AnalysisTree::BranchConfig();
100 fEvent =
new AnalysisTree::EventHeader();
101 fVtxTracks =
new AnalysisTree::TrackDetector();
102 fTofHits =
new AnalysisTree::HitDetector();
103 fVtx2Tof =
new AnalysisTree::Matching();
105 if (tree->GetBranch(
"VtxTracks.") ==
nullptr) {
106 Hal::Cout::PrintInfo(
"Lack of VtxTracks in AT", Hal::EInfo::kError);
109 if (tree->GetBranch(
"RecEventHeader.") ==
nullptr) {
110 Hal::Cout::PrintInfo(
"Lack of RecEventHeader in AT", Hal::EInfo::kError);
113 if (tree->GetBranch(
"TofHits.") ==
nullptr) {
114 Hal::Cout::PrintInfo(
"Lack of TofHits in AT", Hal::EInfo::kError);
117 if (tree->GetBranch(
"VtxTracks2TofHits.") ==
nullptr) {
118 Hal::Cout::PrintInfo(
"Lack of VtxTracks2TofHits tracks in AT", Hal::EInfo::kError);
121 tree->SetBranchAddress(
"VtxTracks.", &
fVtxTracks);
122 tree->SetBranchAddress(
"RecEventHeader.", &
fEvent);
123 tree->SetBranchAddress(
"TofHits.", &
fTofHits);
124 tree->SetBranchAddress(
"VtxTracks2TofHits.", &
fVtx2Tof);
125 tree->SetBranchStatus(
"VtxTracks.", 1);
126 tree->SetBranchStatus(
"RecEventHeader.", 1);
127 tree->SetBranchStatus(
"TofHits.", 1);
128 tree->SetBranchStatus(
"VtxTracks2TofHits.", 1);
129 if (tree->GetBranch(
"VtxTracks2SimParticles.")) {
130 tree->SetBranchAddress(
"VtxTracks2SimParticles.", &
fVtx2Mc);
131 tree->SetBranchStatus(
"VtxTracks2SimParticles.", 1);
139 fEvent =
new AnalysisTree::EventHeader();
141 if (tree->GetBranch(
"SimEventHeader.") ==
nullptr)
return kFALSE;
142 if (tree->GetBranch(
"SimParticles.") ==
nullptr)
return kFALSE;
143 tree->SetBranchAddress(
"SimEventHeader.", &
fEvent);
144 tree->SetBranchAddress(
"SimParticles.", &
fParticles);
145 tree->SetBranchStatus(
"SimEventHeader.", 1);
146 tree->SetBranchStatus(
"SimParticles.", 1);
153 AnalysisTree::BranchConfig conf =
GetBranchConf(list,
"Candidates", found);
207 auto vec = Hal::RootIOManager::GetListOfBranches(tree,
true);
209 for (
auto brName : vec) {
210 brName.EqualTo(
"Candidates.");
213 if (!found)
return kFALSE;
214 tree->SetBranchAddress(
"Candidates.", &
fParticles);
216 tree->SetBranchAddress(
"Candidates2Simulated.", &
fV02Mc);
218 tree->SetBranchStatus(
"Candidates.", 1);
219 tree->SetBranchStatus(
"Simulated.", 1);
220 tree->SetBranchStatus(
"Candidates2Simulated.", 1);
226 auto listRow = info->GetListOfFiles();
227 std::vector<TString> rec1;
228 for (
auto lev : listRow) {
229 rec1.push_back(lev[0]);
231 for (
int i = 0; i <
GetSize(); i++) {
261 std::vector<TString> res;
263 res.push_back(
"reco");
AnalysisTree::BranchConfig GetBranchConf(std::vector< TString > files, TString patternToFind, Bool_t &found) const
CbmAnaTreeContainer * fContainers[3]
CbmAnaTreeContainer * GetContainer(EContainerType type)
static std::vector< TString > GetNames()
void LoadConf(Hal::InputDataInfo *info)
Bool_t ConnectToTree(TChain *chains)
AnalysisTree::Particles * fParticles
AnalysisTree::EventHeader * fEvent
AnaTreeMcIds & GetFieldIds()
void LoadFields(std::vector< TString > list)
AnalysisTree::EventHeader * fEvent
AnalysisTree::TrackDetector * fVtxTracks
AnalysisTree::Matching * fVtx2Tof
Bool_t ConnectToTree(TChain *chains)
AnaTreeRecoIds & GetFieldIds()
AnalysisTree::Matching * fVtx2Mc
AnalysisTree::HitDetector * fTofHits
void LoadFields(std::vector< TString > list)
AnalysisTree::Particles * fParticlesMc
void LoadFields(std::vector< TString > list)
AnalysisTree::Particles * fParticles
AnaTreeV0Ids & GetFieldIds()
AnalysisTree::Matching * fV02Mc
Bool_t ConnectToTree(TChain *chains)