File indexing completed on 2025-08-03 08:18:10
0001
0002
0003 #ifndef QA_TRACKING_TPCCLUSTERQA_H
0004 #define QA_TRACKING_TPCCLUSTERQA_H
0005
0006 #include <fun4all/SubsysReco.h>
0007
0008 #include <map>
0009 #include <set>
0010 #include <string>
0011 #include <vector>
0012
0013 class PHCompositeNode;
0014 class TH2;
0015 class TH1;
0016 class TpcClusterQA : public SubsysReco
0017 {
0018 public:
0019 TpcClusterQA(const std::string &name = "TpcClusterQA");
0020
0021 ~TpcClusterQA() override = default;
0022
0023 int InitRun(PHCompositeNode *topNode) override;
0024 int process_event(PHCompositeNode *topNode) override;
0025 int EndRun(const int runnumber) override;
0026
0027 private:
0028 void createHistos();
0029
0030 std::vector<float> m_clusgz;
0031 std::vector<int> m_cluslayer;
0032 std::vector<int> m_clusphisize;
0033 std::vector<int> m_cluszsize;
0034 std::vector<int> m_region;
0035
0036 std::string getHistoPrefix() const;
0037 std::set<int> m_layers;
0038 std::multimap<int, int> m_layerRegionMap;
0039
0040 int m_event = 0;
0041 int m_totalClusters = 0;
0042 int m_clustersPerSector[24] = {0};
0043
0044 TH2 *h_totalclusters = nullptr;
0045 TH2 *h_clusterssector = nullptr;
0046 TH2 *h_hitpositions = nullptr;
0047 TH1 *h_hitzpositions_side0 = nullptr;
0048 TH1 *h_hitzpositions_side1 = nullptr;
0049
0050 TH1 *h_phisize_side0[3] = {nullptr};
0051 TH1 *h_phisize_side1[3] = {nullptr};
0052 TH1 *h_zsize[3] = {nullptr};
0053 TH1 *h_rphierror[3] = {nullptr};
0054 TH1 *h_zerror[3] = {nullptr};
0055 TH1 *h_clusedge[3] = {nullptr};
0056 TH1 *h_clusoverlap[3] = {nullptr};
0057 TH1 *h_clusxposition_side0[3] = {nullptr};
0058 TH1 *h_clusxposition_side1[3] = {nullptr};
0059 TH1 *h_clusyposition_side0[3] = {nullptr};
0060 TH1 *h_clusyposition_side1[3] = {nullptr};
0061 TH1 *h_cluszposition_side0[3] = {nullptr};
0062 TH1 *h_cluszposition_side1[3] = {nullptr};
0063 };
0064
0065 #endif