ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHTruthClustering.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHTruthClustering.h
1 
7 #ifndef TRACKRECO_PHTRUTHCLUSTERING_H
8 #define TRACKRECO_PHTRUTHCLUSTERING_H
9 
10 #include <fun4all/SubsysReco.h>
11 
12 // rootcint barfs with this header so we need to hide it
13 #include <gsl/gsl_rng.h>
14 
15 class PHG4Hit;
16 class PHG4HitContainer;
17 class PHG4Particle;
21 class TrkrCluster;
24 
25 #include <string> // for string
26 #include <vector>
27 #include <map>
28 #include <set>
29 #include <memory>
30 
31 // forward declarations
32 class PHCompositeNode;
34 
36 {
37 public:
38  PHTruthClustering(const std::string &name = "PHTruthClustering");
39  ~PHTruthClustering() override;
40 
41  int InitRun(PHCompositeNode *topNode) override;
42  int process_event(PHCompositeNode *topNode) override;
43  int End(PHCompositeNode *topNode) override;
44 
46 
47 private:
49 int GetNodes(PHCompositeNode *topNode);
50 
51 std::map<unsigned int, TrkrCluster* > all_truth_clusters(PHG4Particle* particle);
52 std::set<PHG4Hit*> all_truth_hits(PHG4Particle* particle);
53 
54  void LayerClusterG4Hits(std::set<PHG4Hit*> truth_hits, std::vector<PHG4Hit*> &contributing_hits, std::vector<double> &contributing_hits_energy, std::vector<std::vector<double>> &contributing_hits_entry, std::vector<std::vector<double>> &contributing_hits_exit, float layer, float &x, float &y, float &z, float &t, float &e);
55 
56  void G4ClusterSize(unsigned int layer, std::vector<std::vector<double>> contributing_hits_entry,std::vector<std::vector<double>> contributing_hits_exit, float &g4phisize, float &g4zsize);
57 
58  float line_circle_intersection(float x[], float y[], float z[], float radius);
59  unsigned int getTpcSector(double x, double y);
60 
61  unsigned int getAdcValue(double gedep);
62 
63  int iclus = 0;
64 
68 
73 
78 
79  const unsigned int _nlayers_maps = 3;
80  const unsigned int _nlayers_intt = 4;
81  const unsigned int _nlayers_tpc = 48;
82  const unsigned int _nlayers_mms = 2;
83 
84  double clus_err_rphi[57] = {0};
85  double clus_err_z[57] = {0};
86 
87  double mvtx_clus_err_rphi = 5e-04;
88  double mvtx_clus_err_z = 5e-04;
89  double intt_clus_err_rphi = 25e-04;
90  double intt_clus_err_z = 1.0;
91  double tpc_inner_clus_err_rphi = 200e-04;
92  double tpc_inner_clus_err_z = 750e-04;
93  double tpc_outer_clus_err_rphi = 150e-04;
94  double tpc_outer_clus_err_z = 500e-04;
95  double mms_layer55_clus_err_rphi = 100e-04;
96  double mms_layer55_clus_err_z = 25.0;
98  double mms_layer56_clus_err_z = 200e-04;
99 
101 
102 };
103 
104 #endif