if (pTokens) {
int iEntries=pTokens->GetEntries();
if (iEntries>1) {
- int i=0;
- fBaseName=((TObjString*)pTokens->At(i++))->GetString();
- while (i<iEntries-1) {
- fBaseName+="." + ((TObjString*)pTokens->At(i++))->GetString();
+ int n=0;
+ fBaseName=((TObjString*)pTokens->At(n++))->GetString();
+ while (n<iEntries-1) {
+ fBaseName+="." + ((TObjString*)pTokens->At(n++))->GetString();
}
- fExtension=((TObjString*)pTokens->At(i))->GetString();
+ fExtension=((TObjString*)pTokens->At(n))->GetString();
}
delete pTokens;
}
if (argument.BeginsWith("=")) {
fSubDirFormat=argument.Replace(0,1,"");
} else {
- fSubDirFormat="event%03d";
+ fSubDirFormat="event%03lu";
}
// no additional eventno in the filename unless set again
// the sub dir contains the id
} else if (argument.CompareTo("-concatenate-events")==0) {
SetMode(kConcatenateEvents);
+ // -write-all-events
+ } else if (argument.CompareTo("-write-all-events")==0) {
+ SetMode(kWriteAllEvents);
+
+ // -write-all-blocks
+ } else if (argument.CompareTo("-write-all-blocks")==0) {
+ SetMode(kWriteAllBlocks);
+
+ // -write-all
+ } else if (argument.CompareTo("-write-all")==0) {
+ SetMode(kWriteAllEvents);
+ SetMode(kWriteAllBlocks);
+
} else {
if ((iResult=ScanArgument(argc-i, &argv[i]))==-EINVAL) {
HLTError("unknown argument %s", argument.Data());
}
if (iResult>=0) {
iResult=InitWriter();
+ if (!fDirectory.IsNull()) {
+ gSystem->mkdir(fDirectory);
+ }
}
return iResult;
{
// see header file for class documentation
int iResult=0;
+ if (!IsDataEvent() && !CheckMode(kWriteAllEvents)) return 0;
+
if (CheckMode(kConcatenateEvents)==0) {
// reset the current file name in order to open a new file
// for the first block. If events are concatenated, the current
int blockno=0;
for (pDesc=GetFirstInputBlock(); pDesc!=NULL; pDesc=GetNextInputBlock(), blockno++) {
+ if (pDesc->fDataType==(kAliHLTAnyDataType|kAliHLTDataOriginPrivate) && !CheckMode(kWriteAllBlocks))
+ continue;
HLTDebug("block %d out of %d", blockno, evtData.fBlockCnt);
TString filename;
HLTDebug("dataspec 0x%x", pDesc->fSpecification);
int iResult=0;
//HLTDebug("build file name for event %d block %d", eventID, blockID);
filename="";
+
+ AliHLTUInt32_t eventType=gkAliEventTypeUnknown;
+
if (!fDirectory.IsNull()) {
filename+=fDirectory;
if (!filename.EndsWith("/"))
if (filename.EndsWith("/")) {
gSystem->mkdir(filename);
}
+
+ IsDataEvent(&eventType);
+ if (eventType==gkAliEventTypeStartOfRun && CheckMode(kWriteAllEvents)) filename+="SOR_";
+ else if (eventType==gkAliEventTypeEndOfRun && CheckMode(kWriteAllEvents)) filename+="EOR_";
+
if (!fBaseName.IsNull())
filename+=fBaseName;
else