Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHTpcCentralMembraneClusterizer.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHTpcCentralMembraneClusterizer.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef PHTPCCENTRALMEMBRANECLUSTERIZER_H
4 #define PHTPCCENTRALMEMBRANECLUSTERIZER_H
5 
6 #include <string>
7 
8 #include <fun4all/SubsysReco.h>
9 
10 #include <trackbase/TrkrDefs.h>
14 
15 #include <memory>
16 
17 class PHCompositeNode;
18 class SvtxTrackMap;
19 class SvtxTrack;
20 class SvtxVertexMap;
25 
26 class TF1;
27 class TFile;
28 class TH1F;
29 class TH2F;
30 
32 {
33  public:
34 
35  PHTpcCentralMembraneClusterizer(const std::string &name = "PHTpcCentralMembraneClusterizer");
36 
37  void set_histos_on(const bool val) {_histos = val;}
38 
40  void set_histogram_outputfile(const std::string &outputfile)
41  {m_histogramfilename = outputfile;}
42 
43  void set_min_adc_value(const unsigned int val) {_min_adc_value = val;}
44  void set_min_z_value(const double val) {_min_z_value = val;}
45  void set_stripe_dr_values(const double dr1, const double dr2, const double dr3){ _cmclus_dr_inner = dr1; _cmclus_dr_mid = dr2; _cmclus_dr_outer = dr3;}
46 
47  void set_modulo_threshold( int val ) { m_moduloThreshold = val; }
49 
51  int InitRun(PHCompositeNode *topNode);
52 
54  int process_event(PHCompositeNode *topNode);
55 
57  int End(PHCompositeNode * topNode);
58 
59  protected:
60 
61  private:
62 
63  int GetNodes(PHCompositeNode* topNode);
64 
66 
69 
74 
76 
79  int m_cm_clusters = 0;
83 
86 
87  bool _histos = false;
88  TH1F *henergy = nullptr;
89  TH1F *hz = nullptr;
90  TH1F *hz_pos = nullptr;
91  TH1F *hz_neg = nullptr;
92  TH2F *hxy = nullptr;
93  TH1F *hDist = nullptr;
94  TH2F *hDistRow = nullptr;
95  TH1F *hDist2 = nullptr;
96  TH2F *hDistRowAdj = nullptr;
97  TH1F *hDist2Adj = nullptr;
98  TH1F *hClustE[3] = {nullptr};
99 
100  TH2F *hrPhi_reco_petalModulo_pos = nullptr;
101  TH2F *hrPhi_reco_petalModulo_neg = nullptr;
102 
103  TH1F *hphi_reco_pos[48] = {nullptr};
104  TH1F *hphi_reco_neg[48] = {nullptr};
105 
106  TH1F *hphi_reco_pair_pos[47] = {nullptr};
107  TH1F *hphi_reco_pair_neg[47] = {nullptr};
108 
109  int nPairAbove_pos[47] = {0};
110  int nPairAbove_neg[47] = {0};
111 
112  double pairAboveContent_pos[47] = {0.0};
113  double pairAboveContent_neg[47] = {0.0};
114 
115  std::string m_histogramfilename = "PHTpcCentralMembraneClusterizer.root";
116  std::unique_ptr<TFile> m_histogramfile;
117 
118  unsigned int _min_adc_value = 0;
119  double _min_z_value = 0.0;
120  double _cmclus_dr_inner = 0.51; //cm
121  double _cmclus_dr_mid = 0.95; //cm
122  double _cmclus_dr_outer = 1.025; //cm
123 
124 };
125 
126 #endif // PHTPCCENTRALMEMBRANECLUSTERIZER_H