Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:44

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 #define TRKSINJETQAJETMANAGER_CC
0012 
0013 // submodule definition
0014 #include "TrksInJetQAJetManager.h"
0015 
0016 // public methods =============================================================
0017 
0018 // ----------------------------------------------------------------------------
0019 //! Get information from a jet
0020 // ----------------------------------------------------------------------------
0021 void TrksInJetQAJetManager::GetInfo(Jet* jet,
0022                                     std::optional<std::vector<SvtxTrack*>> tracks)
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   // if tracks are available, do calculations
0033   if (tracks.has_value())
0034   {
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 }  // end 'GetInfo(Jet*, std::optional<std::vector<SvtxTrack*>>)'
0046 
0047 // private methods ============================================================
0048 
0049 // ----------------------------------------------------------------------------
0050 //! Fill jet histograms
0051 // ----------------------------------------------------------------------------
0052 void TrksInJetQAJetManager::FillHistograms(const int type, JetQAContent& content)
0053 {
0054   // fill 1d histograms
0055   if (m_config.doOptHist)
0056   {
0057     m_mapHist1D[Index(type, H1D::Eta)]->Fill(content.eta);
0058     m_mapHist1D[Index(type, H1D::Pt)]->Fill(content.pt);
0059     m_mapHist1D[Index(type, H1D::PtSum)]->Fill(content.ptSum);
0060   }
0061   m_mapHist1D[Index(type, H1D::Phi)]->Fill(content.phi);
0062   m_mapHist1D[Index(type, H1D::NTrk)]->Fill(content.nTrk);
0063 
0064   // fill 2d histograms
0065   if (m_config.doOptHist)
0066   {
0067     m_mapHist2D[Index(type, H2D::PtSumVsPt)]->Fill(content.pt, content.ptSum);
0068   }
0069   m_mapHist2D[Index(type, H2D::PtVsEta)]->Fill(content.eta, content.pt);
0070   m_mapHist2D[Index(type, H2D::NTrkVsEta)]->Fill(content.eta, content.nTrk);
0071   m_mapHist2D[Index(type, H2D::NTrkVsPt)]->Fill(content.pt, content.nTrk);
0072 }  //  end 'FillHistograms(Type, JetQAContent&)'
0073 
0074 // ----------------------------------------------------------------------------
0075 //! Define jet histograms
0076 // ----------------------------------------------------------------------------
0077 void TrksInJetQAJetManager::DefineHistograms()
0078 {
0079   // grab binning schemes
0080   std::vector<TrksInJetQADefs::BinDef> vecBins = m_hist.GetVecHistBins();
0081 
0082   // histogram labels
0083   m_mapHistTypes[Type::All] = "All";
0084 
0085   // 1d histogram definitions
0086   if (m_config.doOptHist)
0087   {
0088     m_mapHistDef1D[H1D::Eta] = std::tuple("JetEta", vecBins.at(TrksInJetQAHist::Var::Eta));
0089     m_mapHistDef1D[H1D::Pt] = std::tuple("JetPt", vecBins.at(TrksInJetQAHist::Var::Ene));
0090     m_mapHistDef1D[H1D::PtSum] = std::tuple("SumTrkPt", vecBins.at(TrksInJetQAHist::Var::Ene));
0091   }
0092   m_mapHistDef1D[H1D::Phi] = std::tuple("JetPhi", vecBins.at(TrksInJetQAHist::Var::Phi));
0093   m_mapHistDef1D[H1D::NTrk] = std::tuple("JetNTrks", vecBins.at(TrksInJetQAHist::Var::Num));
0094 
0095   // 2d histogram definitions
0096   if (m_config.doOptHist)
0097   {
0098     m_mapHistDef2D[H2D::PtSumVsPt] = std::tuple("SumTrkVsJetPt",
0099                                                 vecBins.at(TrksInJetQAHist::Var::Ene),
0100                                                 vecBins.at(TrksInJetQAHist::Var::Ene));
0101   }
0102   m_mapHistDef2D[H2D::PtVsEta] = std::tuple("JetPtVsEta",
0103                                             vecBins.at(TrksInJetQAHist::Var::Eta),
0104                                             vecBins.at(TrksInJetQAHist::Var::Ene));
0105   m_mapHistDef2D[H2D::NTrkVsEta] = std::tuple("JetNTrkVsEta",
0106                                               vecBins.at(TrksInJetQAHist::Var::Eta),
0107                                               vecBins.at(TrksInJetQAHist::Var::Num));
0108   m_mapHistDef2D[H2D::NTrkVsPt] = std::tuple("JetNTrkVsPt",
0109                                              vecBins.at(TrksInJetQAHist::Var::Ene),
0110                                              vecBins.at(TrksInJetQAHist::Var::Num));
0111 }  // end 'DefineHistograms()'
0112 
0113 // end ========================================================================