File indexing completed on 2025-12-16 09:18:06
0001 void draw_vec_branches(const char* infile = "/mnt/e/sphenix/INTT-EMCAL/InttSeedingTrackDev/ParticleGen/output/electron_PrTT_1GeV.root")
0002 {
0003
0004 TFile *f = TFile::Open(infile, "READ");
0005 if (!f || f->IsZombie()) {
0006 std::cerr << "Error opening file: " << infile << std::endl;
0007 return;
0008 }
0009
0010
0011 TTree *tree = dynamic_cast<TTree*>(f->Get("tree"));
0012 if (!tree) {
0013 std::cerr << "Cannot find tree 'tree' in file." << std::endl;
0014 return;
0015 }
0016
0017
0018 std::vector<float> *_PrG4_TTPRO_dD = nullptr;
0019 std::vector<float> *_PrG4_TTPRO_dR = nullptr;
0020 std::vector<float> *_PrG4_TTPRO_dphi = nullptr;
0021
0022
0023 tree->SetBranchAddress("PrG4_TTPRO_dD", &_PrG4_TTPRO_dD);
0024 tree->SetBranchAddress("PrG4_TTPRO_dR", &_PrG4_TTPRO_dR);
0025 tree->SetBranchAddress("PrG4_TTPRO_dphi", &_PrG4_TTPRO_dphi);
0026
0027
0028 TH1D *h_dD = new TH1D("h_dD", "PrG4_TTPRO_dD;dD(cm)", 300, 0, 30);
0029 TH1D *h_dR = new TH1D("h_dR", "PrG4_TTPRO_dR;dR(cm)", 200, -5, 5);
0030 TH1D *h_dphi = new TH1D("h_dphi", "PrG4_TTPRO_dphi;dphi(rad)", 1000, -1, 1);
0031
0032
0033 TH2D *h2_dR_dphi = new TH2D("h2_dR_dphi", "dR vs dphi;dR;dphi", 200, -5, 5, 1000, -1, 1);
0034
0035
0036 Long64_t nentries = tree->GetEntries();
0037 for (Long64_t i = 0; i < nentries; ++i)
0038 {
0039 tree->GetEntry(i);
0040
0041
0042 for (float val : *_PrG4_TTPRO_dD) h_dD->Fill(val);
0043 for (float val : *_PrG4_TTPRO_dR) h_dR->Fill(val);
0044 for (float val : *_PrG4_TTPRO_dphi) h_dphi->Fill(val);
0045
0046
0047 size_t nvals = std::min(_PrG4_TTPRO_dR->size(), _PrG4_TTPRO_dphi->size());
0048 for (size_t j = 0; j < nvals; ++j)
0049 {
0050 h2_dR_dphi->Fill(_PrG4_TTPRO_dR->at(j), _PrG4_TTPRO_dphi->at(j));
0051 }
0052 }
0053
0054
0055 TFile *fout = new TFile("draw_ePrTT_1GeV.root", "RECREATE");
0056 h_dD->Write();
0057 h_dR->Write();
0058 h_dphi->Write();
0059 h2_dR_dphi->Write();
0060 fout->Close();
0061
0062 std::cout << "Histograms saved to output_hist.root" << std::endl;
0063 }