Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
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 // class PHG4Particle;
0019 // class PHG4TruthInfoContainer;
0020 class SvtxClusterEval;
0021 class SvtxTrackMap;
0022 class SvtxTrack;
0023 
0024 /*
0025 namespace CLHEP
0026 {
0027   class HepLorentzVector;
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   // SvtxClusterEval *clustereval = nullptr;
0048   int m_mother_id = 0;
0049   double m_min_mass = 0.;
0050   double m_max_mass = 10.;
0051   // std::string m_mother_name;
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   // SvtxTrack *getTrack(unsigned int track_id, SvtxTrackMap *trackmap);
0075   // PHG4Particle *getTruthTrack(SvtxTrack *thisTrack);
0076   // CLHEP::HepLorentzVector *makeHepLV(PHCompositeNode *topNode, int track_number);
0077 
0078   // PHG4TruthInfoContainer *m_truthContainer = nullptr;
0079 
0080   // std::unique_ptr<SvtxEvalStack> m_svtxEvalStack;
0081 
0082   SvtxTrackMap *m_trackMap = nullptr;
0083   // PHG4TruthInfoContainer *m_truthInfo = nullptr;
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  // QAKFPARTICLE_H