//______________________________________________________________________________
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(),
AliMDC(Int_t compress, Bool_t deleteFiles,
EFilterMode filterMode = kFilterTransparent,
Double_t maxSizeTagDB = -1, const char* fileNameTagDB = NULL,
- const char* guidFileFolder = NULL);
+ const char* guidFileFolder = NULL,
+ Int_t basketsize = 32000);
virtual ~AliMDC();
Int_t Open(EWriteMode mode, const char* fileName,
AliTagDB *fTagDB; // tag DB
AliRawEventTag *fEventTag; // raw-data event tag object
Int_t fCompress; // compression factor used for raw output DB
+ Int_t fBasketSize; // root i/o basket size (default = 32000)
Bool_t fDeleteFiles; // flag for deletion of files
EFilterMode fFilterMode; // high level filter mode
TObjArray fFilters; // filter algorithms
Bool_t isSwapped, char*& data);
Int_t ReadRawData(AliRawData &raw, Int_t size, char*& data);
- ClassDef(AliMDC,2) // MDC processor
+ ClassDef(AliMDC,3) // MDC processor
};
#endif
AliRawDB::AliRawDB(AliRawEvent *event,
AliESDEvent *esd,
Int_t compress,
- const char* fileName) :
+ const char* fileName,
+ Int_t basketsize) :
fRawDB(NULL),
fTree(NULL),
fEvent(event),
fESDTree(NULL),
fESD(esd),
fCompress(compress),
+ fBasketSize(basketsize),
fMaxSize(-1),
fFS1(""),
fFS2(""),
fTree->BranchRef();
- Int_t bufsize = 256000;
// splitting 29.6 MB/s, no splitting 35.3 MB/s on P4 2GHz 15k SCSI
//Int_t split = 1;
Int_t split = 0;
- fTree->Branch("rawevent", "AliRawEvent", &fEvent, bufsize, split);
+ fTree->Branch("rawevent", "AliRawEvent", &fEvent, fBasketSize, split);
// Make brach for each sub-detector
for (Int_t iDet = 0; iDet < AliDAQ::kNDetectors; iDet++) {
for (Int_t iBranch = 0; iBranch < fgkDetBranches[iDet]; iBranch++)
fTree->Branch(Form("%s%d",AliDAQ::DetectorName(iDet),iBranch),"AliRawDataArray",
- &fDetRawData[iDet][iBranch],bufsize,split);
+ &fDetRawData[iDet][iBranch],fBasketSize,split);
}
// Make special branch for unrecognized raw-data payloads
for (Int_t iBranch = 0; iBranch < fgkDetBranches[AliDAQ::kNDetectors]; iBranch++)
fTree->Branch(Form("Common%d",iBranch),"AliRawDataArray",
- &fDetRawData[AliDAQ::kNDetectors][iBranch],bufsize,split);
+ &fDetRawData[AliDAQ::kNDetectors][iBranch],fBasketSize,split);
// Create tree which will contain the HLT ESD information
fESDTree = new TTree("esdTree", Form("ALICE HLT ESD tree (%s)", GetAliRootTag()));
fESDTree->SetAutoSave(21000000000LL); // autosave when 21 Gbyte written
split = 0;
- fESDTree->Branch("ESD", "AliESDEvent", &fESD, bufsize, split);
+ fESDTree->Branch("ESD", "AliESDEvent", &fESD, fBasketSize, split);
}
}
AliRawDB(AliRawEvent *event,
AliESDEvent *esd,
Int_t compress,
- const char* fileName = NULL);
+ const char* fileName = NULL,
+ Int_t basketsize = 32000);
virtual ~AliRawDB();
virtual const char *GetOpenOption() const { return "RECREATE"; }
AliRawEvent *GetEvent() const { return fEvent; }
Float_t GetCompressionFactor() const;
Int_t GetCompressionMode() const { return fRawDB->GetCompressionLevel(); }
+ Int_t GetBasketSize() const { return fBasketSize; }
void Stop() { fStop = kTRUE; }
static const char *GetAliRootTag();
Bool_t WriteGuidFile(TString &guidFileFolder);
TTree *fESDTree; // tree for storing HLT ESD information
AliESDEvent *fESD; // pointer to HLT ESD object
Int_t fCompress; // compression mode (1 default)
+ Int_t fBasketSize; // root i/o basket size (default = 32000)
Double_t fMaxSize; // maximum size in bytes of the raw DB
TString fFS1; // first raw DB file system location
TString fFS2; // second raw DB file system location
AliRawDB(const AliRawDB& rawDB);
AliRawDB& operator = (const AliRawDB& rawDB);
- ClassDef(AliRawDB,3) // Raw DB
+ ClassDef(AliRawDB,4) // Raw DB
};
#endif
}
}
+ Int_t basketsize = 32000;
// Create MDC processor object and process input stream
AliMDC mdcproc(compress, delFiles, AliMDC::EFilterMode(filterMode),
- maxTagSize, tagDBFS);
+ maxTagSize, tagDBFS,NULL,basketsize);
Int_t result = mdcproc.Run(file, useLoop, wmode, maxFileSize, fs1, fs2);
void* alimdcCreate(int compress, int filterMode,
double maxSizeTagDB, const char* fileNameTagDB,
- const char* guidFileFolder)
+ const char* guidFileFolder,
+ int basketsize)
{
// create an AliMDC object
return new AliMDC(compress, kFALSE, AliMDC::EFilterMode(filterMode),
maxSizeTagDB, fileNameTagDB,
- guidFileFolder);
+ guidFileFolder,
+ basketsize);
}
void* alimdcCreate(int compress, int filterMode,
double maxSizeTagDB, const char* fileNameTagDB,
- const char* guidFileFolder);
+ const char* guidFileFolder,
+ int basketsize);
int alimdcOpen(void* alimdc, int mode, const char* fileName);
int alimdcProcessEvent(void* alimdc, void* event, int isIovecArray);
long long alimdcGetTotalFileSize(void* alimdc);