Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // ----------------------------------------------------------------------------
0002 // 'TrksInJetQAInJetFiller.h'
0003 // Derek Anderson
0004 // 04.03.2024
0005 //
0006 // A submodule for the TrksInJetsQA F4A module to produce
0007 // QA histograms for tracks and more in jets
0008 // ----------------------------------------------------------------------------
0009 
0010 #ifndef TRKSINJETQAINJETFILLER_H
0011 #define TRKSINJETQAINJETFILLER_H
0012 
0013 // c+ utilities
0014 #include <vector>
0015 #include <cassert>
0016 // root libraries
0017 #include <TMath.h>
0018 // phool libraries
0019 #include <phool/phool.h>
0020 #include <phool/getClass.h>
0021 #include <phool/PHCompositeNode.h>
0022 // tracking libraries
0023 #include <trackbase/TrkrHit.h>
0024 #include <trackbase/TrkrDefs.h>
0025 #include <trackbase/TrkrHitSet.h>
0026 #include <trackbase/TrkrCluster.h>
0027 #include <trackbase/ActsGeometry.h>
0028 #include <trackbase/TrkrHitSetContainer.h>
0029 #include <trackbase/TrkrClusterContainer.h>
0030 #include <trackbase_historic/SvtxTrack.h>
0031 #include <trackbase_historic/SvtxTrackMap.h>
0032 // particle flow libraries
0033 #include <particleflowreco/ParticleFlowElement.h>
0034 #include <particleflowreco/ParticleFlowElementContainer.h>
0035 // jet libraries
0036 #include <jetbase/Jet.h>
0037 #include <jetbase/JetContainer.h>
0038 // g4eval libraries
0039 #include <g4eval/ClusKeyIter.h>
0040 // module utilities
0041 #include "TrksInJetQATypes.h"
0042 // submodule definitions
0043 #include "TrksInJetQABaseFiller.h"
0044 
0045 
0046 
0047 // TrksInJetQAInJetFiller -----------------------------------------------------
0048 
0049 class TrksInJetQAInJetFiller : public TrksInJetQABaseFiller {
0050 
0051   public:
0052 
0053     // additional nodes to grab
0054     enum Node {Flow};
0055 
0056     // ctor/dtor
0057     using TrksInJetQABaseFiller::TrksInJetQABaseFiller;
0058     ~TrksInJetQAInJetFiller() {};
0059 
0060     // inherited public methods
0061     void Fill(PHCompositeNode* topNode) override;
0062 
0063   private:
0064 
0065     // private methods
0066     void       GetNode(const int node, PHCompositeNode* topNode);
0067     void       FillJetAndTrackQAHists(PHCompositeNode* topNode);
0068     void       FillClustAndHitQAHists(SvtxTrack* track);
0069     void       GetCstTracks(Jet* jet, PHCompositeNode* topNode);
0070     void       GetNonCstTracks(Jet* jet);
0071     bool       IsCstNotRelevant(const uint32_t type);
0072     bool       IsTrkInList(const uint32_t id);
0073     double     GetTrackJetDist(SvtxTrack* track, Jet* jet);
0074     PFObject*  GetPFObject(const uint32_t id, PHCompositeNode* topNode);
0075     SvtxTrack* GetTrkFromPFO(PFObject* pfo);
0076 
0077     // additional dst nodes needed
0078     PFObjectStore* m_flowStore = NULL;
0079 
0080     // for tracks in jet
0081     std::vector<SvtxTrack*> m_trksInJet;
0082 
0083 };  // end TrksInJetQAInJetFiller
0084 
0085 #endif
0086 
0087 // end ------------------------------------------------------------------------