Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // ----------------------------------------------------------------------------
0002 // 'TrksInJetQABaseFiller.h'
0003 // Derek Anderson
0004 // 04.11.2024
0005 //
0006 // A submodule for the TrksInJetQA F4A module to produce
0007 // QA histograms for tracks and more in jets
0008 // ----------------------------------------------------------------------------
0009 
0010 #ifndef TRKSINJETQABASEFILLER_H
0011 #define TRKSINJETQABASEFILLER_H
0012 
0013 // c++ utilities
0014 #include <string>
0015 // root libraries
0016 #include <TFile.h>
0017 // phool libraries
0018 #include <phool/phool.h>
0019 #include <phool/getClass.h>
0020 #include <phool/PHCompositeNode.h>
0021 // tracking libraries
0022 #include <trackbase/ActsGeometry.h>
0023 #include <trackbase/TrkrHitSetContainer.h>
0024 #include <trackbase/TrkrClusterContainer.h>
0025 #include <trackbase_historic/SvtxTrackMap.h>
0026 // jet libraries
0027 #include <jetbase/JetContainer.h>
0028 // submodule definitions
0029 #include "TrksInJetQAHitManager.h"
0030 #include "TrksInJetQAClustManager.h"
0031 #include "TrksInJetQATrkManager.h"
0032 #include "TrksInJetQAJetManager.h"
0033 // module utilties
0034 #include "TrksInJetQAHist.h"
0035 #include "TrksInJetQAConfig.h"
0036 
0037 
0038 
0039 // TrksInJetQABaseFiller ------------------------------------------------------
0040 
0041 class TrksInJetQABaseFiller {
0042 
0043   public:
0044 
0045     // ctor/dtor
0046     TrksInJetQABaseFiller(TrksInJetQAConfig& config, TrksInJetQAHist& hist);
0047     ~TrksInJetQABaseFiller();
0048 
0049     // public methods
0050     void MakeHistograms(std::string label = "");
0051     void SaveHistograms(TFile* outFile, std::string outDirName);
0052     void GrabHistograms(std::vector<TH1D*>& vecOutHist1D, std::vector<TH2D*>& vecOutHist2D);
0053 
0054     // virtual public methods
0055     virtual void Fill(PHCompositeNode* topNode) = 0;
0056 
0057   protected:
0058 
0059     // private methods
0060     void GetNodes(PHCompositeNode* topNode);
0061 
0062     // necessary dst nodes
0063     //   - FIXME these should be smart pointers!
0064     ActsGeometry*         m_actsGeom = NULL;
0065     TrkrHitSetContainer*  m_hitMap   = NULL;
0066     TrkrClusterContainer* m_clustMap = NULL;
0067     SvtxTrackMap*         m_trkMap   = NULL;
0068     JetContainer*         m_jetMap   = NULL;
0069 
0070     // submodules to use
0071     std::unique_ptr<TrksInJetQAHitManager>   m_hitManager   = NULL;
0072     std::unique_ptr<TrksInJetQAClustManager> m_clustManager = NULL;
0073     std::unique_ptr<TrksInJetQATrkManager>   m_trackManager = NULL;
0074     std::unique_ptr<TrksInJetQAJetManager>   m_jetManager   = NULL;
0075 
0076     // module utilities
0077     TrksInJetQAConfig m_config;
0078     TrksInJetQAHist   m_hist;
0079 
0080 };  // end TrksInJetQABaseFiller
0081 
0082 #endif
0083 
0084 // end ------------------------------------------------------------------------