AliMDC and DB classes moved from library to alimdc executable
[u/mrichter/AliRoot.git] / RAW / AliRawDB.h
CommitLineData
a197a4ce 1#ifndef ALIRAWDB_H
2#define ALIRAWDB_H
3// @(#)alimdc:$Name$:$Id$
4// Author: Fons Rademakers 26/11/99
5
6/* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
8
9//////////////////////////////////////////////////////////////////////////
10// //
11// AliRawDB //
12// //
13//////////////////////////////////////////////////////////////////////////
14
15#ifndef ROOT_TObject
16#include <TObject.h>
17#endif
18
19#ifndef ROOT_TFile
20#include <TFile.h>
21#endif
22
23#ifndef ROOT_TTree
24#include <TTree.h>
25#endif
26
27
28// Forward class declarations
29class AliRawEvent;
b7d09bb3 30class AliStats;
a197a4ce 31class TFile;
32
a109e73e 33#ifdef USE_HLT
34class AliESD;
35#endif
a197a4ce 36
37class AliRawDB : public TObject {
38
39public:
a109e73e 40 AliRawDB(AliRawEvent *event,
41#ifdef USE_HLT
42 AliESD *esd,
43#endif
44 Double_t maxsize, Int_t compress,
a197a4ce 45 Bool_t create = kTRUE);
46 virtual ~AliRawDB() { Close(); }
47
48 virtual const char *GetOpenOption() const { return "RECREATE"; }
49 virtual Int_t GetNetopt() const { return 0; }
50 virtual Bool_t Create();
51 virtual void Close();
a109e73e 52 void Fill() { fTree->Fill(); fESDTree->Fill(); }
a197a4ce 53 Bool_t FileFull() { return (fRawDB->GetBytesWritten() > fMaxSize) ?
54 kTRUE : kFALSE; }
55
b7d09bb3 56 void WriteStats(AliStats* stats);
57
a197a4ce 58 Bool_t NextFile();
59
60 Double_t GetBytesWritten() const { return fRawDB->GetBytesWritten(); }
61 TFile *GetDB() const { return fRawDB; }
62 const char *GetDBName() const { return fRawDB->GetName(); }
63 Int_t GetEvents() const { return (Int_t) fTree->GetEntries(); }
64 AliRawEvent *GetEvent() const { return fEvent; }
65 Float_t GetCompressionFactor() const;
66 Int_t GetCompressionMode() const { return fRawDB->GetCompressionLevel(); }
67
68protected:
69 TFile *fRawDB; // DB to store raw data
70 TTree *fTree; // tree used to store raw data
71 AliRawEvent *fEvent; // AliRawEvent via which data is stored
a109e73e 72#ifdef USE_HLT
73 TTree *fESDTree; // tree for storing HLT ESD information
74 AliESD *fESD; // pointer to HLT ESD object
75#endif
a197a4ce 76 Int_t fCompress; // compression mode (1 default)
77 Double_t fMaxSize; // maximum size in bytes of the raw DB
78
79 virtual const char *GetFileName() const;
80 virtual Bool_t FSHasSpace(const char *fs) const;
81 virtual void MakeTree();
82
83private:
84 AliRawDB(const AliRawDB& rawDB);
85 AliRawDB& operator = (const AliRawDB& rawDB);
86
87 ClassDef(AliRawDB,0) // Raw DB
88};
89
90#endif