/* * DxTest.cxx * * Created on: 21 cze 2024 * Author: daniel */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "Buggy.h" #define BUGTEST void Buggy::UpdateBranches() { fInChain->GetEntry(0); TObjArray* list_branch = fInChain->GetListOfBranches(); std::vector brnames; std::vector classname; std::vector tobjects; for (int i = 0; i < list_branch->GetEntries(); i++) { TBranchElement* branch = (TBranchElement*) list_branch->At(i); TString name = branch->GetName(); TString classStored = branch->GetClassName(); TClass* cl = TClass::GetClass(classStored); Bool_t tobj = kFALSE; if (cl) { if (cl->InheritsFrom("TObject")) { tobj = kTRUE; } } brnames.push_back(name); classname.push_back(classStored); tobjects.push_back(tobj); } #ifdef BUGTEST AnalysisTree::EventHeader* pointer = new AnalysisTree::EventHeader(); if (fInChain->GetBranch("SimEventHeader.")) fInChain->SetBranchAddress("SimEventHeader.", &pointer); AnalysisTree::EventHeader* pointer2 = new AnalysisTree::EventHeader(); if (fInChain->GetBranch("RecEventHeader.")) fInChain->SetBranchAddress("RecEventHeader.", &pointer2); AnalysisTree::Detector* pointer3 = nullptr; if (fInChain->GetBranch("SimParticles.")) fInChain->SetBranchAddress("SimParticles.", &pointer3); AnalysisTree::Detector* pointer4 = nullptr; //new AnalysisTree::Detector; fInChain->SetBranchAddress("VtxTracks.", &pointer4); #else for (int i = 0; i < brnames.size(); i++) { TString strx = classname[i]; if (tobjects[i]) { } else { if (strx.EqualTo("AnalysisTree::EventHeader")) { AnalysisTree::EventHeader* pointer = new AnalysisTree::EventHeader(); fInChain->SetBranchAddress(brnames[i], &pointer); std::cout<<"Connecting "<Class_Name()<<" to " <")) { AnalysisTree::Detector* pointer = new AnalysisTree::Detector; fInChain->SetBranchAddress("VtxTracks.", &pointer); std::cout<<"Connecting "<Class_Name()<<" to " <")) { AnalysisTree::Detector* pointer = new AnalysisTree::Detector; fInChain->SetBranchAddress("SimParticles.", &pointer); std::cout<<"Connecting "<Class_Name()<<" to " <GetEntry(i); std::cout << "GOT" << std::endl; } /* for (auto branch : fBranches) { std::cout << branch.GetBranchName() << std::endl; }*/ } Buggy::~Buggy() {} Bool_t Buggy::InitInternal() { UpdateBranches(); return true; }