// $Id: $
/**************************************************************************
* This file is property of and copyright by the ALICE HLT Project *
* ALICE Experiment at CERN, All rights reserved. *
* *
* Primary Authors: Artur Szostak <artursz@iafrica.com> *
* for The ALICE HLT Project. *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation strictly for non-commercial purposes is hereby granted *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
/// @file testAliHLTEventDDLBackwardCompatibility.C
/// @author Artur Szostak <artursz@iafrica.com>
/// @date 25 June 2010
/// @brief Test program for backward compatibility of the AliHLTEventDDL structure.
///
#if defined(__CINT__) && (! defined(__MAKECINT__))
#error This macro must be compiled. Try running as testAliHLTEventDDLBackwardCompatibility.C++.
#endif
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "AliHLTDataTypes.h"
#include "AliHLTReadoutList.h"
#include "AliHLTDAQ.h"
#include "AliHLTComponent.h"
#include "AliRawDataHeader.h"
#include "TRandom3.h"
#include "TString.h"
#include "TFile.h"
#include "TTree.h"
#include "Riostream.h"
#include <vector>
#include <algorithm>
#endif
/**
* Tests to see if the AliHLTReadoutList class handles both AliHLTEventDDLV0
* and AliHLTEventDDLV1 correctly.
*/
bool CheckReadoutListConvertedCorrectly()
{
// Initialise the different versions of the structures so that every detector
// has only its first DDL set.
union
{
AliHLTEventDDL eventddlV0;
AliHLTEventDDLV0 bitsV0;
};
bitsV0.fCount = gkAliHLTDDLListSizeV0;
if (gkAliHLTDDLListSizeV0 != 30)
{
cerr << "ERROR: gkAliHLTDDLListSizeV0 has a value of " << gkAliHLTDDLListSizeV0
<< " but expected a value of 30." << endl;
return false;
}
bitsV0.fList[0] = 0x00000001; // kITSSPD
bitsV0.fList[1] = 0x00000001; // kITSSDD
bitsV0.fList[2] = 0x00000001; // kITSSSD
bitsV0.fList[3] = 0x00000001; // kTPC
bitsV0.fList[4] = 0x00000000; // kTPC
bitsV0.fList[5] = 0x00000000; // kTPC
bitsV0.fList[6] = 0x00000000; // kTPC
bitsV0.fList[7] = 0x00000000; // kTPC
bitsV0.fList[8] = 0x00000000; // kTPC
bitsV0.fList[9] = 0x00000000; // kTPC
bitsV0.fList[10] = 0x00000000; // kTPC
bitsV0.fList[11] = 0x00000001; // kTRD
bitsV0.fList[12] = 0x00000001; // kTOF
bitsV0.fList[13] = 0x00000000; // kTOF
bitsV0.fList[14] = 0x00000000; // kTOF
bitsV0.fList[15] = 0x00000001; // kHMPID
bitsV0.fList[16] = 0x00000001; // kPHOS
bitsV0.fList[17] = 0x00000001; // kCPV
bitsV0.fList[18] = 0x00000001; // kPMD
bitsV0.fList[19] = 0x00000001; // kMUONTRK
bitsV0.fList[20] = 0x00000001; // kMUONTRG
bitsV0.fList[21] = 0x00000001; // kFMD
bitsV0.fList[22] = 0x00000001; // kT0
bitsV0.fList[23] = 0x00000001; // kV0
bitsV0.fList[24] = 0x00000001; // kZDC
bitsV0.fList[25] = 0x00000001; // kACORDE
bitsV0.fList[26] = 0x00000001; // kTRG
bitsV0.fList[27] = 0x00000001; // kEMCAL
bitsV0.fList[28] = 0x00000001; // kDAQTEST
bitsV0.fList[29] = 0x00000001; // kHLT
union
{
AliHLTEventDDL eventddlV1;
AliHLTEventDDLV1 bitsV1;
};
bitsV1.fCount = gkAliHLTDDLListSizeV1;
if (gkAliHLTDDLListSizeV1 != 31)
{
cerr << "ERROR: gkAliHLTDDLListSizeV1 has a value of " << gkAliHLTDDLListSizeV1
<< " but expected a value of 31." << endl;
return false;
}
bitsV1.fList[0] = 0x00000001; // kITSSPD
bitsV1.fList[1] = 0x00000001; // kITSSDD
bitsV1.fList[2] = 0x00000001; // kITSSSD
bitsV1.fList[3] = 0x00000001; // kTPC
bitsV1.fList[4] = 0x00000000; // kTPC
bitsV1.fList[5] = 0x00000000; // kTPC
bitsV1.fList[6] = 0x00000000; // kTPC
bitsV1.fList[7] = 0x00000000; // kTPC
bitsV1.fList[8] = 0x00000000; // kTPC
bitsV1.fList[9] = 0x00000000; // kTPC
bitsV1.fList[10] = 0x00000000; // kTPC
bitsV1.fList[11] = 0x00000001; // kTRD
bitsV1.fList[12] = 0x00000001; // kTOF
bitsV1.fList[13] = 0x00000000; // kTOF
bitsV1.fList[14] = 0x00000000; // kTOF
bitsV1.fList[15] = 0x00000001; // kHMPID
bitsV1.fList[16] = 0x00000001; // kPHOS
bitsV1.fList[17] = 0x00000001; // kCPV
bitsV1.fList[18] = 0x00000001; // kPMD
bitsV1.fList[19] = 0x00000001; // kMUONTRK
bitsV1.fList[20] = 0x00000001; // kMUONTRG
bitsV1.fList[21] = 0x00000001; // kFMD
bitsV1.fList[22] = 0x00000001; // kT0
bitsV1.fList[23] = 0x00000001; // kV0
bitsV1.fList[24] = 0x00000001; // kZDC
bitsV1.fList[25] = 0x00000001; // kACORDE
bitsV1.fList[26] = 0x00000001; // kTRG
bitsV1.fList[27] = 0x00000001; // kEMCAL
bitsV1.fList[28] = 0x00000000; // kEMCAL
bitsV1.fList[29] = 0x00000001; // kDAQTEST
bitsV1.fList[30] = 0x00000001; // kHLT
AliHLTReadoutList rlV0(eventddlV0);
AliHLTReadoutList rlV1(eventddlV1);
// Check that for both readout list versions only the first DDLs are
// enabled as expected.
for (Int_t i = 0; i < AliHLTDAQ::NumberOfDetectors(); ++i)
for (Int_t j = 0; j < AliHLTDAQ::NumberOfDdls(i); ++j)
{
Int_t ddlid = AliHLTDAQ::DdlIDOffset(i) | (j & 0xFF);
if (j == 0)
{
if (rlV0.IsDDLDisabled(ddlid))
{
cerr << "ERROR: The first DDL for detector " << AliHLTDAQ::DetectorName(i)
<< " was not enabled for readout list initialised from AliHLTEventDDLV0."
<< endl;
return false;
}
if (rlV1.IsDDLDisabled(ddlid))
{
cerr << "ERROR: The first DDL for detector " << AliHLTDAQ::DetectorName(i)
<< " was not enabled for readout list initialised from AliHLTEventDDLV1."
<< endl;
return false;
}
}
else
{
if (rlV0.IsDDLEnabled(ddlid))
{
cerr << "ERROR: DDL " << ddlid << " for detector " << AliHLTDAQ::DetectorName(i)
<< " was marked enabled for readout list initialised from AliHLTEventDDLV0."
<< endl;
return false;
}
if (rlV1.IsDDLEnabled(ddlid))
{
cerr << "ERROR: DDL " << ddlid << " for detector " << AliHLTDAQ::DetectorName(i)
<< " was marked enabled for readout list initialised from AliHLTEventDDLV1."
<< endl;
return false;
}
}
}
// Check that the internal buffers are identical.
if (rlV0.BufferSize() != rlV1.BufferSize())
{
cerr << "ERROR: Buffer sizes for readout lists are different: rlV0.BufferSize() = "
<< rlV0.BufferSize() << ", rlV1.BufferSize() = " << rlV1.BufferSize() << endl;
return false;
}
if (memcmp(rlV0.Buffer(), rlV1.Buffer(), rlV0.BufferSize()) != 0)
{
cerr << "ERROR: Buffers for the two readout list versions are different." << endl;
return false;
}
return true;
}
/**
* Tests to see if AliHLTComponent::ExtractTriggerData recognises the old format
* of AliHLTEventTriggerData and handles it correctly.
*/
bool CheckHandlingOfOldAliHLTEventTriggerData()
{
// Prepare old structure format.
struct AliHLTEventTriggerDataV0
{
AliHLTUInt8_t fAttributes[gkAliHLTBlockDAttributeCount];
AliHLTUInt64_t fHLTStatus;
AliHLTUInt32_t fCommonHeaderWordCnt;
AliHLTUInt32_t fCommonHeader[gkAliHLTCommonHeaderCount];
AliHLTEventDDLV0 fReadoutListV0;
};
AliHLTEventTriggerDataV0 eventTrigData;
memset(&eventTrigData, 0x0, sizeof(eventTrigData));
eventTrigData.fCommonHeaderWordCnt = 8;
eventTrigData.fHLTStatus = 0x123;
eventTrigData.fReadoutListV0.fCount = gkAliHLTDDLListSizeV0;
eventTrigData.fReadoutListV0.fList[0] = 0x00000001; // kITSSPD
eventTrigData.fReadoutListV0.fList[1] = 0x00000001; // kITSSDD
eventTrigData.fReadoutListV0.fList[2] = 0x00000001; // kITSSSD
eventTrigData.fReadoutListV0.fList[3] = 0x00000001; // kTPC
eventTrigData.fReadoutListV0.fList[4] = 0x00000000; // kTPC
eventTrigData.fReadoutListV0.fList[5] = 0x00000000; // kTPC
eventTrigData.fReadoutListV0.fList[6] = 0x00000000; // kTPC
eventTrigData.fReadoutListV0.fList[7] = 0x00000000; // kTPC
eventTrigData.fReadoutListV0.fList[8] = 0x00000000; // kTPC
eventTrigData.fReadoutListV0.fList[9] = 0x00000000; // kTPC
eventTrigData.fReadoutListV0.fList[10] = 0x00000000; // kTPC
eventTrigData.fReadoutListV0.fList[11] = 0x00000001; // kTRD
eventTrigData.fReadoutListV0.fList[12] = 0x00000001; // kTOF
eventTrigData.fReadoutListV0.fList[13] = 0x00000000; // kTOF
eventTrigData.fReadoutListV0.fList[14] = 0x00000000; // kTOF
eventTrigData.fReadoutListV0.fList[15] = 0x00000001; // kHMPID
eventTrigData.fReadoutListV0.fList[16] = 0x00000001; // kPHOS
eventTrigData.fReadoutListV0.fList[17] = 0x00000001; // kCPV
eventTrigData.fReadoutListV0.fList[18] = 0x00000001; // kPMD
eventTrigData.fReadoutListV0.fList[19] = 0x00000001; // kMUONTRK
eventTrigData.fReadoutListV0.fList[20] = 0x00000001; // kMUONTRG
eventTrigData.fReadoutListV0.fList[21] = 0x00000001; // kFMD
eventTrigData.fReadoutListV0.fList[22] = 0x00000001; // kT0
eventTrigData.fReadoutListV0.fList[23] = 0x00000001; // kV0
eventTrigData.fReadoutListV0.fList[24] = 0x00000001; // kZDC
eventTrigData.fReadoutListV0.fList[25] = 0x00000001; // kACORDE
eventTrigData.fReadoutListV0.fList[26] = 0x00000001; // kTRG
eventTrigData.fReadoutListV0.fList[27] = 0x00000001; // kEMCAL
eventTrigData.fReadoutListV0.fList[28] = 0x00000001; // kDAQTEST
eventTrigData.fReadoutListV0.fList[29] = 0x00000001; // kHLT
AliHLTComponentTriggerData trigData = {
sizeof(AliHLTComponentTriggerData),
sizeof(AliHLTEventTriggerDataV0),
&eventTrigData
};
AliHLTReadoutList readoutlistExpected;
for (Int_t i = 0; i < AliHLTDAQ::NumberOfDetectors(); ++i)
{
Int_t ddlid = AliHLTDAQ::DdlIDOffset(i);
readoutlistExpected.EnableDDLBit(ddlid);
}
const AliHLTUInt8_t (*attribs)[gkAliHLTBlockDAttributeCount];
AliHLTUInt64_t status = 0x0;
const AliRawDataHeader* cdh = NULL;
AliHLTReadoutList readoutlist;
int result = AliHLTComponent::ExtractTriggerData(trigData, &attribs, &status, &cdh, &readoutlist, true);
if (result != 0)
{
cerr << "ERROR: The method AliHLTComponent::ExtractTriggerData"
" fails for the old structure format." << endl;
return false;
}
if (attribs != &eventTrigData.fAttributes)
{
cerr << "ERROR: The method AliHLTComponent::ExtractTriggerData"
" fails to locate the attributes structure correctly." << endl;
return false;
}
if (status != 0x123)
{
cerr << "ERROR: The method AliHLTComponent::ExtractTriggerData"
" fails to locate the HLT status word correctly." << endl;
return false;
}
if ((const void*)cdh != (void*)&eventTrigData.fCommonHeader)
{
cerr << "ERROR: The method AliHLTComponent::ExtractTriggerData"
" fails to locate the Common Data Header (CDH) structure correctly." << endl;
return false;
}
if (memcmp(readoutlist.Buffer(), readoutlistExpected.Buffer(), readoutlist.BufferSize()) != 0)
{
cerr << "ERROR: The method AliHLTComponent::ExtractTriggerData"
" fails to extract the readout list correctly." << endl;
return false;
}
return true;
}
/**
* Tests to see if reading old AliHLTReadoutList versions from root files works.
* \param filename The name of the file generated by GenerateReadoutListFile.C,
* which contains the readout list objects to test.
*/
bool CheckReadingOldFormat(const char* filename = "oldAliHLTReadoutListFormat.root")
{
TFile file(filename, "READ");
// Load the readout list objects.
AliHLTReadoutList* rl[5] = {NULL, NULL, NULL, NULL, NULL};
for (int i = 0; i < 5; ++i)
{
char name[1024];
sprintf(name, "readoutlist%d", i+1);
rl[i] = dynamic_cast<AliHLTReadoutList*>(file.Get(name));
if (rl[i] == NULL)
{
cerr << "ERROR: Could not get object '" << name
<< "' from file '" << filename << "'." << endl;
return false;
}
}
// Now load the tree and see that the objects are the same as the readout
// list objects stored directly to the TFile.
const char* treename = "rltree";
TTree* tree = dynamic_cast<TTree*>(file.Get(treename));
if (tree == NULL)
{
cerr << "ERROR: Could not get TTree '" << treename
<< "' from file '" << filename << "'." << endl;
return false;
}
AliHLTReadoutList* r = new AliHLTReadoutList;
tree->SetBranchAddress("readoutlist", &r);
for (int i = 0; i < 5; ++i)
{
tree->GetEvent(i);
if (r->BufferSize() != rl[i]->BufferSize())
{
cerr << "ERROR: readoutlist" << i+1
<< " and the one from the TTree have different sizes."
<< endl;
return false;
}
#if 1 // ROOT_SVN_REVISION < 9999 //FIXME: after fixed https://savannah.cern.ch/bugs/?69241
r->SetDDLBit(9999999, kTRUE); // Triggers a reformating of the internal structure to the new version.
#endif
if (memcmp(r->Buffer(), rl[i]->Buffer(), r->BufferSize()) != 0)
{
cerr << "ERROR: readoutlist" << i+1
<< " and the one from the TTree are different."
<< endl;
return false;
}
}
// Now check each readout list individually.
typedef AliHLTReadoutList RL;
Int_t alwaysoff = RL::kITSSPD
| RL::kITSSDD
| RL::kITSSSD
| RL::kTPC
| RL::kTRD
| RL::kTOF
| RL::kHMPID
| RL::kPHOS
| RL::kCPV
| RL::kPMD
| RL::kMUONTRK
| RL::kMUONTRG
| RL::kFMD
| RL::kT0
| RL::kV0
| RL::kZDC
| RL::kACORDE;
// We will need to try and set the missing EMCAL DDL bits.
// Otherwise the DetectorEnabled and DetectorDisabled methods will not
// give the expected answers.
for (int i = 24; i < AliHLTDAQ::NumberOfDdls("EMCAL"); ++i)
{
for (int j = 1; j <= 3; ++j)
{
Int_t ddlid = AliHLTDAQ::DdlIDOffset("EMCAL") | (i & 0xFF);
rl[j]->EnableDDLBit(ddlid);
}
}
int rlnum = 0;
if (not (rl[rlnum]->DetectorEnabled(RL::kTRG) and
rl[rlnum]->DetectorDisabled(alwaysoff | RL::kEMCAL | RL::kDAQTEST | RL::kHLT)
))
{
rl[0]->Print();
cerr << "ERROR: readoutlist" << rlnum+1 << " does not have the correct bits set." << endl;
rl[rlnum]->Print();
return false;
}
rlnum = 1;
if (not (rl[rlnum]->DetectorEnabled(RL::kTRG | RL::kEMCAL) and
rl[rlnum]->DetectorDisabled(alwaysoff | RL::kDAQTEST | RL::kHLT)
))
{
cerr << "ERROR: readoutlist" << rlnum+1 << " does not have the correct bits set." << endl;
rl[rlnum]->Print();
return false;
}
rlnum = 2;
if (not (rl[rlnum]->DetectorEnabled(RL::kTRG | RL::kEMCAL | RL::kDAQTEST) and
rl[rlnum]->DetectorDisabled(alwaysoff | RL::kHLT)
))
{
cerr << "ERROR: readoutlist" << rlnum+1 << " does not have the correct bits set." << endl;
rl[rlnum]->Print();
return false;
}
rlnum = 3;
if (not (rl[rlnum]->DetectorEnabled(RL::kTRG | RL::kEMCAL | RL::kDAQTEST | RL::kHLT) and
rl[rlnum]->DetectorDisabled(alwaysoff)
))
{
cerr << "ERROR: readoutlist" << rlnum+1 << " does not have the correct bits set." << endl;
rl[rlnum]->Print();
return false;
}
rlnum = 4;
if (not (rl[rlnum]->DetectorEnabled(RL::kTRG | RL::kDAQTEST | RL::kHLT) and
rl[rlnum]->DetectorDisabled(alwaysoff | RL::kEMCAL)
))
{
cerr << "ERROR: readoutlist" << rlnum+1 << " does not have the correct bits set." << endl;
rl[rlnum]->Print();
return false;
}
return true;
}
/**
* Runs the unit tests for backward compatibility of AliHLTEventDDL succeeded.
* \returns true if the tests were passed and false otherwise.
*/
bool testAliHLTEventDDLBackwardCompatibility()
{
if (not CheckReadoutListConvertedCorrectly()) return false;
if (not CheckHandlingOfOldAliHLTEventTriggerData()) return false;
if (not CheckReadingOldFormat()) return false;
return true;
}
#ifndef __MAKECINT__
int main(int /*argc*/, const char** /*argv*/)
{
bool resultOk = testAliHLTEventDDLBackwardCompatibility();
if (not resultOk) return 1;
return 0;
}
#endif // __MAKECINT__
testAliHLTEventDDLBackwardCompatibility.C:1 testAliHLTEventDDLBackwardCompatibility.C:2 testAliHLTEventDDLBackwardCompatibility.C:3 testAliHLTEventDDLBackwardCompatibility.C:4 testAliHLTEventDDLBackwardCompatibility.C:5 testAliHLTEventDDLBackwardCompatibility.C:6 testAliHLTEventDDLBackwardCompatibility.C:7 testAliHLTEventDDLBackwardCompatibility.C:8 testAliHLTEventDDLBackwardCompatibility.C:9 testAliHLTEventDDLBackwardCompatibility.C:10 testAliHLTEventDDLBackwardCompatibility.C:11 testAliHLTEventDDLBackwardCompatibility.C:12 testAliHLTEventDDLBackwardCompatibility.C:13 testAliHLTEventDDLBackwardCompatibility.C:14 testAliHLTEventDDLBackwardCompatibility.C:15 testAliHLTEventDDLBackwardCompatibility.C:16 testAliHLTEventDDLBackwardCompatibility.C:17 testAliHLTEventDDLBackwardCompatibility.C:18 testAliHLTEventDDLBackwardCompatibility.C:19 testAliHLTEventDDLBackwardCompatibility.C:20 testAliHLTEventDDLBackwardCompatibility.C:21 testAliHLTEventDDLBackwardCompatibility.C:22 testAliHLTEventDDLBackwardCompatibility.C:23 testAliHLTEventDDLBackwardCompatibility.C:24 testAliHLTEventDDLBackwardCompatibility.C:25 testAliHLTEventDDLBackwardCompatibility.C:26 testAliHLTEventDDLBackwardCompatibility.C:27 testAliHLTEventDDLBackwardCompatibility.C:28 testAliHLTEventDDLBackwardCompatibility.C:29 testAliHLTEventDDLBackwardCompatibility.C:30 testAliHLTEventDDLBackwardCompatibility.C:31 testAliHLTEventDDLBackwardCompatibility.C:32 testAliHLTEventDDLBackwardCompatibility.C:33 testAliHLTEventDDLBackwardCompatibility.C:34 testAliHLTEventDDLBackwardCompatibility.C:35 testAliHLTEventDDLBackwardCompatibility.C:36 testAliHLTEventDDLBackwardCompatibility.C:37 testAliHLTEventDDLBackwardCompatibility.C:38 testAliHLTEventDDLBackwardCompatibility.C:39 testAliHLTEventDDLBackwardCompatibility.C:40 testAliHLTEventDDLBackwardCompatibility.C:41 testAliHLTEventDDLBackwardCompatibility.C:42 testAliHLTEventDDLBackwardCompatibility.C:43 testAliHLTEventDDLBackwardCompatibility.C:44 testAliHLTEventDDLBackwardCompatibility.C:45 testAliHLTEventDDLBackwardCompatibility.C:46 testAliHLTEventDDLBackwardCompatibility.C:47 testAliHLTEventDDLBackwardCompatibility.C:48 testAliHLTEventDDLBackwardCompatibility.C:49 testAliHLTEventDDLBackwardCompatibility.C:50 testAliHLTEventDDLBackwardCompatibility.C:51 testAliHLTEventDDLBackwardCompatibility.C:52 testAliHLTEventDDLBackwardCompatibility.C:53 testAliHLTEventDDLBackwardCompatibility.C:54 testAliHLTEventDDLBackwardCompatibility.C:55 testAliHLTEventDDLBackwardCompatibility.C:56 testAliHLTEventDDLBackwardCompatibility.C:57 testAliHLTEventDDLBackwardCompatibility.C:58 testAliHLTEventDDLBackwardCompatibility.C:59 testAliHLTEventDDLBackwardCompatibility.C:60 testAliHLTEventDDLBackwardCompatibility.C:61 testAliHLTEventDDLBackwardCompatibility.C:62 testAliHLTEventDDLBackwardCompatibility.C:63 testAliHLTEventDDLBackwardCompatibility.C:64 testAliHLTEventDDLBackwardCompatibility.C:65 testAliHLTEventDDLBackwardCompatibility.C:66 testAliHLTEventDDLBackwardCompatibility.C:67 testAliHLTEventDDLBackwardCompatibility.C:68 testAliHLTEventDDLBackwardCompatibility.C:69 testAliHLTEventDDLBackwardCompatibility.C:70 testAliHLTEventDDLBackwardCompatibility.C:71 testAliHLTEventDDLBackwardCompatibility.C:72 testAliHLTEventDDLBackwardCompatibility.C:73 testAliHLTEventDDLBackwardCompatibility.C:74 testAliHLTEventDDLBackwardCompatibility.C:75 testAliHLTEventDDLBackwardCompatibility.C:76 testAliHLTEventDDLBackwardCompatibility.C:77 testAliHLTEventDDLBackwardCompatibility.C:78 testAliHLTEventDDLBackwardCompatibility.C:79 testAliHLTEventDDLBackwardCompatibility.C:80 testAliHLTEventDDLBackwardCompatibility.C:81 testAliHLTEventDDLBackwardCompatibility.C:82 testAliHLTEventDDLBackwardCompatibility.C:83 testAliHLTEventDDLBackwardCompatibility.C:84 testAliHLTEventDDLBackwardCompatibility.C:85 testAliHLTEventDDLBackwardCompatibility.C:86 testAliHLTEventDDLBackwardCompatibility.C:87 testAliHLTEventDDLBackwardCompatibility.C:88 testAliHLTEventDDLBackwardCompatibility.C:89 testAliHLTEventDDLBackwardCompatibility.C:90 testAliHLTEventDDLBackwardCompatibility.C:91 testAliHLTEventDDLBackwardCompatibility.C:92 testAliHLTEventDDLBackwardCompatibility.C:93 testAliHLTEventDDLBackwardCompatibility.C:94 testAliHLTEventDDLBackwardCompatibility.C:95 testAliHLTEventDDLBackwardCompatibility.C:96 testAliHLTEventDDLBackwardCompatibility.C:97 testAliHLTEventDDLBackwardCompatibility.C:98 testAliHLTEventDDLBackwardCompatibility.C:99 testAliHLTEventDDLBackwardCompatibility.C:100 testAliHLTEventDDLBackwardCompatibility.C:101 testAliHLTEventDDLBackwardCompatibility.C:102 testAliHLTEventDDLBackwardCompatibility.C:103 testAliHLTEventDDLBackwardCompatibility.C:104 testAliHLTEventDDLBackwardCompatibility.C:105 testAliHLTEventDDLBackwardCompatibility.C:106 testAliHLTEventDDLBackwardCompatibility.C:107 testAliHLTEventDDLBackwardCompatibility.C:108 testAliHLTEventDDLBackwardCompatibility.C:109 testAliHLTEventDDLBackwardCompatibility.C:110 testAliHLTEventDDLBackwardCompatibility.C:111 testAliHLTEventDDLBackwardCompatibility.C:112 testAliHLTEventDDLBackwardCompatibility.C:113 testAliHLTEventDDLBackwardCompatibility.C:114 testAliHLTEventDDLBackwardCompatibility.C:115 testAliHLTEventDDLBackwardCompatibility.C:116 testAliHLTEventDDLBackwardCompatibility.C:117 testAliHLTEventDDLBackwardCompatibility.C:118 testAliHLTEventDDLBackwardCompatibility.C:119 testAliHLTEventDDLBackwardCompatibility.C:120 testAliHLTEventDDLBackwardCompatibility.C:121 testAliHLTEventDDLBackwardCompatibility.C:122 testAliHLTEventDDLBackwardCompatibility.C:123 testAliHLTEventDDLBackwardCompatibility.C:124 testAliHLTEventDDLBackwardCompatibility.C:125 testAliHLTEventDDLBackwardCompatibility.C:126 testAliHLTEventDDLBackwardCompatibility.C:127 testAliHLTEventDDLBackwardCompatibility.C:128 testAliHLTEventDDLBackwardCompatibility.C:129 testAliHLTEventDDLBackwardCompatibility.C:130 testAliHLTEventDDLBackwardCompatibility.C:131 testAliHLTEventDDLBackwardCompatibility.C:132 testAliHLTEventDDLBackwardCompatibility.C:133 testAliHLTEventDDLBackwardCompatibility.C:134 testAliHLTEventDDLBackwardCompatibility.C:135 testAliHLTEventDDLBackwardCompatibility.C:136 testAliHLTEventDDLBackwardCompatibility.C:137 testAliHLTEventDDLBackwardCompatibility.C:138 testAliHLTEventDDLBackwardCompatibility.C:139 testAliHLTEventDDLBackwardCompatibility.C:140 testAliHLTEventDDLBackwardCompatibility.C:141 testAliHLTEventDDLBackwardCompatibility.C:142 testAliHLTEventDDLBackwardCompatibility.C:143 testAliHLTEventDDLBackwardCompatibility.C:144 testAliHLTEventDDLBackwardCompatibility.C:145 testAliHLTEventDDLBackwardCompatibility.C:146 testAliHLTEventDDLBackwardCompatibility.C:147 testAliHLTEventDDLBackwardCompatibility.C:148 testAliHLTEventDDLBackwardCompatibility.C:149 testAliHLTEventDDLBackwardCompatibility.C:150 testAliHLTEventDDLBackwardCompatibility.C:151 testAliHLTEventDDLBackwardCompatibility.C:152 testAliHLTEventDDLBackwardCompatibility.C:153 testAliHLTEventDDLBackwardCompatibility.C:154 testAliHLTEventDDLBackwardCompatibility.C:155 testAliHLTEventDDLBackwardCompatibility.C:156 testAliHLTEventDDLBackwardCompatibility.C:157 testAliHLTEventDDLBackwardCompatibility.C:158 testAliHLTEventDDLBackwardCompatibility.C:159 testAliHLTEventDDLBackwardCompatibility.C:160 testAliHLTEventDDLBackwardCompatibility.C:161 testAliHLTEventDDLBackwardCompatibility.C:162 testAliHLTEventDDLBackwardCompatibility.C:163 testAliHLTEventDDLBackwardCompatibility.C:164 testAliHLTEventDDLBackwardCompatibility.C:165 testAliHLTEventDDLBackwardCompatibility.C:166 testAliHLTEventDDLBackwardCompatibility.C:167 testAliHLTEventDDLBackwardCompatibility.C:168 testAliHLTEventDDLBackwardCompatibility.C:169 testAliHLTEventDDLBackwardCompatibility.C:170 testAliHLTEventDDLBackwardCompatibility.C:171 testAliHLTEventDDLBackwardCompatibility.C:172 testAliHLTEventDDLBackwardCompatibility.C:173 testAliHLTEventDDLBackwardCompatibility.C:174 testAliHLTEventDDLBackwardCompatibility.C:175 testAliHLTEventDDLBackwardCompatibility.C:176 testAliHLTEventDDLBackwardCompatibility.C:177 testAliHLTEventDDLBackwardCompatibility.C:178 testAliHLTEventDDLBackwardCompatibility.C:179 testAliHLTEventDDLBackwardCompatibility.C:180 testAliHLTEventDDLBackwardCompatibility.C:181 testAliHLTEventDDLBackwardCompatibility.C:182 testAliHLTEventDDLBackwardCompatibility.C:183 testAliHLTEventDDLBackwardCompatibility.C:184 testAliHLTEventDDLBackwardCompatibility.C:185 testAliHLTEventDDLBackwardCompatibility.C:186 testAliHLTEventDDLBackwardCompatibility.C:187 testAliHLTEventDDLBackwardCompatibility.C:188 testAliHLTEventDDLBackwardCompatibility.C:189 testAliHLTEventDDLBackwardCompatibility.C:190 testAliHLTEventDDLBackwardCompatibility.C:191 testAliHLTEventDDLBackwardCompatibility.C:192 testAliHLTEventDDLBackwardCompatibility.C:193 testAliHLTEventDDLBackwardCompatibility.C:194 testAliHLTEventDDLBackwardCompatibility.C:195 testAliHLTEventDDLBackwardCompatibility.C:196 testAliHLTEventDDLBackwardCompatibility.C:197 testAliHLTEventDDLBackwardCompatibility.C:198 testAliHLTEventDDLBackwardCompatibility.C:199 testAliHLTEventDDLBackwardCompatibility.C:200 testAliHLTEventDDLBackwardCompatibility.C:201 testAliHLTEventDDLBackwardCompatibility.C:202 testAliHLTEventDDLBackwardCompatibility.C:203 testAliHLTEventDDLBackwardCompatibility.C:204 testAliHLTEventDDLBackwardCompatibility.C:205 testAliHLTEventDDLBackwardCompatibility.C:206 testAliHLTEventDDLBackwardCompatibility.C:207 testAliHLTEventDDLBackwardCompatibility.C:208 testAliHLTEventDDLBackwardCompatibility.C:209 testAliHLTEventDDLBackwardCompatibility.C:210 testAliHLTEventDDLBackwardCompatibility.C:211 testAliHLTEventDDLBackwardCompatibility.C:212 testAliHLTEventDDLBackwardCompatibility.C:213 testAliHLTEventDDLBackwardCompatibility.C:214 testAliHLTEventDDLBackwardCompatibility.C:215 testAliHLTEventDDLBackwardCompatibility.C:216 testAliHLTEventDDLBackwardCompatibility.C:217 testAliHLTEventDDLBackwardCompatibility.C:218 testAliHLTEventDDLBackwardCompatibility.C:219 testAliHLTEventDDLBackwardCompatibility.C:220 testAliHLTEventDDLBackwardCompatibility.C:221 testAliHLTEventDDLBackwardCompatibility.C:222 testAliHLTEventDDLBackwardCompatibility.C:223 testAliHLTEventDDLBackwardCompatibility.C:224 testAliHLTEventDDLBackwardCompatibility.C:225 testAliHLTEventDDLBackwardCompatibility.C:226 testAliHLTEventDDLBackwardCompatibility.C:227 testAliHLTEventDDLBackwardCompatibility.C:228 testAliHLTEventDDLBackwardCompatibility.C:229 testAliHLTEventDDLBackwardCompatibility.C:230 testAliHLTEventDDLBackwardCompatibility.C:231 testAliHLTEventDDLBackwardCompatibility.C:232 testAliHLTEventDDLBackwardCompatibility.C:233 testAliHLTEventDDLBackwardCompatibility.C:234 testAliHLTEventDDLBackwardCompatibility.C:235 testAliHLTEventDDLBackwardCompatibility.C:236 testAliHLTEventDDLBackwardCompatibility.C:237 testAliHLTEventDDLBackwardCompatibility.C:238 testAliHLTEventDDLBackwardCompatibility.C:239 testAliHLTEventDDLBackwardCompatibility.C:240 testAliHLTEventDDLBackwardCompatibility.C:241 testAliHLTEventDDLBackwardCompatibility.C:242 testAliHLTEventDDLBackwardCompatibility.C:243 testAliHLTEventDDLBackwardCompatibility.C:244 testAliHLTEventDDLBackwardCompatibility.C:245 testAliHLTEventDDLBackwardCompatibility.C:246 testAliHLTEventDDLBackwardCompatibility.C:247 testAliHLTEventDDLBackwardCompatibility.C:248 testAliHLTEventDDLBackwardCompatibility.C:249 testAliHLTEventDDLBackwardCompatibility.C:250 testAliHLTEventDDLBackwardCompatibility.C:251 testAliHLTEventDDLBackwardCompatibility.C:252 testAliHLTEventDDLBackwardCompatibility.C:253 testAliHLTEventDDLBackwardCompatibility.C:254 testAliHLTEventDDLBackwardCompatibility.C:255 testAliHLTEventDDLBackwardCompatibility.C:256 testAliHLTEventDDLBackwardCompatibility.C:257 testAliHLTEventDDLBackwardCompatibility.C:258 testAliHLTEventDDLBackwardCompatibility.C:259 testAliHLTEventDDLBackwardCompatibility.C:260 testAliHLTEventDDLBackwardCompatibility.C:261 testAliHLTEventDDLBackwardCompatibility.C:262 testAliHLTEventDDLBackwardCompatibility.C:263 testAliHLTEventDDLBackwardCompatibility.C:264 testAliHLTEventDDLBackwardCompatibility.C:265 testAliHLTEventDDLBackwardCompatibility.C:266 testAliHLTEventDDLBackwardCompatibility.C:267 testAliHLTEventDDLBackwardCompatibility.C:268 testAliHLTEventDDLBackwardCompatibility.C:269 testAliHLTEventDDLBackwardCompatibility.C:270 testAliHLTEventDDLBackwardCompatibility.C:271 testAliHLTEventDDLBackwardCompatibility.C:272 testAliHLTEventDDLBackwardCompatibility.C:273 testAliHLTEventDDLBackwardCompatibility.C:274 testAliHLTEventDDLBackwardCompatibility.C:275 testAliHLTEventDDLBackwardCompatibility.C:276 testAliHLTEventDDLBackwardCompatibility.C:277 testAliHLTEventDDLBackwardCompatibility.C:278 testAliHLTEventDDLBackwardCompatibility.C:279 testAliHLTEventDDLBackwardCompatibility.C:280 testAliHLTEventDDLBackwardCompatibility.C:281 testAliHLTEventDDLBackwardCompatibility.C:282 testAliHLTEventDDLBackwardCompatibility.C:283 testAliHLTEventDDLBackwardCompatibility.C:284 testAliHLTEventDDLBackwardCompatibility.C:285 testAliHLTEventDDLBackwardCompatibility.C:286 testAliHLTEventDDLBackwardCompatibility.C:287 testAliHLTEventDDLBackwardCompatibility.C:288 testAliHLTEventDDLBackwardCompatibility.C:289 testAliHLTEventDDLBackwardCompatibility.C:290 testAliHLTEventDDLBackwardCompatibility.C:291 testAliHLTEventDDLBackwardCompatibility.C:292 testAliHLTEventDDLBackwardCompatibility.C:293 testAliHLTEventDDLBackwardCompatibility.C:294 testAliHLTEventDDLBackwardCompatibility.C:295 testAliHLTEventDDLBackwardCompatibility.C:296 testAliHLTEventDDLBackwardCompatibility.C:297 testAliHLTEventDDLBackwardCompatibility.C:298 testAliHLTEventDDLBackwardCompatibility.C:299 testAliHLTEventDDLBackwardCompatibility.C:300 testAliHLTEventDDLBackwardCompatibility.C:301 testAliHLTEventDDLBackwardCompatibility.C:302 testAliHLTEventDDLBackwardCompatibility.C:303 testAliHLTEventDDLBackwardCompatibility.C:304 testAliHLTEventDDLBackwardCompatibility.C:305 testAliHLTEventDDLBackwardCompatibility.C:306 testAliHLTEventDDLBackwardCompatibility.C:307 testAliHLTEventDDLBackwardCompatibility.C:308 testAliHLTEventDDLBackwardCompatibility.C:309 testAliHLTEventDDLBackwardCompatibility.C:310 testAliHLTEventDDLBackwardCompatibility.C:311 testAliHLTEventDDLBackwardCompatibility.C:312 testAliHLTEventDDLBackwardCompatibility.C:313 testAliHLTEventDDLBackwardCompatibility.C:314 testAliHLTEventDDLBackwardCompatibility.C:315 testAliHLTEventDDLBackwardCompatibility.C:316 testAliHLTEventDDLBackwardCompatibility.C:317 testAliHLTEventDDLBackwardCompatibility.C:318 testAliHLTEventDDLBackwardCompatibility.C:319 testAliHLTEventDDLBackwardCompatibility.C:320 testAliHLTEventDDLBackwardCompatibility.C:321 testAliHLTEventDDLBackwardCompatibility.C:322 testAliHLTEventDDLBackwardCompatibility.C:323 testAliHLTEventDDLBackwardCompatibility.C:324 testAliHLTEventDDLBackwardCompatibility.C:325 testAliHLTEventDDLBackwardCompatibility.C:326 testAliHLTEventDDLBackwardCompatibility.C:327 testAliHLTEventDDLBackwardCompatibility.C:328 testAliHLTEventDDLBackwardCompatibility.C:329 testAliHLTEventDDLBackwardCompatibility.C:330 testAliHLTEventDDLBackwardCompatibility.C:331 testAliHLTEventDDLBackwardCompatibility.C:332 testAliHLTEventDDLBackwardCompatibility.C:333 testAliHLTEventDDLBackwardCompatibility.C:334 testAliHLTEventDDLBackwardCompatibility.C:335 testAliHLTEventDDLBackwardCompatibility.C:336 testAliHLTEventDDLBackwardCompatibility.C:337 testAliHLTEventDDLBackwardCompatibility.C:338 testAliHLTEventDDLBackwardCompatibility.C:339 testAliHLTEventDDLBackwardCompatibility.C:340 testAliHLTEventDDLBackwardCompatibility.C:341 testAliHLTEventDDLBackwardCompatibility.C:342 testAliHLTEventDDLBackwardCompatibility.C:343 testAliHLTEventDDLBackwardCompatibility.C:344 testAliHLTEventDDLBackwardCompatibility.C:345 testAliHLTEventDDLBackwardCompatibility.C:346 testAliHLTEventDDLBackwardCompatibility.C:347 testAliHLTEventDDLBackwardCompatibility.C:348 testAliHLTEventDDLBackwardCompatibility.C:349 testAliHLTEventDDLBackwardCompatibility.C:350 testAliHLTEventDDLBackwardCompatibility.C:351 testAliHLTEventDDLBackwardCompatibility.C:352 testAliHLTEventDDLBackwardCompatibility.C:353 testAliHLTEventDDLBackwardCompatibility.C:354 testAliHLTEventDDLBackwardCompatibility.C:355 testAliHLTEventDDLBackwardCompatibility.C:356 testAliHLTEventDDLBackwardCompatibility.C:357 testAliHLTEventDDLBackwardCompatibility.C:358 testAliHLTEventDDLBackwardCompatibility.C:359 testAliHLTEventDDLBackwardCompatibility.C:360 testAliHLTEventDDLBackwardCompatibility.C:361 testAliHLTEventDDLBackwardCompatibility.C:362 testAliHLTEventDDLBackwardCompatibility.C:363 testAliHLTEventDDLBackwardCompatibility.C:364 testAliHLTEventDDLBackwardCompatibility.C:365 testAliHLTEventDDLBackwardCompatibility.C:366 testAliHLTEventDDLBackwardCompatibility.C:367 testAliHLTEventDDLBackwardCompatibility.C:368 testAliHLTEventDDLBackwardCompatibility.C:369 testAliHLTEventDDLBackwardCompatibility.C:370 testAliHLTEventDDLBackwardCompatibility.C:371 testAliHLTEventDDLBackwardCompatibility.C:372 testAliHLTEventDDLBackwardCompatibility.C:373 testAliHLTEventDDLBackwardCompatibility.C:374 testAliHLTEventDDLBackwardCompatibility.C:375 testAliHLTEventDDLBackwardCompatibility.C:376 testAliHLTEventDDLBackwardCompatibility.C:377 testAliHLTEventDDLBackwardCompatibility.C:378 testAliHLTEventDDLBackwardCompatibility.C:379 testAliHLTEventDDLBackwardCompatibility.C:380 testAliHLTEventDDLBackwardCompatibility.C:381 testAliHLTEventDDLBackwardCompatibility.C:382 testAliHLTEventDDLBackwardCompatibility.C:383 testAliHLTEventDDLBackwardCompatibility.C:384 testAliHLTEventDDLBackwardCompatibility.C:385 testAliHLTEventDDLBackwardCompatibility.C:386 testAliHLTEventDDLBackwardCompatibility.C:387 testAliHLTEventDDLBackwardCompatibility.C:388 testAliHLTEventDDLBackwardCompatibility.C:389 testAliHLTEventDDLBackwardCompatibility.C:390 testAliHLTEventDDLBackwardCompatibility.C:391 testAliHLTEventDDLBackwardCompatibility.C:392 testAliHLTEventDDLBackwardCompatibility.C:393 testAliHLTEventDDLBackwardCompatibility.C:394 testAliHLTEventDDLBackwardCompatibility.C:395 testAliHLTEventDDLBackwardCompatibility.C:396 testAliHLTEventDDLBackwardCompatibility.C:397 testAliHLTEventDDLBackwardCompatibility.C:398 testAliHLTEventDDLBackwardCompatibility.C:399 testAliHLTEventDDLBackwardCompatibility.C:400 testAliHLTEventDDLBackwardCompatibility.C:401 testAliHLTEventDDLBackwardCompatibility.C:402 testAliHLTEventDDLBackwardCompatibility.C:403 testAliHLTEventDDLBackwardCompatibility.C:404 testAliHLTEventDDLBackwardCompatibility.C:405 testAliHLTEventDDLBackwardCompatibility.C:406 testAliHLTEventDDLBackwardCompatibility.C:407 testAliHLTEventDDLBackwardCompatibility.C:408 testAliHLTEventDDLBackwardCompatibility.C:409 testAliHLTEventDDLBackwardCompatibility.C:410 testAliHLTEventDDLBackwardCompatibility.C:411 testAliHLTEventDDLBackwardCompatibility.C:412 testAliHLTEventDDLBackwardCompatibility.C:413 testAliHLTEventDDLBackwardCompatibility.C:414 testAliHLTEventDDLBackwardCompatibility.C:415 testAliHLTEventDDLBackwardCompatibility.C:416 testAliHLTEventDDLBackwardCompatibility.C:417 testAliHLTEventDDLBackwardCompatibility.C:418 testAliHLTEventDDLBackwardCompatibility.C:419 testAliHLTEventDDLBackwardCompatibility.C:420 testAliHLTEventDDLBackwardCompatibility.C:421 testAliHLTEventDDLBackwardCompatibility.C:422 testAliHLTEventDDLBackwardCompatibility.C:423 testAliHLTEventDDLBackwardCompatibility.C:424 testAliHLTEventDDLBackwardCompatibility.C:425 testAliHLTEventDDLBackwardCompatibility.C:426 testAliHLTEventDDLBackwardCompatibility.C:427 testAliHLTEventDDLBackwardCompatibility.C:428 testAliHLTEventDDLBackwardCompatibility.C:429 testAliHLTEventDDLBackwardCompatibility.C:430 testAliHLTEventDDLBackwardCompatibility.C:431 testAliHLTEventDDLBackwardCompatibility.C:432 testAliHLTEventDDLBackwardCompatibility.C:433 testAliHLTEventDDLBackwardCompatibility.C:434 testAliHLTEventDDLBackwardCompatibility.C:435 testAliHLTEventDDLBackwardCompatibility.C:436 testAliHLTEventDDLBackwardCompatibility.C:437 testAliHLTEventDDLBackwardCompatibility.C:438 testAliHLTEventDDLBackwardCompatibility.C:439 testAliHLTEventDDLBackwardCompatibility.C:440 testAliHLTEventDDLBackwardCompatibility.C:441 testAliHLTEventDDLBackwardCompatibility.C:442 testAliHLTEventDDLBackwardCompatibility.C:443 testAliHLTEventDDLBackwardCompatibility.C:444 testAliHLTEventDDLBackwardCompatibility.C:445 testAliHLTEventDDLBackwardCompatibility.C:446 testAliHLTEventDDLBackwardCompatibility.C:447 testAliHLTEventDDLBackwardCompatibility.C:448 testAliHLTEventDDLBackwardCompatibility.C:449 testAliHLTEventDDLBackwardCompatibility.C:450 testAliHLTEventDDLBackwardCompatibility.C:451 testAliHLTEventDDLBackwardCompatibility.C:452 testAliHLTEventDDLBackwardCompatibility.C:453 testAliHLTEventDDLBackwardCompatibility.C:454 testAliHLTEventDDLBackwardCompatibility.C:455 testAliHLTEventDDLBackwardCompatibility.C:456 testAliHLTEventDDLBackwardCompatibility.C:457 testAliHLTEventDDLBackwardCompatibility.C:458 testAliHLTEventDDLBackwardCompatibility.C:459 testAliHLTEventDDLBackwardCompatibility.C:460 testAliHLTEventDDLBackwardCompatibility.C:461 testAliHLTEventDDLBackwardCompatibility.C:462 testAliHLTEventDDLBackwardCompatibility.C:463 testAliHLTEventDDLBackwardCompatibility.C:464 testAliHLTEventDDLBackwardCompatibility.C:465 testAliHLTEventDDLBackwardCompatibility.C:466