File indexing completed on 2025-08-06 08:18:45
0001
0002
0003 #ifndef QAKFPARTICLE_H
0004 #define QAKFPARTICLE_H
0005
0006 #include <fun4all/SubsysReco.h>
0007
0008 #include <g4eval/SvtxEvalStack.h>
0009 #include <calotrigger/TriggerAnalyzer.h>
0010
0011 #include <TH1.h>
0012 #include <TH2.h>
0013 #include <memory>
0014 #include <string> // for string
0015
0016 class KFParticle_Container;
0017 class PHCompositeNode;
0018
0019
0020 class SvtxClusterEval;
0021 class SvtxTrackMap;
0022 class SvtxTrack;
0023
0024
0025
0026
0027
0028
0029
0030
0031 class QAKFParticle : public SubsysReco
0032 {
0033 public:
0034 QAKFParticle(const std::string &name, const std::string &mother_name, double min_m, double max_m);
0035
0036 virtual ~QAKFParticle() = default;
0037
0038 int Init(PHCompositeNode *topNode);
0039 int InitRun(PHCompositeNode *topNode);
0040 int process_event(PHCompositeNode *topNode);
0041
0042 std::string get_histo_prefix();
0043
0044 void setTrackMapName(const std::string &name) { m_trackMapName = name; }
0045
0046 protected:
0047
0048 int m_mother_id = 0;
0049 double m_min_mass = 0.;
0050 double m_max_mass = 10.;
0051
0052
0053 TH1F *h_mass_KFP = nullptr;
0054 TH2F *h_mass_KFP_eta = nullptr;
0055 TH2F *h_mass_KFP_phi = nullptr;
0056 TH2F *h_mass_KFP_pt = nullptr;
0057 TH1F *h_mass_KFP_crossing0 = nullptr;
0058 TH1F *h_mass_KFP_non_crossing0 = nullptr;
0059 TH1F *h_mass_KFP_ZDC_Coincidence = nullptr;
0060 TH1F *h_mass_KFP_MBD_NandS_geq_1_vtx_l_30_cm = nullptr;
0061 TH1F *h_mass_KFP_Jet_6_GeV_MBD_NandS_geq_1_vtx_l_10_cm = nullptr;
0062
0063 TriggerAnalyzer *triggeranalyzer{nullptr};
0064
0065 int m_ZDC_Coincidence_bit = INT_MAX;
0066 int m_MBD_NandS_geq_1_vtx_l_30_cm_bit = INT_MAX;
0067 int m_Jet_6_GeV_MBD_NandS_geq_1_vtx_l_10_cm_bit = INT_MAX;
0068
0069 private:
0070 int load_nodes(PHCompositeNode *);
0071
0072 void initializeTriggerInfo(PHCompositeNode *);
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082 SvtxTrackMap *m_trackMap = nullptr;
0083
0084 KFParticle_Container *m_kfpContainer = nullptr;
0085 std::map<std::string, std::pair<int, float>> particleMasses;
0086 std::string m_trackMapName = "SvtxTrackMap";
0087
0088 static const int nTriggerBits = 64;
0089 int counter = 0;
0090 };
0091
0092 #endif