Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TPCRawDataTree.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TPCRawDataTree.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef TPCRawDataTree_H
4 #define TPCRawDataTree_H
5 
6 #include <fun4all/SubsysReco.h>
7 
8 #include <tpc/TpcMap.h>
9 
10 #include <stdint.h>
11 #include <string>
12 #include <vector>
13 
14 class PHCompositeNode;
15 class TFile;
16 class TTree;
17 class TH1F;
18 class TH2F;
19 
20 class TPCRawDataTree : public SubsysReco
21 {
22  public:
23  explicit TPCRawDataTree(const std::string &fname = "TPCRawDataTree.root");
24 
25  ~TPCRawDataTree() override {}
26 
32  int InitRun(PHCompositeNode *topNode) override;
33 
37  int process_event(PHCompositeNode *topNode) override;
38 
40  int End(PHCompositeNode *topNode) override;
41 
42  void AddPacket(int packet)
43  {
44  m_packets.push_back(packet);
45  }
46 
47  void includeXYPos(bool doInclude)
48  {
49  m_includeXYPos = doInclude;
50  }
51 
52  protected:
54  std::vector<int> m_packets;
56 
57  private:
58  bool m_includeXYPos = true;
60  TFile *m_file = nullptr;
61  TTree *m_SampleTree = nullptr;
62  TTree *m_PacketTree = nullptr;
63  TTree *m_TaggerTree = nullptr;
64  //TTree *R1_map = nullptr;
65  //TTree *R2_map = nullptr;
66  //TTree *R3_map = nullptr;
67  TH1F *R1_hist = nullptr;
68  TH1F *R2_hist = nullptr;
69  TH1F *R3_hist = nullptr;
70  TH1F *TotalFEE = nullptr;
71  TH1F *TotalFEEsampa = nullptr;
72  TH1F *TotalFRAME = nullptr;
73  TH1F *checksumError_fee = nullptr;
74  TH1F *checksumError_feesampa = nullptr;
75  TH1F *checksumError_frame = nullptr;
76  TH2F *R1_time = nullptr;
77  TH2F *R2_time = nullptr;
78  TH2F *R3_time = nullptr;
79 
81 
82  int m_packet = 0;
83  int m_frame = 0;
85  int m_maxFEECount = 0;
86  int m_nSamples = 0;
87  int m_fee = 0;
88  int m_sampaAddress = 0;
89  int m_sampaChannel = 0;
90  int m_Channel = 0;
91  int m_BCO = 0;
92  int m_checksum = 0;
93  int m_checksumError = 0;
94  int side = 0;
95  double m_xPos = 0.;
96  double m_yPos = 0.;
97 
99  uint16_t m_tagger_type = 0;
100  uint8_t m_is_endat = 0;
101  uint8_t m_is_lvl1 = 0;
102  uint64_t m_bco = 0;
103  uint32_t m_lvl1_count = 0;
104  uint32_t m_endat_count = 0;
105  uint64_t m_last_bco = 0;
106  uint8_t m_modebits = 0;
107 
108 
109  uint64_t m_last_lvl1_bco = 0;
110 
111  std::vector<unsigned short> m_adcSamples;
112 
113  int FEE_R[26]={2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 2, 2, 1, 2, 2, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3};
114  int FEE_map[26]={4, 5, 0, 2, 1, 11, 9, 10, 8, 7, 6, 0, 1, 3, 7, 6, 5, 4, 3, 2, 0, 2, 1, 3, 5, 4};
115 };
116 
117 #endif // TPCRawDataTree_H