]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MONITOR/root2date.cxx
updated macros (with new cut values) for (anti-)proton-(anti-)lambda and lambda-...
[u/mrichter/AliRoot.git] / MONITOR / root2date.cxx
CommitLineData
36470d8d 1// Author: Filimon Roukoutakis 02/08/2006
2// Cvetan Cheshkov
3
4/******************************************************************************
5 MOOD - Monitor Of On-line Data and Detector Debugger for ALICE Experiment
6******************************************************************************/
7
8#include "root2date.h"
9
3a7af7bd 10using std::ofstream;
11
33314186 12int Root2Date(AliRawVEvent *gdcRootEvent, unsigned char *gdcDateEvent, char *ddlDir) {
36470d8d 13
14 unsigned char *p=gdcDateEvent;
15 int ldcCounter, equipmentCounter, chunkSize;
33314186 16 AliRawVEquipment *aliEquipment=NULL;
36470d8d 17 AliRawEquipmentHeader *aliEquipmentHeader=NULL;
18 AliRawEventHeaderBase *aliHeader=NULL;
33314186 19 AliRawVEvent *ldcRootEvent=NULL;
36470d8d 20
21 aliHeader=gdcRootEvent->GetHeader();
bc54f885 22
23 char runNbFileName[256];
a696b49b 24 snprintf(runNbFileName,sizeof(runNbFileName),"%s/run%u",ddlDir,aliHeader->Get("RunNb"));
bc54f885 25 ofstream runNbFile(runNbFileName);
26 runNbFile.close();
27
36470d8d 28 memcpy(p, aliHeader->HeaderBaseBegin(), chunkSize=aliHeader->HeaderBaseSize());
29 p+=chunkSize;
30 memcpy(p, aliHeader->HeaderBegin(), chunkSize=aliHeader->HeaderSize()); // Write DATE GDC header
31 p+=chunkSize;
33778962 32 memcpy(p, aliHeader->GetExtendedData(), chunkSize=aliHeader->GetExtendedDataSize());
33 p+=chunkSize;
36470d8d 34 for(ldcCounter=0; ldcCounter<gdcRootEvent->GetNSubEvents(); ldcCounter++) {
35 ldcRootEvent=gdcRootEvent->GetSubEvent(ldcCounter);
36 aliHeader=ldcRootEvent->GetHeader();
37 memcpy(p, aliHeader->HeaderBaseBegin(), chunkSize=aliHeader->HeaderBaseSize());
38 p+=chunkSize;
39 memcpy(p, aliHeader->HeaderBegin(), chunkSize=aliHeader->HeaderSize()); // Write DATE LDC header
40 p+=chunkSize;
33778962 41 memcpy(p, aliHeader->GetExtendedData(), chunkSize=aliHeader->GetExtendedDataSize());
42 p+=chunkSize;
36470d8d 43 for(equipmentCounter=0; equipmentCounter<ldcRootEvent->GetNEquipments(); equipmentCounter++) {
44 aliEquipment=ldcRootEvent->GetEquipment(equipmentCounter);
45 aliEquipmentHeader=aliEquipment->GetEquipmentHeader();
46 if(aliEquipmentHeader->GetEquipmentSize()) {
47 memcpy(p, aliEquipmentHeader->HeaderBegin(), chunkSize=aliEquipmentHeader->HeaderSize()); // Write DATE Equipment header
48 p+=chunkSize;
49 }
50 memcpy(p, aliEquipment->GetRawData()->GetBuffer(), chunkSize=aliEquipment->GetRawData()->GetSize()); // Write Equipment payload (including CDH)
8e8e0e3e 51 // Write ddl files if requested by the user
c32025f0 52 if (ddlDir && aliEquipmentHeader->GetEquipmentSize()) {
8e8e0e3e 53 Int_t ddlIndex;
54 Int_t detId = AliDAQ::DetectorIDFromDdlID(aliEquipmentHeader->GetId(),ddlIndex);
55 char ddlFileName[256];
4f27cd98 56 snprintf(ddlFileName,sizeof(ddlFileName),"%s/%s",ddlDir,AliDAQ::DdlFileName(detId,ddlIndex));
8e8e0e3e 57 FILE *ddlFile;
e41f1e44 58 if((ddlFile=fopen(ddlFileName, "wb"))) {
8e8e0e3e 59 fwrite(p, chunkSize, 1, ddlFile);
dbcd589e 60 fclose(ddlFile);
8e8e0e3e 61 }
8e8e0e3e 62 }
36470d8d 63 p+=chunkSize;
64 }
65 }
66
67 return(p-gdcDateEvent);
68
69}