#include #include #include #include void readTreeLastTry() { gSystem->Load("libRecEventKG.so"); // Open the ROOT file TFile* inFile = TFile::Open("pico.root"); if (!inFile || inFile->IsZombie()) { std::cerr << "Error: Could not open file!" << std::endl; return; } // Get the TTree TTree* recData = (TTree*)inFile->Get("recData"); if (!recData) { std::cerr << "Error: TTree 'recData' not found!" << std::endl; return; } recData->SetMakeClass(true); // Variables to hold the branch data Int_t event_fFDEvents_; // Size of the fXmax array Double_t event_fFDEvents_fFdRecShower_fXmax[6]; TVector3 event_fFDEvents_fFdRecShower_fAxisCoreCS[6]; // Fixed-size array of TVector3 TVector3 event_fGenShower_fAxisCoreCS; // Other branch // Set branch addresses recData->SetBranchAddress("event.fFDEvents", &event_fFDEvents_); recData->SetBranchAddress("event.fFDEvents.fFdRecShower.fXmax", event_fFDEvents_fFdRecShower_fXmax); recData->SetBranchAddress("event.fFDEvents.fFdRecShower.fAxisCoreCS", event_fFDEvents_fFdRecShower_fAxisCoreCS); recData->SetBranchAddress("event.fGenShower.fAxisCoreCS", &event_fGenShower_fAxisCoreCS); // Loop over entries and print the data for (Int_t i = 0; i < recData->GetEntries(); i++) { recData->GetEntry(i); // Print the size of the array std::cout << "Entry " << i << ": fFDEvents_ = " << event_fFDEvents_ << std::endl; // Print the fXmax array values std::cout << "fXmax values: "; for (Int_t j = 0; j < event_fFDEvents_; j++) { std::cout << event_fFDEvents_fFdRecShower_fXmax[j] << " "; } std::cout << std::endl; // Print the fAxisCoreCS array values std::cout << "fFdRecShower.fAxisCoreCS values: "; for (Int_t j = 0; j < event_fFDEvents_; j++) { TVector3 vec = event_fFDEvents_fFdRecShower_fAxisCoreCS[j]; std::cout << "(" << vec.X() << ", " << vec.Y() << ", " << vec.Z() << ") "; } std::cout << std::endl; // Print other branch data std::cout << "fGenShower.fAxisCoreCS = (" << event_fGenShower_fAxisCoreCS.X() << ", " << event_fGenShower_fAxisCoreCS.Y() << ", " << event_fGenShower_fAxisCoreCS.Z() << ")"; std::cout << std::endl << std::endl << std::endl; } // Clean up inFile->Close(); delete inFile; }