File indexing completed on 2026-08-31 08:22:18
0001 #ifndef QA_TRACKING_MICROMEGASDRIFTQA_H
0002 #define QA_TRACKING_MICROMEGASDRIFTQA_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <fun4all/SubsysReco.h>
0013 #include <tpc/TpcGlobalPositionWrapper.h>
0014
0015 #include <string>
0016
0017 class ActsGeometry;
0018 class PHCompositeNode;
0019 class PHG4CylinderGeomContainer;
0020 class SvtxTrackMap;
0021 class TrkrClusterContainer;
0022 class TH1;
0023 class TH2;
0024
0025 class MicromegasDriftQA : public SubsysReco
0026 {
0027 public:
0028 explicit MicromegasDriftQA(const std::string& name = "MicromegasDriftQA");
0029
0030 ~MicromegasDriftQA() override = default;
0031
0032
0033 int InitRun(PHCompositeNode* topNode) override;
0034
0035
0036 int process_event(PHCompositeNode* topNode) override;
0037
0038
0039 int End(PHCompositeNode* topNode) override;
0040
0041
0042 void set_trackmapname(const std::string& value) { m_trackmapname = value; }
0043
0044
0045 void set_drift_velocity(double value) { m_drift_velocity = value; }
0046
0047
0048 void set_min_tpc_layer(unsigned int value) { m_min_tpc_layer = value; }
0049 void set_max_tpc_layer(unsigned int value) { m_max_tpc_layer = value; }
0050
0051
0052 void set_y_local_cut(double value) { m_y_local_cut = value; }
0053
0054
0055 void set_z_search_window(double value) { m_z_search_win = value; }
0056
0057
0058 void set_min_slice_entries(int value) { m_min_slice_entries = value; }
0059
0060 private:
0061 int load_nodes(PHCompositeNode* topNode);
0062
0063 void createHistos();
0064 std::string getHistoPrefix() const;
0065
0066
0067
0068
0069
0070 TH2* h_ztrk_dz[8]{nullptr};
0071
0072
0073 TH1* h_dz{nullptr};
0074
0075
0076 TH1* h_tile{nullptr};
0077
0078
0079 TH1* h_ylocal{nullptr};
0080
0081
0082 TH1* h_ntracks{nullptr};
0083
0084
0085 TH1* h_driftSummary{nullptr};
0086
0087
0088
0089
0090
0091 ActsGeometry* m_tGeometry{nullptr};
0092 TpcGlobalPositionWrapper m_globalPositionWrapper;
0093 PHG4CylinderGeomContainer* m_micromegas_geomcontainer{nullptr};
0094 TrkrClusterContainer* m_cluster_map{nullptr};
0095 SvtxTrackMap* m_track_map{nullptr};
0096
0097
0098
0099 std::string m_trackmapname{"SvtxTrackMap"};
0100
0101
0102 double m_drift_velocity{0.00745};
0103
0104
0105 unsigned int m_min_tpc_layer{39};
0106 unsigned int m_max_tpc_layer{55};
0107
0108
0109 double m_y_local_cut{22.0};
0110
0111
0112 double m_z_search_win{3.0};
0113
0114
0115 int m_min_slice_entries{10};
0116 };
0117
0118 #endif