ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
QAG4SimulationKFParticle.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file QAG4SimulationKFParticle.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef QAG4SIMULATIONKFPARTICLE_H
4 #define QAG4SIMULATIONKFPARTICLE_H
5 
6 #include <fun4all/SubsysReco.h>
7 
8 #include <g4eval/SvtxEvalStack.h>
9 
10 #include <memory>
11 #include <string> // for string
12 
14 class PHCompositeNode;
15 class PHG4Particle;
17 class SvtxClusterEval;
18 class SvtxTrackMap;
19 class SvtxTrack;
20 
21 namespace CLHEP
22 {
23  class HepLorentzVector;
24 }
25 
27 {
28  public:
29  QAG4SimulationKFParticle(const std::string &name, const std::string &mother_name, double min_m, double max_m);
30 
31  virtual ~QAG4SimulationKFParticle() = default;
32 
33  int Init(PHCompositeNode *topNode);
34  int InitRun(PHCompositeNode *topNode);
35  int process_event(PHCompositeNode *topNode);
36 
37  std::string get_histo_prefix();
38 
39  void setTrackMapName(const std::string &name) { m_trackMapName = name; }
40 
41  protected:
43  int m_mother_id = 0;
44  double m_min_mass = 0.;
45  double m_max_mass = 10.;
46  std::string m_mother_name;
47 
48  private:
50 
51  SvtxTrack *getTrack(unsigned int track_id, SvtxTrackMap *trackmap);
53  CLHEP::HepLorentzVector *makeHepLV(PHCompositeNode *topNode, int track_number);
54 
56 
57  std::unique_ptr<SvtxEvalStack> m_svtxEvalStack;
58 
62  std::map<std::string, std::pair<int, float>> particleMasses;
63  std::string m_trackMapName = "SvtxTrackMap";
64 };
65 
66 #endif // QAG4SIMULATIONKFPARTICLE_H