#if !defined(__CINT__) || defined(__MAKECINT__)
// Root include files
#include "TClonesArray.h"
// AliRoot include files
#include "AliDAQ.h"
#include "AliHitMap.h"
#include "AliRawReader.h"
#include "AliRawReaderFile.h"
#include "AliTOFrawData.h"
#include "AliTOFRawMap.h"
#include "AliTOFRawStream.h"
#endif
extern gBenchmark;
void AliTOFRawDataReadBuffer(Int_t iEvent=0);
void AliTOFRawDataReadBuffer(Int_t iEvent)
{
//
// To read TOF raw data
//
Int_t Volume[5];
AliTOFHitData *HitData;
AliTOFHitDataBuffer *DataBuffer;
AliTOFHitDataBuffer *PackedDataBuffer;
/* create a tree for decoded data */
TTree DataTree("DataTree", "Decoded Data");
DataTree.Branch("HitData", "AliTOFHitData", &HitData);
/* create a tree for decoded packed data */
TTree PackedDataTree("PackedDataTree", "Decoded Packed Data");
PackedDataTree.Branch("HitData", "AliTOFHitData", &HitData);
AliRawReaderFile reader(iEvent);
AliTOFRawStream stream(&reader);
reader.RewindEvents();
gBenchmark->Reset();
/* loop over events */
for (Int_t iEvent = 0; reader.NextEvent(); iEvent++) {
printf("processing event %d\n", iEvent);
/* reset buffers (actually not needed)*/
stream.ResetBuffers();
/* decode all DDLs */
gBenchmark->Start("time");
stream.DecodeDDL(0, AliDAQ::NumberOfDdls("TOF") - 1,0);
gBenchmark->Stop("time");
/* loop over DDLs */
for (Int_t iDDL = 0; iDDL < AliDAQ::NumberOfDdls("TOF"); iDDL++){
/* read decoded data */
DataBuffer = stream.GetDataBuffer(iDDL);
PackedDataBuffer = stream.GetPackedDataBuffer(iDDL);
/* get buffer entries */
Int_t nDBEntries = DataBuffer->GetEntries();
Int_t nPDBEntries = PackedDataBuffer->GetEntries();
/* read data buffer hits */
for (Int_t iHit = 0; iHit < nDBEntries; iHit++){
HitData = DataBuffer->GetHit(iHit);
HitData->SetDDLID(iDDL);
/* add volume information to hit */
stream.EquipmentId2VolumeId(HitData, HitData->GetVolume());
DataTree.Fill();
}
/* reset buffer */
DataBuffer->Reset();
/* read data buffer hits */
for (Int_t iHit = 0; iHit < nPDBEntries; iHit++){
HitData = PackedDataBuffer->GetHit(iHit);
HitData->SetDDLID(iDDL);
/* add volume information to hit */
stream.EquipmentId2VolumeId(HitData, HitData->GetVolume());
PackedDataTree.Fill();
}
/* reset buffer */
PackedDataBuffer->Reset();
}
}
gBenchmark->Print("time");
TFile fileOut("TOF_rawQA.root", "RECREATE");
DataTree.Write();
PackedDataTree.Write();
fileOut.Close();
}
AliTOFRawDataReadBuffer.C:1 AliTOFRawDataReadBuffer.C:2 AliTOFRawDataReadBuffer.C:3 AliTOFRawDataReadBuffer.C:4 AliTOFRawDataReadBuffer.C:5 AliTOFRawDataReadBuffer.C:6 AliTOFRawDataReadBuffer.C:7 AliTOFRawDataReadBuffer.C:8 AliTOFRawDataReadBuffer.C:9 AliTOFRawDataReadBuffer.C:10 AliTOFRawDataReadBuffer.C:11 AliTOFRawDataReadBuffer.C:12 AliTOFRawDataReadBuffer.C:13 AliTOFRawDataReadBuffer.C:14 AliTOFRawDataReadBuffer.C:15 AliTOFRawDataReadBuffer.C:16 AliTOFRawDataReadBuffer.C:17 AliTOFRawDataReadBuffer.C:18 AliTOFRawDataReadBuffer.C:19 AliTOFRawDataReadBuffer.C:20 AliTOFRawDataReadBuffer.C:21 AliTOFRawDataReadBuffer.C:22 AliTOFRawDataReadBuffer.C:23 AliTOFRawDataReadBuffer.C:24 AliTOFRawDataReadBuffer.C:25 AliTOFRawDataReadBuffer.C:26 AliTOFRawDataReadBuffer.C:27 AliTOFRawDataReadBuffer.C:28 AliTOFRawDataReadBuffer.C:29 AliTOFRawDataReadBuffer.C:30 AliTOFRawDataReadBuffer.C:31 AliTOFRawDataReadBuffer.C:32 AliTOFRawDataReadBuffer.C:33 AliTOFRawDataReadBuffer.C:34 AliTOFRawDataReadBuffer.C:35 AliTOFRawDataReadBuffer.C:36 AliTOFRawDataReadBuffer.C:37 AliTOFRawDataReadBuffer.C:38 AliTOFRawDataReadBuffer.C:39 AliTOFRawDataReadBuffer.C:40 AliTOFRawDataReadBuffer.C:41 AliTOFRawDataReadBuffer.C:42 AliTOFRawDataReadBuffer.C:43 AliTOFRawDataReadBuffer.C:44 AliTOFRawDataReadBuffer.C:45 AliTOFRawDataReadBuffer.C:46 AliTOFRawDataReadBuffer.C:47 AliTOFRawDataReadBuffer.C:48 AliTOFRawDataReadBuffer.C:49 AliTOFRawDataReadBuffer.C:50 AliTOFRawDataReadBuffer.C:51 AliTOFRawDataReadBuffer.C:52 AliTOFRawDataReadBuffer.C:53 AliTOFRawDataReadBuffer.C:54 AliTOFRawDataReadBuffer.C:55 AliTOFRawDataReadBuffer.C:56 AliTOFRawDataReadBuffer.C:57 AliTOFRawDataReadBuffer.C:58 AliTOFRawDataReadBuffer.C:59 AliTOFRawDataReadBuffer.C:60 AliTOFRawDataReadBuffer.C:61 AliTOFRawDataReadBuffer.C:62 AliTOFRawDataReadBuffer.C:63 AliTOFRawDataReadBuffer.C:64 AliTOFRawDataReadBuffer.C:65 AliTOFRawDataReadBuffer.C:66 AliTOFRawDataReadBuffer.C:67 AliTOFRawDataReadBuffer.C:68 AliTOFRawDataReadBuffer.C:69 AliTOFRawDataReadBuffer.C:70 AliTOFRawDataReadBuffer.C:71 AliTOFRawDataReadBuffer.C:72 AliTOFRawDataReadBuffer.C:73 AliTOFRawDataReadBuffer.C:74 AliTOFRawDataReadBuffer.C:75 AliTOFRawDataReadBuffer.C:76 AliTOFRawDataReadBuffer.C:77 AliTOFRawDataReadBuffer.C:78 AliTOFRawDataReadBuffer.C:79 AliTOFRawDataReadBuffer.C:80 AliTOFRawDataReadBuffer.C:81 AliTOFRawDataReadBuffer.C:82 AliTOFRawDataReadBuffer.C:83 AliTOFRawDataReadBuffer.C:84 AliTOFRawDataReadBuffer.C:85 AliTOFRawDataReadBuffer.C:86 AliTOFRawDataReadBuffer.C:87 AliTOFRawDataReadBuffer.C:88 AliTOFRawDataReadBuffer.C:89 AliTOFRawDataReadBuffer.C:90 AliTOFRawDataReadBuffer.C:91 AliTOFRawDataReadBuffer.C:92 AliTOFRawDataReadBuffer.C:93 AliTOFRawDataReadBuffer.C:94 AliTOFRawDataReadBuffer.C:95 AliTOFRawDataReadBuffer.C:96 AliTOFRawDataReadBuffer.C:97 AliTOFRawDataReadBuffer.C:98 AliTOFRawDataReadBuffer.C:99 AliTOFRawDataReadBuffer.C:100 AliTOFRawDataReadBuffer.C:101 AliTOFRawDataReadBuffer.C:102 AliTOFRawDataReadBuffer.C:103 AliTOFRawDataReadBuffer.C:104 AliTOFRawDataReadBuffer.C:105