#include <TTree.h>
#endif
+#ifndef ROOT_TH1
+#include <TH1.h>
+#endif
+
// Forward class declarations
-class TH1F;
class AliRawDB;
AliRawData *GetRawData();
Int_t GetNSubEvents() const { return fNSubEvents; }
AliRawEvent *NextSubEvent();
+ AliRawEvent *GetSubEvent(Int_t index) const;
void Reset();
ClassDef(AliRawEvent,1) // ALICE raw event object
Bool_t create = kTRUE);
~AliRawDB() { Close(); }
- virtual Bool_t Create();
- virtual void Close();
- void Fill() { fTree->Fill(); }
- Bool_t FileFull() { return (fRawDB->GetBytesWritten() > fMaxSize) ?
- kTRUE : kFALSE; }
+ virtual const char *GetOpenOption() const { return "RECREATE"; }
+ virtual Bool_t Create();
+ virtual void Close();
+ void Fill() { fTree->Fill(); }
+ Bool_t FileFull() { return (fRawDB->GetBytesWritten() > fMaxSize) ?
+ kTRUE : kFALSE; }
- Bool_t NextFile();
+ Bool_t NextFile();
Double_t GetBytesWritten() const { return fRawDB->GetBytesWritten(); }
TFile *GetDB() const { return fRawDB; }
};
+class AliRawCastorDB : public AliRawDB {
+
+private:
+ const char *GetFileName();
+
+public:
+ AliRawCastorDB(AliRawEvent *event, Double_t maxsize, Int_t compress);
+ ~AliRawCastorDB() { Close(); }
+
+ const char *GetOpenOption() const { return "-RECREATE"; }
+ void Close();
+
+ ClassDef(AliRawCastorDB,0) // Raw DB via CASTOR and rootd
+};
+
+
class AliRawRootdDB : public AliRawDB {
private:
TFile *fRunDB; // run database
public:
- AliRunDB();
+ AliRunDB(Bool_t noLocalDB = kFALSE);
~AliRunDB() { Close(); }
void Update(AliStats *stats);
void UpdateRDBMS(AliStats *stats);
+ void UpdateAliEn(AliStats *stats);
void Close();
ClassDef(AliRunDB,0) // Run (bookkeeping) DB
class AliMDC : public TObject {
+public:
+ enum EWriteMode { kLOCAL, kRFIO, kROOTD, kCASTOR, kDEVNULL };
+
private:
- Int_t fFd; // DATE input stream
- Int_t fCompress; // compression factor used for raw output DB
- Int_t fNumEvents; // number of events processed
- Int_t fDebugLevel; // controls debug print-out
- Double_t fMaxFileSize; // maximum size of raw output DB
- Bool_t fUseFifo; // read from fifo, file otherwise
- Bool_t fUseEb; // use event builder API instead of fifo
- Bool_t fUseFilter; // use 3rd level trigger filter
- Bool_t fUseRFIO; // write directly to RFIO file
- Bool_t fUseRootd; // write directly to rootd file
- Bool_t fUseDevNull; // write to /dev/null
- Bool_t fUseLoop; // loop on input source (must be file)
- Bool_t fStopLoop; // break from endless loop (triggered by SIGUSR1)
+ Int_t fFd; // DATE input stream
+ Int_t fCompress; // compression factor used for raw output DB
+ Int_t fNumEvents; // number of events processed
+ Int_t fDebugLevel; // controls debug print-out
+ Double_t fMaxFileSize; // maximum size of raw output DB
+ EWriteMode fWriteMode; // write mode (local, rfio, rootd, castor, /dev/null)
+ Bool_t fUseFifo; // read from fifo, file otherwise
+ Bool_t fUseEb; // use event builder API instead of fifo
+ Bool_t fUseFilter; // use 3rd level trigger filter
+ Bool_t fUseLoop; // loop on input source (must be file)
+ Bool_t fStopLoop; // break from endless loop (triggered by SIGUSR1)
static Bool_t fgDeleteFiles;
public:
AliMDC(Int_t fd, Int_t compress, Double_t maxFileSize, Bool_t useFilter,
- Bool_t useRFIO, Bool_t useROOTD, Bool_t useDEVNULL,
- Bool_t useLoop, Bool_t delFiles);
+ EWriteMode mode, Bool_t useLoop, Bool_t delFiles);
~AliMDC() { }
Int_t Run();
Bool_t StopLoop() const { return fStopLoop; }
void SetDebugLevel(Int_t level) { fDebugLevel = level; }
- Bool_t GetDebugLevel() const { return fDebugLevel; }
+ Int_t GetDebugLevel() const { return fDebugLevel; }
static Bool_t DeleteFiles() { return fgDeleteFiles; }
R__EXTERN AliMDC *gAliMDC;
#define ALIDEBUG(level) \
- if (gAliMDC && gAliMDC->GetDebugLevel() >= (level))
+ if (gAliMDC && (gAliMDC->GetDebugLevel() >= (level)))
#endif