Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:14:23

0001 // ----------------------------------------------------------------------------
0002 // 'TrksInJetQAJetManager.cc'
0003 // Derek Anderson
0004 // 03.25.2024
0005 //
0006 // A submodule for the TrksInJetQA module
0007 // to generate QA plots for jets
0008 // ----------------------------------------------------------------------------
0009 
0010 #define TRKSINJETQAJETMANAGER_CC
0011 
0012 // submodule definition
0013 #include "TrksInJetQAJetManager.h"
0014 
0015 
0016 
0017 // public methods -------------------------------------------------------------
0018 
0019 void TrksInJetQAJetManager::GetInfo(
0020   Jet* jet,
0021   std::optional<std::vector<SvtxTrack*>> tracks
0022 ) {
0023 
0024   // collect jet info
0025   JetQAContent jetContent {
0026     .eta    = jet -> get_eta(),
0027     .phi    = jet -> get_phi(),
0028     .pt     = jet -> get_pt(),
0029     .nTrk   = 0,
0030     .ptSum  = 0.
0031   };
0032 
0033   // if tracks are available, do calculations 
0034   if (tracks.has_value()) {
0035     for (SvtxTrack* track : tracks.value()) {
0036 
0037       jetContent.nTrk++;
0038       jetContent.ptSum += track -> get_pt();
0039 
0040     }  // end track loop
0041   }  // end if tracks.has_value
0042 
0043   // fill histograms
0044   FillHistograms(Type::All, jetContent);
0045   return;
0046 
0047 }  // end 'Process(PHCompositeNode*)'
0048 
0049 
0050 
0051 // private methods ------------------------------------------------------------
0052 
0053 void TrksInJetQAJetManager::FillHistograms(const int type, JetQAContent& content) {
0054 
0055   // fill 1d histograms
0056   m_vecHist1D.at(type).at(H1D::Eta)   -> Fill(content.eta);
0057   m_vecHist1D.at(type).at(H1D::Phi)   -> Fill(content.phi);
0058   m_vecHist1D.at(type).at(H1D::Pt)    -> Fill(content.pt);
0059   m_vecHist1D.at(type).at(H1D::NTrk)  -> Fill(content.nTrk);
0060   m_vecHist1D.at(type).at(H1D::PtSum) -> Fill(content.ptSum);
0061 
0062   // fill 2d histograms
0063   m_vecHist2D.at(type).at(H2D::PtVsEta)   -> Fill(content.eta, content.pt);
0064   m_vecHist2D.at(type).at(H2D::PtSumVsPt) -> Fill(content.pt, content.ptSum);
0065   return;
0066 
0067 }  //  end 'FillHistograms(Type, JetQAContent&)'
0068 
0069 
0070 
0071 void TrksInJetQAJetManager::DefineHistograms() {
0072 
0073   // grab binning schemes
0074   std::vector<BinDef> vecBins = m_hist.GetVecHistBins();
0075 
0076   // histogram labels
0077   m_vecHistTypes.push_back( "All" );
0078 
0079   // 1d histogram definitions
0080   m_vecHistDef1D.push_back( std::make_tuple( "JetEta",   vecBins.at(TrksInJetQAHist::Var::Eta) ));
0081   m_vecHistDef1D.push_back( std::make_tuple( "JetPhi",   vecBins.at(TrksInJetQAHist::Var::Phi) ));
0082   m_vecHistDef1D.push_back( std::make_tuple( "JetPt",    vecBins.at(TrksInJetQAHist::Var::Ene) ));
0083   m_vecHistDef1D.push_back( std::make_tuple( "JetNTrks", vecBins.at(TrksInJetQAHist::Var::Num) ));
0084   m_vecHistDef1D.push_back( std::make_tuple( "SumTrkPt", vecBins.at(TrksInJetQAHist::Var::Ene) ));
0085 
0086   // 2d histogram definitions
0087   m_vecHistDef2D.push_back(
0088     std::make_tuple(
0089       "JetPtVsEta",
0090       vecBins.at(TrksInJetQAHist::Var::Eta),
0091       vecBins.at(TrksInJetQAHist::Var::Ene)
0092     )
0093   );
0094   m_vecHistDef2D.push_back(
0095     std::make_tuple(
0096       "SumTrkVsJetPt",
0097       vecBins.at(TrksInJetQAHist::Var::Ene),
0098       vecBins.at(TrksInJetQAHist::Var::Ene)
0099     )
0100   );
0101   return;
0102 
0103 }  // end 'DefineHistograms()'
0104 
0105 // end ------------------------------------------------------------------------
0106 
0107