Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:21:20

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