File indexing completed on 2025-08-06 08:16:10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef TPCDATASTREAMEMULATOR_H_
0012 #define TPCDATASTREAMEMULATOR_H_
0013
0014 #include <fun4all/SubsysReco.h>
0015
0016 #include <vector>
0017
0018 class PHCompositeNode;
0019 class Fun4AllHistoManager;
0020 class TH1;
0021 class TH2;
0022
0023
0024
0025
0026 class TPCDataStreamEmulator : public SubsysReco
0027 {
0028 public:
0029 TPCDataStreamEmulator(
0030 unsigned int minLayer,
0031 unsigned int m_maxLayer,
0032 const std::string &outputfilenamebase = "TPCDataStreamEmulator");
0033 virtual ~TPCDataStreamEmulator();
0034
0035 int Init(PHCompositeNode *topNode);
0036 int InitRun(PHCompositeNode *topNode);
0037 int process_event(PHCompositeNode *topNode);
0038 int End(PHCompositeNode *topNode);
0039
0040 void maxLayer(int maxLayer)
0041 {
0042 m_maxLayer = maxLayer;
0043 }
0044
0045 void minLayer(int minLayer)
0046 {
0047 m_minLayer = minLayer;
0048 }
0049
0050 void outputFileNameBase(const std::string &outputFileNameBase)
0051 {
0052 m_outputFileNameBase = outputFileNameBase;
0053 }
0054
0055 void saveDataStreamFile(bool saveDataStreamFile)
0056 {
0057 m_saveDataStreamFile = saveDataStreamFile;
0058 }
0059
0060 private:
0061 #if !defined(__CINT__) || defined(__CLING__)
0062
0063 Fun4AllHistoManager *getHistoManager();
0064 int writeWavelet(int layer, int side, int phibin, int hittime, const std::vector<unsigned int> &wavelet);
0065
0066 bool m_saveDataStreamFile;
0067
0068 std::string m_outputFileNameBase;
0069
0070 int m_minLayer;
0071 int m_maxLayer;
0072
0073 int m_evtCounter;
0074
0075 double m_vertexZAcceptanceCut;
0076 double m_etaAcceptanceCut;
0077
0078
0079 TH1 *m_hDataSize;
0080 TH1 *m_hWavelet;
0081 TH1 *m_hNChEta;
0082 TH2 *m_hLayerWaveletSize;
0083 TH2 *m_hLayerHit;
0084 TH2 *m_hLayerZBinHit;
0085 TH2 *m_hLayerZBinADC;
0086 TH2 *m_hLayerDataSize;
0087 TH2 *m_hLayerSumHit;
0088 TH2 *m_hLayerSumDataSize;
0089
0090 #endif
0091 };
0092
0093 #endif