#include <TROOT.h>
#include <TStopwatch.h>
#include <TPluginManager.h>
+#include <TBufferFile.h>
#include <sys/uio.h>
#ifdef USE_EB
//______________________________________________________________________________
AliMDC::AliMDC(Int_t compress, Bool_t deleteFiles, EFilterMode filterMode,
Double_t maxSizeTagDB, const char* fileNameTagDB,
- const char *guidFileFolder) :
+ const char *guidFileFolder,
+ Int_t basketsize) :
fEvent(new AliRawEvent),
fESD(NULL),
fStats(NULL),
fTagDB(NULL),
fEventTag(new AliRawEventTag),
fCompress(compress),
+ fBasketSize(basketsize),
fDeleteFiles(deleteFiles),
fFilterMode(filterMode),
fFilters(),
// Set the maximum tree size to 19GB
// in order to allow big raw data files
TTree::SetMaxTreeSize(20000000000LL);
+
+ TBufferFile::SetGlobalReadParam(5);
// This line is needed in case of a stand-alone application w/o
// $ROOTSYS/etc/system.rootrc file
// open a new raw DB file
if (mode == kRFIO)
- fRawDB = new AliRawRFIODB(fEvent, fESD, fCompress, fileName);
+ fRawDB = new AliRawRFIODB(fEvent, fESD, fCompress, fileName, fBasketSize);
else if (mode == kROOTD)
- fRawDB = new AliRawRootdDB(fEvent, fESD, fCompress, fileName);
+ fRawDB = new AliRawRootdDB(fEvent, fESD, fCompress, fileName, fBasketSize);
else if (mode == kCASTOR)
- fRawDB = new AliRawCastorDB(fEvent, fESD, fCompress, fileName);
+ fRawDB = new AliRawCastorDB(fEvent, fESD, fCompress, fileName, fBasketSize);
else if (mode == kDEVNULL)
- fRawDB = new AliRawNullDB(fEvent, fESD, fCompress, fileName);
+ fRawDB = new AliRawNullDB(fEvent, fESD, fCompress, fileName, fBasketSize);
else
- fRawDB = new AliRawDB(fEvent, fESD, fCompress, fileName);
+ fRawDB = new AliRawDB(fEvent, fESD, fCompress, fileName, fBasketSize);
fRawDB->SetDeleteFiles(fDeleteFiles);
if (fRawDB->IsZombie()) {
const Long64_t kFileSizeErrorLevel = 19000000000LL;
Long64_t currentFileSize = GetTotalSize();
+ AliDebug(1,Form("current file size is %lld bytes",currentFileSize));
if(currentFileSize > kFileSizeErrorLevel) {
Error("ProcessEvent", "file size (%lu) exceeds the limit "
, currentFileSize);
if (header->Get("Type") == AliRawEventHeaderBase::kPhysicsEvent ||
header->Get("Type") == AliRawEventHeaderBase::kCalibrationEvent ||
header->Get("Type") == AliRawEventHeaderBase::kSystemSoftwareTriggerEvent ||
- header->Get("Type") == AliRawEventHeaderBase::kDetectorSoftwareTriggerEvent) {
+ header->Get("Type") == AliRawEventHeaderBase::kDetectorSoftwareTriggerEvent ||
+ header->Get("Type") == AliRawEventHeaderBase::kStartOfData ||
+ header->Get("Type") == AliRawEventHeaderBase::kEndOfData) {
while (rawSize > 0) {
AliRawEquipment &equipment = *subEvent->NextEquipment();
AliRawEquipmentHeader &equipmentHeader =
if (header->Get("Type") == AliRawEventHeaderBase::kPhysicsEvent ||
header->Get("Type") == AliRawEventHeaderBase::kCalibrationEvent ||
header->Get("Type") == AliRawEventHeaderBase::kSystemSoftwareTriggerEvent ||
- header->Get("Type") == AliRawEventHeaderBase::kDetectorSoftwareTriggerEvent) {
+ header->Get("Type") == AliRawEventHeaderBase::kDetectorSoftwareTriggerEvent ||
+ header->Get("Type") == AliRawEventHeaderBase::kStartOfData ||
+ header->Get("Type") == AliRawEventHeaderBase::kEndOfData) {
Bool_t result = kFALSE;
for (Int_t iFilter = 0; iFilter < fFilters.GetEntriesFast(); iFilter++) {
AliFilter* filter = (AliFilter*) fFilters[iFilter];
return filesize;
}
+//______________________________________________________________________________
+Long64_t AliMDC::AutoSave()
+{
+ // Auto-save the raw-data
+ // and esd (if any) trees
+
+ if (!fRawDB) return -1;
+
+ return fRawDB->AutoSave();
+}
+
//______________________________________________________________________________
Int_t AliMDC::Run(const char* inputFile, Bool_t loop,
EWriteMode mode, Double_t maxFileSize,