Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:13:21

0001 #include <iostream>
0002 #include <fstream>
0003 #include <vector>
0004 #include <utility>
0005 
0006 #include "sPhenixStyle.h"
0007 #include "sPhenixStyle.C"
0008 
0009 using namespace std;
0010 
0011 
0012 Int_t SeedPlots()
0013 {
0014 
0015     // set sPHENIX style
0016     SetsPhenixStyle();
0017     TH1::SetDefaultSumw2();
0018     TH2::SetDefaultSumw2();
0019 
0020    
0021     // in/out file names
0022     TString input_file = "/sphenix/user/tmengel/JetPerformancePPG/RandomConeAna/condor/merging/rootfiles/Jet30Debug.root";
0023     TString output_file = "Jet30_SeedPlots.root";
0024 
0025     // open input file
0026    TFile *f = new TFile(input_file, "READ");
0027     if(!f->IsOpen() || f->IsZombie()){ std::cout << "File " << input_file << " is zombie" << std::endl;  return -1; }
0028 
0029     // get tree
0030     TTree *t = (TTree*)f->Get("T");
0031     if(!t){ std::cout << "Tree event_info not found in " << input_file << std::endl; return -1; }
0032 
0033     // input variables 
0034     std::vector<float> * m_rawseedEta = 0;
0035     std::vector<float> * m_rawseedPhi = 0;
0036     std::vector<float> * m_rawseedPt = 0;
0037     std::vector<int> * m_rawseedCut = 0;
0038 
0039     std::vector<float> * m_subseedEta = 0;
0040     std::vector<float> * m_subseedPhi = 0;
0041     std::vector<float> * m_subseedPt = 0;
0042     std::vector<int> * m_subseedCut = 0;
0043 
0044     std::vector<float> * m_tower_pt = 0;
0045     std::vector<float> * m_tower_iter_pt = 0;
0046     std::vector<float> * m_tower_rand_pt = 0;
0047     std::vector<float> * m_tower_iter_rand_pt = 0;
0048 
0049     t->SetBranchAddress("rawseedEta", &m_rawseedEta);
0050     t->SetBranchAddress("rawseedPhi", &m_rawseedPhi);
0051     t->SetBranchAddress("rawseedPt", &m_rawseedPt);
0052     t->SetBranchAddress("rawseedCut", &m_rawseedCut);
0053     t->SetBranchAddress("subseedEta", &m_subseedEta);
0054     t->SetBranchAddress("subseedPhi", &m_subseedPhi);
0055     t->SetBranchAddress("subseedPt", &m_subseedPt);
0056     t->SetBranchAddress("subseedCut", &m_subseedCut);
0057     t->SetBranchAddress("tower_pt", &m_tower_pt);
0058     t->SetBranchAddress("tower_iter_pt", &m_tower_iter_pt);
0059     t->SetBranchAddress("tower_pt_rand", &m_tower_rand_pt);
0060     t->SetBranchAddress("tower_iter_pt_rand", &m_tower_iter_rand_pt);
0061     
0062     int nentries = t->GetEntries();
0063 
0064     // histograms
0065     TH1F * h_rawseedPt = new TH1F("h_rawseedPt", "h_rawseedPt", 100, 0, 100);
0066     TH1F * h_subseedPt = new TH1F("h_subseedPt", "h_subseedPt", 100, 0, 100);
0067     TH1F * h_rawseedEta = new TH1F("h_rawseedEta", "h_rawseedEta", 100,-1.5,1.5);
0068     TH1F * h_subseedEta = new TH1F("h_subseedEta", "h_subseedEta", 100,-1.5,1.5);
0069     TH1F * h_rawseedPhi = new TH1F("h_rawseedPhi", "h_rawseedPhi", 100,-TMath::Pi(),TMath::Pi());
0070     TH1F * h_subseedPhi = new TH1F("h_subseedPhi", "h_subseedPhi", 100,-TMath::Pi(),TMath::Pi());
0071     TH1F * h_rawseedCut = new TH1F("h_rawseedCut", "h_rawseedCut", 10, 0, 10);
0072     TH1F * h_subseedCut = new TH1F("h_subseedCut", "h_subseedCut", 10, 0, 10);
0073     TH1F * h_tower_pt = new TH1F("h_tower_pt", "h_tower_pt", 100, -50, 50);
0074     TH1F * h_tower_iter_pt = new TH1F("h_tower_iter_pt", "h_tower_iter_pt", 100, -50, 50);
0075     TH1F * h_tower_rand_pt = new TH1F("h_tower_rand_pt", "h_tower_rand_pt", 100, -50, 50);
0076     TH1F * h_tower_iter_rand_pt = new TH1F("h_tower_iter_rand_pt", "h_tower_iter_rand_pt", 100, -50, 50);
0077 
0078     // n seed plots
0079     TH1F * h_nseed = new TH1F("h_nseed", "h_nseed", 100, 0, 100);
0080     TH1F * h_nsubseed = new TH1F("h_nsubseed", "h_nsubseed", 100, 0, 100);
0081 
0082 
0083     // loop over events
0084     for(int i = 0; i < nentries; ++i)
0085     {
0086         t->GetEntry(i);
0087 
0088       
0089         for(int j =0; j <  m_rawseedPt->size(); j++) h_rawseedPt->Fill(m_rawseedPt->at(j));
0090         for(int j =0; j<m_subseedPt->size(); j++) h_subseedPt->Fill(m_subseedPt->at(j));
0091         for(int j =0; j<m_rawseedEta->size(); j++) h_rawseedEta->Fill(m_rawseedEta->at(j));
0092         for(int j =0; j<m_subseedEta->size(); j++) h_subseedEta->Fill(m_subseedEta->at(j));
0093         for(int j =0; j<m_rawseedPhi->size(); j++) h_rawseedPhi->Fill(m_rawseedPhi->at(j));
0094         for(int j =0; j<m_subseedPhi->size(); j++) h_subseedPhi->Fill(m_subseedPhi->at(j));
0095         for(int j =0; j<m_rawseedCut->size(); j++) h_rawseedCut->Fill(m_rawseedCut->at(j));
0096         for(int j =0; j<m_subseedCut->size(); j++) h_subseedCut->Fill(m_subseedCut->at(j));
0097         for(int j =0; j<m_tower_pt->size(); j++) h_tower_pt->Fill(m_tower_pt->at(j));
0098         for(int j =0; j<m_tower_iter_pt->size(); j++) h_tower_iter_pt->Fill(m_tower_iter_pt->at(j));
0099         for(int j =0; j<m_tower_rand_pt->size(); j++) h_tower_rand_pt->Fill(m_tower_rand_pt->at(j));
0100         for(int j =0; j<m_tower_iter_rand_pt->size(); j++) h_tower_iter_rand_pt->Fill(m_tower_iter_rand_pt->at(j));
0101     
0102 
0103 
0104         h_nseed->Fill(m_rawseedPt->size());
0105         h_nsubseed->Fill(m_subseedPt->size());
0106 
0107     }
0108 
0109     // create output file
0110     TFile *fout = new TFile(output_file, "RECREATE");
0111 
0112     // write histograms
0113     h_rawseedPt->Write();
0114     h_subseedPt->Write();
0115     h_rawseedEta->Write();
0116     h_subseedEta->Write();
0117     h_rawseedPhi->Write();
0118     h_subseedPhi->Write();
0119     h_rawseedCut->Write();
0120     h_subseedCut->Write();
0121     h_tower_pt->Write();
0122     h_tower_iter_pt->Write();
0123     h_tower_rand_pt->Write();
0124     h_tower_iter_rand_pt->Write();
0125     h_nseed->Write();
0126     h_nsubseed->Write();
0127 
0128     // close input file
0129     f->Close();
0130 
0131     // close output file
0132     fout->Close();
0133 
0134       
0135     return 0;
0136 }
0137