NSCL DDAS 12.2-009
Support for XIA DDAS at FRIB
RootFileDataSink.h
Go to the documentation of this file.
1/*
2 This software is Copyright by the Board of Trustees of Michigan
3 State University (c) Copyright 2017.
4
5 You may use this software under the terms of the GNU public license
6 (GPL). The terms of this license are described at:
7
8 http://www.gnu.org/licenses/gpl.txt
9
10 Authors:
11 Ron Fox
12 Jeromy Tompkins
13 Aaron Chester
14 FRIB
15 Michigan State University
16 East Lansing, MI 48824-1321
17*/
18
24#ifndef ROOTFILEDATASINK_H
25#define ROOTFILEDATASINK_H
26
27#include <stdlib.h>
28
29class TTree;
30class TFile;
31namespace ddasfmt {
32class DDASHitUnpacker;
33}
34class DDASRootEvent; // Holds the decoded event for output.
35namespace ufmt {
36class RingItemFactoryBase;
37class CRingItem;
38} // namespace ufmt
39
51private:
52 ufmt::RingItemFactoryBase *m_pFactory;
53 ddasfmt::DDASHitUnpacker *m_pUnpacker;
54 DDASRootEvent *m_pEvent;
55 TTree *m_pTree;
56 TFile *m_pFile;
57 bool m_warnedPutUsed;
58
59public:
68 RootFileDataSink(ufmt::RingItemFactoryBase *pFactory, const char *fileName,
69 const char *treeName = "ddas");
71 virtual ~RootFileDataSink();
72
73public:
79 virtual void putItem(const ufmt::CRingItem &item);
85 virtual void put(const void *pData, size_t nBytes);
86};
87
88#endif
Encapsulates a built DDAS event with added capabilities for writing to ROOT files.
Definition: DDASRootEvent.h:58
A ROOT file sink for DDAS data.
Definition: RootFileDataSink.h:50
virtual void put(const void *pData, size_t nBytes)
Called to put arbitrary data to the file.
Definition: RootFileDataSink.cpp:170
virtual ~RootFileDataSink()
Destructor.
Definition: RootFileDataSink.cpp:82
RootFileDataSink(ufmt::RingItemFactoryBase *pFactory, const char *fileName, const char *treeName="ddas")
Constructor.
Definition: RootFileDataSink.cpp:53
virtual void putItem(const ufmt::CRingItem &item)
Put a ring item to file.
Definition: RootFileDataSink.cpp:96
Definition: RootFileDataSink.h:31
Definition: DataSource.h:28