#include "AliCTPRawData.h"
#include "AliRunLoader.h"
#include "AliCentralTrigger.h"
-#include "AliRawDataHeader.h"
+#include "AliRawDataHeaderSim.h"
#include "AliLog.h"
#include "AliDAQ.h"
+#include "AliFstream.h"
ClassImp(AliCTPRawData)
////////////////////////////////////////////////////////////////////////////////////////
char fileName[15];
strcpy(fileName,AliDAQ::DdlFileName("TRG",0));
AliInfo(Form("Storing CTP raw data in %s",fileName));
- ofstream outfile; // logical name of the output file
- #ifndef __DECCXX
- outfile.open(fileName,ios::binary);
-#else
- outfile.open(fileName);
-#endif
-
- AliRawDataHeader header;
- // Write a dummy header
- UInt_t dataHeaderPosition=outfile.tellp();
- outfile.write((char*)(&header),sizeof(header));
+ AliFstream* outfile; // logical name of the output file
+ outfile = new AliFstream(fileName);
// Writing CTP raw data here
// The format is taken as in
word |= 0 << 13; // BlockID = 0 in case of CTP readout
word |= bunchCross & 0xFFF;
AliDebug(1,Form("CTP word1 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
word = 0;
word |= 0 << 13; // BlockID = 0 in case of CTP readout
word |= (orbitId >> 12) & 0xFFF;
AliDebug(1,Form("CTP word2 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
word = 0;
word |= 0 << 13; // BlockID = 0 in case of CTP readout
word |= orbitId & 0xFFF;
AliDebug(1,Form("CTP word3 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
// Now the 4th word
word = 0;
word |= (l2cluster & 0x3F) << 2; // L2Cluster
word |= (UInt_t)((l2class >> 48) & 0x3);
AliDebug(1,Form("CTP word4 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
// Then the last 4 words with the trigger classes
word = 0;
word |= 0 << 13; // BlockID = 0 in case of CTP readout
word |= (UInt_t)((l2class >> 36) & 0xFFF);
AliDebug(1,Form("CTP word5 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
word = 0;
word |= 0 << 13; // BlockID = 0 in case of CTP readout
word |= (UInt_t)((l2class >> 24) & 0xFFF);
AliDebug(1,Form("CTP word6 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
word = 0;
word |= 0 << 13; // BlockID = 0 in case of CTP readout
word |= (UInt_t)((l2class >> 12) & 0xFFF);
AliDebug(1,Form("CTP word7 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
word = 0;
word |= 0 << 13; // BlockID = 0 in case of CTP readout
word |= (UInt_t)(l2class & 0xFFF);
AliDebug(1,Form("CTP word8 = 0x%x",word));
- outfile.write((char*)(&word),sizeof(UInt_t));
-
- // Write the real data header
- UInt_t currentFilePosition=outfile.tellp();
- outfile.seekp(dataHeaderPosition);
- header.fSize=currentFilePosition-dataHeaderPosition;
- header.SetAttribute(0); // valid data
- header.SetTriggerClass(l2class);
- outfile.write((char*)(&header),sizeof(header));
- outfile.close();
+ outfile->WriteBuffer((char*)(&word),sizeof(UInt_t));
+
+ delete outfile;
return;
}