Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Fun4AllFileOutStream.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Fun4AllFileOutStream.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef FUN4ALLRAW_FUN4ALLFILEOUTSTREAM_H
4 #define FUN4ALLRAW_FUN4ALLFILEOUTSTREAM_H
5 
7 
8 #include <Event/phenixTypes.h>
9 
10 #include <iostream>
11 #include <string>
12 
13 class Event;
14 class oBuffer;
15 
17 {
18  public:
19  static const unsigned int LENGTH = (4 * 1024 * 1024);
20  Fun4AllFileOutStream(const std::string &frule = "OUTDATA-%010d-%04d.PRDFF", const std::string &name = "FILEOUTSTREAM");
21  virtual ~Fun4AllFileOutStream();
22  int WriteEventOut(Event *evt) override;
23  int CloseOutStream() override;
24  void identify(std::ostream &os = std::cout) const;
25  oBuffer *GetoBuffer() { return m_ob; }
26  void SetoBuffer(oBuffer *bf) { m_ob = bf; }
27  uint64_t MaxSize() const { return m_MaxSize; }
28  void DeleteoBuffer();
29  std::string FileRule() const { return m_FileRule; }
30  int iSeq() const { return m_iSeq; }
31  void iSeq(const int i) { m_iSeq = i; }
32  uint64_t BytesWritten() const { return m_BytesWritten; }
33  void BytesWritten(const uint64_t i) { m_BytesWritten = i; }
34  int OutFileDescriptor() const { return m_OutFileDesc; }
35  void OutFileDescriptor(const int i) { m_OutFileDesc = i; }
36  PHDWORD *xb() { return m_xb; }
37  void SetNEvents(unsigned int i) {m_nEvents = i;}
38  unsigned int GetNEvents() const {return m_nEvents;}
39 
40  private:
42  oBuffer *m_ob {nullptr};
43  int m_iSeq {0};
45  int m_OutFileDesc {-1};
46  unsigned int m_nEvents {0};
47  uint64_t m_BytesWritten {0};
48  uint64_t m_MaxSize {100000000000LL}; // 100GB
49 };
50 
51 #endif