File indexing completed on 2026-08-31 08:22:18
0001 #ifndef QA_TRACKING_SILICONDRIFTQA_H
0002 #define QA_TRACKING_SILICONDRIFTQA_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include <fun4all/SubsysReco.h>
0016
0017 #include <string>
0018
0019 class PHCompositeNode;
0020 class TH1;
0021 class TH2;
0022
0023 class SiliconDriftQA : public SubsysReco
0024 {
0025 public:
0026 explicit SiliconDriftQA(const std::string& name = "SiliconDriftQA");
0027
0028 ~SiliconDriftQA() override = default;
0029
0030
0031 int InitRun(PHCompositeNode* topNode) override;
0032
0033
0034 int process_event(PHCompositeNode* topNode) override;
0035
0036
0037 int End(PHCompositeNode* topNode) override;
0038
0039
0040 void set_trackmapname(const std::string& value) { m_trackmapname = value; }
0041
0042
0043 void set_drift_velocity(double value) { m_drift_velocity = value; }
0044
0045
0046 void set_crossing_interval(double value) { m_crossing_interval = value; }
0047
0048
0049 void set_min_pt(double value) { m_min_pt = value; }
0050
0051
0052 void set_min_nclusters_tpc(unsigned int value) { m_min_nclusters_tpc = value; }
0053
0054
0055 void set_min_nclusters_mvtx(unsigned int value) { m_min_nclusters_mvtx = value; }
0056
0057
0058 void set_min_nclusters_intt(unsigned int value) { m_min_nclusters_intt = value; }
0059
0060
0061 void set_max_eta(double value) { m_max_eta = value; }
0062
0063
0064 void set_max_z(double value) { m_max_z = value; }
0065
0066
0067 void set_max_dz(double value) { m_max_dz = value; }
0068
0069
0070 void set_min_slice_entries(int value) { m_min_slice_entries = value; }
0071
0072 private:
0073 void createHistos();
0074 std::string getHistoPrefix() const;
0075
0076
0077
0078
0079
0080 TH2* h_zsi_dz[2]{nullptr, nullptr};
0081
0082
0083 TH1* h_dz{nullptr};
0084
0085
0086 TH1* h_ntracks{nullptr};
0087
0088
0089 TH1* h_driftSummary{nullptr};
0090
0091
0092
0093
0094 std::string m_trackmapname{"SvtxTrackMap"};
0095
0096
0097 double m_drift_velocity{0.00749};
0098
0099
0100 double m_crossing_interval{106.65237};
0101
0102
0103
0104 double m_min_pt{0.5};
0105 unsigned int m_min_nclusters_tpc{20};
0106 unsigned int m_min_nclusters_mvtx{3};
0107 unsigned int m_min_nclusters_intt{2};
0108 double m_max_eta{0.9};
0109
0110
0111
0112 double m_max_z{20.0};
0113 double m_max_dz{10.0};
0114
0115
0116 int m_min_slice_entries{10};
0117 };
0118
0119 #endif