Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:16:10

0001 // $Id: $
0002 
0003 /*!
0004  * \file TPCDataStreamEmulator.h
0005  * \brief 
0006  * \author Jin Huang <jhuang@bnl.gov>
0007  * \version $Revision:   $
0008  * \date $Date: $
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  * \brief TPCDataStreamEmulator
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   // histograms
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  // #if !defined(__CINT__) || defined(__CLING__)
0091 };
0092 
0093 #endif /* TPCDATASTREAMEMULATOR_H_ */