Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef JETSEEDCOUNT_H
0004 #define JETSEEDCOUNT_H
0005 
0006 #include "JetQADefs.h"
0007 
0008 #include <fun4all/Fun4AllHistoManager.h>
0009 #include <fun4all/SubsysReco.h>
0010 
0011 #include <qautils/QAHistManagerDef.h>
0012 
0013 #include <limits>
0014 #include <string>
0015 #include <vector>
0016 
0017 
0018 class PHCompositeNode;
0019 class TH1;
0020 class TH2;
0021 class TriggerAnalyzer;
0022 
0023 class JetSeedCount : public SubsysReco
0024 {
0025  public:
0026   JetSeedCount(const std::string &moduleName = "JetSeedCount",
0027                const std::string &recojetname = "AntiKt_Tower_r04",
0028                const std::string &rawSeedName = "AntiKt_TowerInfo_HIRecoSeedsRaw_r02",
0029                const std::string &subSeedName = "AntiKt_TowerInfo_HIRecoSeedsSub_r02",
0030                const std::string &truthjetname = "AntiKt_Truth_r04",
0031                const std::string &outputfilename = "myjetanalysis.root");
0032 
0033   ~JetSeedCount() override = default;
0034 
0035   void
0036   setEtaRange(double low, double high)
0037   {
0038     m_etaRange.first = low;
0039     m_etaRange.second = high;
0040   }
0041   void
0042   setPtRange(double low, double high)
0043   {
0044     m_ptRange.first = low;
0045     m_ptRange.second = high;
0046   }
0047   void
0048   setWriteToOutputFile(bool write)
0049   {
0050     m_writeToOutputFile = write;
0051   }
0052   void
0053   setHistTag(const std::string &tag)
0054   {
0055     m_histTag = tag;
0056   }
0057   void
0058   setTrgToSelect(const uint32_t trig = JetQADefs::GL1::MBDNSJet1)
0059   {
0060     m_doTrgSelect = true;
0061     m_trgToSelect = trig;
0062   }
0063   void
0064   setPPMode(const bool pp)
0065   {
0066     m_inPPMode = pp;
0067   }
0068 
0069   int Init(PHCompositeNode *topNode) override;
0070 
0071   int InitRun(PHCompositeNode *topNode) override;
0072 
0073   int process_event(PHCompositeNode *topNode) override;
0074 
0075   /// Called at the end of all processing.
0076   int End(PHCompositeNode *topNode) override;
0077 
0078   void Print(const std::string &what = "ALL") const override;
0079 
0080  private:
0081   Fun4AllHistoManager *m_manager{nullptr};
0082   TriggerAnalyzer *m_analyzer{nullptr};
0083 
0084   bool m_writeToOutputFile{false};
0085   bool m_inPPMode{false};
0086 
0087   int m_event{0};
0088 
0089   std::string m_moduleName;
0090   std::string m_recoJetName;
0091   std::string m_rawSeedName;
0092   std::string m_subSeedName;
0093   std::string m_truthJetName;
0094   std::string m_outputFileName;
0095   std::string m_histTag {"AllTrig_AntiKt_Tower_r04_Sub1"};
0096 
0097   std::pair<double, double> m_etaRange {-1,1};
0098   std::pair<double, double> m_ptRange{5,100};
0099 
0100   // trigger selection
0101   bool m_doTrgSelect {false};
0102   uint32_t m_trgToSelect {JetQADefs::GL1::MBDNSJet1};
0103 
0104   TH1* m_hRawSeedCount{nullptr};
0105   TH1* m_hRawPt{nullptr};
0106   TH1* m_hRawPt_All{nullptr};
0107   TH2* m_hRawEtaVsPhi{nullptr};
0108   TH1* m_hSubSeedCount{nullptr};
0109   TH1* m_hSubPt{nullptr};
0110   TH1* m_hSubPt_All{nullptr};
0111   TH2* m_hSubEtaVsPhi{nullptr};
0112   TH2* m_hRawSeedEnergyVsCent{nullptr};
0113   TH2* m_hSubSeedEnergyVsCent{nullptr};
0114   TH1* m_hCentMbd{nullptr};
0115   TH2* m_hRawSeedVsCent{nullptr};
0116   TH2* m_hSubSeedVsCent{nullptr};
0117 
0118 };
0119 
0120 #endif  // JETSEEDCOUNT_H