ROOT logo
// $Id$

/**************************************************************************
 * This file is property of and copyright by the ALICE HLT Project        * 
 * ALICE Experiment at CERN, All rights reserved.                         *
 *                                                                        *
 * Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no>        *
 *                  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   testAliHLTExternalInterface.C
    @author Matthias Richter
    @date   
    @brief  Test program for the external wrapper interface
 */

#include "AliHLTDataTypes.h"
#include "AliHLTExternalInterface.h"
#include "AliHLTTest.h"
#include "AliCDBManager.h"
#include "AliCDBPath.h"
#include "AliCDBId.h"
#include "AliCDBMetaData.h"
#include "AliCDBRunRange.h"
#include "AliGRPObject.h"
#include <cstring>
#include <cstdlib>
#include <dlfcn.h>
#include <iostream>

const char* gDummy="dummy";
AliHLTUInt32_t gRunNo=kAliHLTVoidRunNo;
const char* gChainId="<void>";
AliHLTComponentDataType gInputDt=kAliHLTVoidDataType;
const char* gBasePath="../.libs";

int Logging( void* /*param*/, 
	     AliHLTComponentLogSeverity severity,
	     const char* origin,
	     const char* keyword,
	     const char* message)
{
  cout << "Logging: "<< severity << " " << origin << " " << keyword << " " << message << endl;
  return 0;
}

void* AllocMemory( void* param, unsigned long size )
{
  if (param!=&gDummy) {
    cerr << "AllocMemoryFunc callback with wrong parameter " << endl;
    abort();
  }
  if (size==0) return NULL;
  return new AliHLTUInt8_t[size];
}

int CreateGRP() {
  AliCDBManager* man = AliCDBManager::Instance();
  if (!man) {
    cerr << "can not get AliCDBManager" << endl;
    return -1;
  }
  TString storage;
  man->SetDefaultStorage("local://$PWD");

  // generate GRP object
  AliGRPObject* grpObj=new AliGRPObject;
  float cmsEnergy=14000;
  grpObj->SetBeamEnergy(cmsEnergy/0.120); // LHC convention
  grpObj->SetBeamType("p-p");
  grpObj->SetL3Current(30000,(AliGRPObject::Stats)0);
  grpObj->SetDipoleCurrent(0,(AliGRPObject::Stats)0);  
  grpObj->SetL3Polarity(1);  
  grpObj->SetDipolePolarity(0);
  grpObj->SetPolarityConventionLHC();                    // LHC convention +/+ current -> -/- field main components

  // write object to OCDB
  AliCDBPath cdbPath("GRP/GRP/Data");
  AliCDBId cdbId(cdbPath, 0, AliCDBRunRange::Infinity());
  AliCDBMetaData cdbMetaData;
  cdbMetaData.SetResponsible("ALICE HLT");
  cdbMetaData.SetComment("Automatically produced GRP entry (AliHLTSimulation) for the magnetic field initialization of HLT components");
  man->Put(grpObj, cdbId, &cdbMetaData);
  return 0;
}

int main(int /*argc*/, const char** /*argv*/)
{
  int iResult=0;

  if ((iResult=CreateGRP()) < 0) return iResult;

  string libraryPath="";
  libraryPath+=ALIHLTANALYSIS_INTERFACE_LIBRARY;

  void* libHandle=dlopen(libraryPath.c_str(), RTLD_NOW);
  if (!libHandle) {
    cerr << "error: can not load library " << libraryPath.c_str() << endl;
    return -1;
  }

  AliHLTAnalysisFctGetInterfaceCall fctGetSystemCall=(AliHLTAnalysisFctGetInterfaceCall)dlsym(libHandle, ALIHLTANALYSIS_FCT_GETINTERFACECALL);
  if (!fctGetSystemCall) {
    cerr << "error: can not find function '" << ALIHLTANALYSIS_FCT_GETINTERFACECALL << "' in " << libraryPath.c_str() << endl;
    return -1;
  }

  AliHLTAnalysisEnvironment environment;
  memset(&environment, 0, sizeof(environment));
  environment.fStructSize=sizeof(environment);
  environment.fAllocMemoryFunc=AllocMemory;
  environment.fLoggingFunc=Logging;

  AliHLTExtFctInitSystem fctInitSystem=(AliHLTExtFctInitSystem)fctGetSystemCall("int AliHLTAnalysisInitSystem(unsigned long,AliHLTAnalysisEnvironment*,unsigned long,const char*)");
  if (!fctInitSystem) {
    cerr << "error: missing AliHLTAnalysisInitSystem call" << endl;
    return -1;
  }

  if ((iResult=fctInitSystem( ALIHLT_DATA_TYPES_VERSION, &environment, 0xbeef, "dummy-run" ))<0) {
    cerr << "InitSystem failed with " << iResult << endl;
    return iResult;
  }

  AliHLTExtFctLoadLibrary fctLoadLibrary=(AliHLTExtFctLoadLibrary)fctGetSystemCall("int AliHLTAnalysisLoadLibrary(const char*)");
  if (!fctLoadLibrary) {
    cerr << "error: missing LoadLibrary call" << endl;
    return -1;
  }

  if ((iResult=fctLoadLibrary("libAliHLTUtil.so"))<0) {
    cerr << "error: AliHLTAnalysisLoadLibrary failed with " << iResult << endl;
    return iResult;
  }

#ifdef HLT_MUON
  const char* module=NULL;
  module="MUON";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_MUON

#ifdef HLT_PHOS
  // module="PHOS";
  // libraryPath="libAliHLT";
  // libraryPath+=module;
  // libraryPath+=".so";
  // if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
  //   return iResult;
  // }
#endif //HLT_PHOS

#ifdef HLT_TRD
  module="TRD";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_TRD

#ifdef HLT_TPC
  module="TPC";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_TPC

#ifdef HLT_ITS
  module="ITS";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_ITS

#ifdef HLT_TRIGGER
  module="Trigger";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_TRIGGER

#ifdef HLT_COMP
  module="Comp";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_COMP

#ifdef HLT_RCU
  module="RCU";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_RCU

#ifdef HLT_GLOBAL
  module="Global";
  libraryPath="libAliHLT";
  libraryPath+=module;
  libraryPath+=".so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }
#endif //HLT_GLOBAL

  libraryPath=".libs/libAliHLTTest.so";
  if ((iResult=fctLoadLibrary(libraryPath.c_str()))<0) {
    return iResult;
  }

  AliHLTExtFctCreateComponent fctCreateComponent=(AliHLTExtFctCreateComponent)fctGetSystemCall("int AliHLTAnalysisCreateComponent(const char*,void*,int,const char**,AliHLTComponentHandle*,const char*)");
  if (!fctCreateComponent) {
    cerr << "error: missing CreateComponent call" << endl;
    return -1;
  }

  AliHLTComponentHandle handle;
  if ((iResult=fctCreateComponent("TestProcessor", &gDummy, 0, NULL, &handle, "chainid=test" ))<0) {
    cerr << "error: AliHLTAnalysisCreateComponent failed with " << iResult << endl;
    return iResult;
  }

  // Matthias 2009-05-29: here the check whether the setup is really
  // working needs to be implemented, postponing it for the moment
//   AliHLTTest* pCheck=reinterpret_cast<AliHLTTest*>(handle);
//   if (!pCheck->CheckRunNo(0xbeef)) {
//     cerr << "error: propagation of run number failed " << hex << gRunNo << " vs. 0xbeef" << endl;
//     return -1;
//   }

//   // can be used in the new interface again
//   if (!pCheck->CheckChainId("test")) {
//     cerr << "propagation of chain id failed: '" << gChainId << "' vs. test" << endl;
//     return -1;
//   }
//   if (!pCheck->CheckMagneticField(-5)) {
//     cerr << "initialization of magnetic field failed" << endl;
//     return -1;
//   }

  AliHLTExtFctProcessEvent fctProcessEvent=(AliHLTExtFctProcessEvent)fctGetSystemCall("int AliHLTAnalysisProcessEvent(AliHLTComponentHandle,const AliHLTComponentEventData*,const AliHLTComponentBlockData*,AliHLTComponentTriggerData*,AliHLTUInt8_t*,AliHLTUInt32_t*,AliHLTUInt32_t*,AliHLTComponentBlockData**,AliHLTComponentEventDoneData**)");
  if (!fctProcessEvent) {
    cerr << "error: missing ProcessEvent call" << endl;
    return -1;
  }

  const char* inputData="some data to be copied";
  AliHLTComponentBlockData inputBlock;
  memset(&inputBlock, 0, sizeof(inputBlock));
  inputBlock.fStructSize=sizeof(inputBlock);
  inputBlock.fPtr=(void*)inputData;
  inputBlock.fSize=strlen(inputData);
  inputBlock.fDataType=kAliHLTDataTypeDDLRaw;
  inputBlock.fSpecification=0xdead;

  AliHLTComponentEventData evtData;
  memset(&evtData, 0, sizeof(evtData));
  evtData.fStructSize=sizeof(evtData);
  evtData.fBlockCnt=1;

  AliHLTComponentTriggerData trigData;
  memset(&trigData, 0, sizeof(trigData));
  trigData.fStructSize=sizeof(trigData);

  AliHLTUInt8_t outputPtr[100];
  AliHLTUInt32_t size=sizeof(outputPtr);

  AliHLTUInt32_t outputBlockCnt=0;
  AliHLTComponentBlockData* outputBlocks=NULL;
  AliHLTComponentEventDoneData* edd=NULL;

  if ((iResult=fctProcessEvent( handle, &evtData, &inputBlock, &trigData, outputPtr,
				&size, &outputBlockCnt, &outputBlocks, &edd ))<0) {
    cerr << "error: AliHLT_C_Component_ProcessEvent failed with " << iResult << endl;
    return iResult;
  }

  if (outputBlockCnt<2) {
    cerr << "error: mismatch in output block count, expecting >2, got " << outputBlockCnt << endl;
    return -1;
  }

  if (outputBlocks==NULL) {
    cerr << "error: did not get output block array " << endl;
    return -1;
  }

  const char id[kAliHLTComponentDataTypefIDsize]={'-','O','U','T','P','U','T','-'};
  AliHLTComponentDataType outdt=AliHLTComponentDataTypeInitializer(id, "MYCO");
  bool bHaveForwarded=false;
  bool bHaveCopied=false;
  for (unsigned int i=0; i<outputBlockCnt; i++) {
    if (outputBlocks[i].fDataType==kAliHLTDataTypeDDLRaw) {
      if (outputBlocks[i].fPtr!=inputData ||
	  outputBlocks[i].fSize!=strlen(inputData)) {
	cerr << "error: failed comparing forwarded input block" << endl;
	return -1;
      }
      bHaveForwarded=true;
    } else if (outputBlocks[i].fDataType==outdt) {
      if (outputBlocks[i].fSize!=strlen(inputData)/2) {
	cerr << "error: wrong size of copied block" << endl;
	return -1;
      }
      if (memcmp(inputData, outputPtr+outputBlocks[i].fOffset, outputBlocks[i].fSize)) {
	cerr << "error: failed comparing copied block" << endl;
	return -1;
      }
      bHaveCopied=true;
    }
  }

  if (!bHaveForwarded) {
    cerr << "error: did not get forwarded data block" << endl;
    return -1;
  }

  if (!bHaveCopied) {
    cerr << "error: did not get copied data block" << endl;
    return -1;
  }

  AliHLTExtFctDestroyComponent fctDestroyComponent=(AliHLTExtFctDestroyComponent)fctGetSystemCall("int AliHLTAnalysisDestroyComponent(AliHLTComponentHandle)");
  if (!fctDestroyComponent) {
    cerr << "error: missing DestroyComponent call" << endl;
    return -1;
  }

  fctDestroyComponent(handle);

  AliHLTExtFctDeinitSystem fctDeinitSystem=(AliHLTExtFctDeinitSystem)fctGetSystemCall("int AliHLTAnalysisDeinitSystem()");
  if (!fctDeinitSystem) {
    cerr << "error: missing DeinitSystem call" << endl;
    return -1;
  }

  if ((iResult=fctDeinitSystem( ))<0) {
    cerr << "AliHLTAnalysisDeinitSystem failed with " << iResult << endl;
    return iResult;
  }

  return 0;
}
 testAliHLTExternalInterface.C:1
 testAliHLTExternalInterface.C:2
 testAliHLTExternalInterface.C:3
 testAliHLTExternalInterface.C:4
 testAliHLTExternalInterface.C:5
 testAliHLTExternalInterface.C:6
 testAliHLTExternalInterface.C:7
 testAliHLTExternalInterface.C:8
 testAliHLTExternalInterface.C:9
 testAliHLTExternalInterface.C:10
 testAliHLTExternalInterface.C:11
 testAliHLTExternalInterface.C:12
 testAliHLTExternalInterface.C:13
 testAliHLTExternalInterface.C:14
 testAliHLTExternalInterface.C:15
 testAliHLTExternalInterface.C:16
 testAliHLTExternalInterface.C:17
 testAliHLTExternalInterface.C:18
 testAliHLTExternalInterface.C:19
 testAliHLTExternalInterface.C:20
 testAliHLTExternalInterface.C:21
 testAliHLTExternalInterface.C:22
 testAliHLTExternalInterface.C:23
 testAliHLTExternalInterface.C:24
 testAliHLTExternalInterface.C:25
 testAliHLTExternalInterface.C:26
 testAliHLTExternalInterface.C:27
 testAliHLTExternalInterface.C:28
 testAliHLTExternalInterface.C:29
 testAliHLTExternalInterface.C:30
 testAliHLTExternalInterface.C:31
 testAliHLTExternalInterface.C:32
 testAliHLTExternalInterface.C:33
 testAliHLTExternalInterface.C:34
 testAliHLTExternalInterface.C:35
 testAliHLTExternalInterface.C:36
 testAliHLTExternalInterface.C:37
 testAliHLTExternalInterface.C:38
 testAliHLTExternalInterface.C:39
 testAliHLTExternalInterface.C:40
 testAliHLTExternalInterface.C:41
 testAliHLTExternalInterface.C:42
 testAliHLTExternalInterface.C:43
 testAliHLTExternalInterface.C:44
 testAliHLTExternalInterface.C:45
 testAliHLTExternalInterface.C:46
 testAliHLTExternalInterface.C:47
 testAliHLTExternalInterface.C:48
 testAliHLTExternalInterface.C:49
 testAliHLTExternalInterface.C:50
 testAliHLTExternalInterface.C:51
 testAliHLTExternalInterface.C:52
 testAliHLTExternalInterface.C:53
 testAliHLTExternalInterface.C:54
 testAliHLTExternalInterface.C:55
 testAliHLTExternalInterface.C:56
 testAliHLTExternalInterface.C:57
 testAliHLTExternalInterface.C:58
 testAliHLTExternalInterface.C:59
 testAliHLTExternalInterface.C:60
 testAliHLTExternalInterface.C:61
 testAliHLTExternalInterface.C:62
 testAliHLTExternalInterface.C:63
 testAliHLTExternalInterface.C:64
 testAliHLTExternalInterface.C:65
 testAliHLTExternalInterface.C:66
 testAliHLTExternalInterface.C:67
 testAliHLTExternalInterface.C:68
 testAliHLTExternalInterface.C:69
 testAliHLTExternalInterface.C:70
 testAliHLTExternalInterface.C:71
 testAliHLTExternalInterface.C:72
 testAliHLTExternalInterface.C:73
 testAliHLTExternalInterface.C:74
 testAliHLTExternalInterface.C:75
 testAliHLTExternalInterface.C:76
 testAliHLTExternalInterface.C:77
 testAliHLTExternalInterface.C:78
 testAliHLTExternalInterface.C:79
 testAliHLTExternalInterface.C:80
 testAliHLTExternalInterface.C:81
 testAliHLTExternalInterface.C:82
 testAliHLTExternalInterface.C:83
 testAliHLTExternalInterface.C:84
 testAliHLTExternalInterface.C:85
 testAliHLTExternalInterface.C:86
 testAliHLTExternalInterface.C:87
 testAliHLTExternalInterface.C:88
 testAliHLTExternalInterface.C:89
 testAliHLTExternalInterface.C:90
 testAliHLTExternalInterface.C:91
 testAliHLTExternalInterface.C:92
 testAliHLTExternalInterface.C:93
 testAliHLTExternalInterface.C:94
 testAliHLTExternalInterface.C:95
 testAliHLTExternalInterface.C:96
 testAliHLTExternalInterface.C:97
 testAliHLTExternalInterface.C:98
 testAliHLTExternalInterface.C:99
 testAliHLTExternalInterface.C:100
 testAliHLTExternalInterface.C:101
 testAliHLTExternalInterface.C:102
 testAliHLTExternalInterface.C:103
 testAliHLTExternalInterface.C:104
 testAliHLTExternalInterface.C:105
 testAliHLTExternalInterface.C:106
 testAliHLTExternalInterface.C:107
 testAliHLTExternalInterface.C:108
 testAliHLTExternalInterface.C:109
 testAliHLTExternalInterface.C:110
 testAliHLTExternalInterface.C:111
 testAliHLTExternalInterface.C:112
 testAliHLTExternalInterface.C:113
 testAliHLTExternalInterface.C:114
 testAliHLTExternalInterface.C:115
 testAliHLTExternalInterface.C:116
 testAliHLTExternalInterface.C:117
 testAliHLTExternalInterface.C:118
 testAliHLTExternalInterface.C:119
 testAliHLTExternalInterface.C:120
 testAliHLTExternalInterface.C:121
 testAliHLTExternalInterface.C:122
 testAliHLTExternalInterface.C:123
 testAliHLTExternalInterface.C:124
 testAliHLTExternalInterface.C:125
 testAliHLTExternalInterface.C:126
 testAliHLTExternalInterface.C:127
 testAliHLTExternalInterface.C:128
 testAliHLTExternalInterface.C:129
 testAliHLTExternalInterface.C:130
 testAliHLTExternalInterface.C:131
 testAliHLTExternalInterface.C:132
 testAliHLTExternalInterface.C:133
 testAliHLTExternalInterface.C:134
 testAliHLTExternalInterface.C:135
 testAliHLTExternalInterface.C:136
 testAliHLTExternalInterface.C:137
 testAliHLTExternalInterface.C:138
 testAliHLTExternalInterface.C:139
 testAliHLTExternalInterface.C:140
 testAliHLTExternalInterface.C:141
 testAliHLTExternalInterface.C:142
 testAliHLTExternalInterface.C:143
 testAliHLTExternalInterface.C:144
 testAliHLTExternalInterface.C:145
 testAliHLTExternalInterface.C:146
 testAliHLTExternalInterface.C:147
 testAliHLTExternalInterface.C:148
 testAliHLTExternalInterface.C:149
 testAliHLTExternalInterface.C:150
 testAliHLTExternalInterface.C:151
 testAliHLTExternalInterface.C:152
 testAliHLTExternalInterface.C:153
 testAliHLTExternalInterface.C:154
 testAliHLTExternalInterface.C:155
 testAliHLTExternalInterface.C:156
 testAliHLTExternalInterface.C:157
 testAliHLTExternalInterface.C:158
 testAliHLTExternalInterface.C:159
 testAliHLTExternalInterface.C:160
 testAliHLTExternalInterface.C:161
 testAliHLTExternalInterface.C:162
 testAliHLTExternalInterface.C:163
 testAliHLTExternalInterface.C:164
 testAliHLTExternalInterface.C:165
 testAliHLTExternalInterface.C:166
 testAliHLTExternalInterface.C:167
 testAliHLTExternalInterface.C:168
 testAliHLTExternalInterface.C:169
 testAliHLTExternalInterface.C:170
 testAliHLTExternalInterface.C:171
 testAliHLTExternalInterface.C:172
 testAliHLTExternalInterface.C:173
 testAliHLTExternalInterface.C:174
 testAliHLTExternalInterface.C:175
 testAliHLTExternalInterface.C:176
 testAliHLTExternalInterface.C:177
 testAliHLTExternalInterface.C:178
 testAliHLTExternalInterface.C:179
 testAliHLTExternalInterface.C:180
 testAliHLTExternalInterface.C:181
 testAliHLTExternalInterface.C:182
 testAliHLTExternalInterface.C:183
 testAliHLTExternalInterface.C:184
 testAliHLTExternalInterface.C:185
 testAliHLTExternalInterface.C:186
 testAliHLTExternalInterface.C:187
 testAliHLTExternalInterface.C:188
 testAliHLTExternalInterface.C:189
 testAliHLTExternalInterface.C:190
 testAliHLTExternalInterface.C:191
 testAliHLTExternalInterface.C:192
 testAliHLTExternalInterface.C:193
 testAliHLTExternalInterface.C:194
 testAliHLTExternalInterface.C:195
 testAliHLTExternalInterface.C:196
 testAliHLTExternalInterface.C:197
 testAliHLTExternalInterface.C:198
 testAliHLTExternalInterface.C:199
 testAliHLTExternalInterface.C:200
 testAliHLTExternalInterface.C:201
 testAliHLTExternalInterface.C:202
 testAliHLTExternalInterface.C:203
 testAliHLTExternalInterface.C:204
 testAliHLTExternalInterface.C:205
 testAliHLTExternalInterface.C:206
 testAliHLTExternalInterface.C:207
 testAliHLTExternalInterface.C:208
 testAliHLTExternalInterface.C:209
 testAliHLTExternalInterface.C:210
 testAliHLTExternalInterface.C:211
 testAliHLTExternalInterface.C:212
 testAliHLTExternalInterface.C:213
 testAliHLTExternalInterface.C:214
 testAliHLTExternalInterface.C:215
 testAliHLTExternalInterface.C:216
 testAliHLTExternalInterface.C:217
 testAliHLTExternalInterface.C:218
 testAliHLTExternalInterface.C:219
 testAliHLTExternalInterface.C:220
 testAliHLTExternalInterface.C:221
 testAliHLTExternalInterface.C:222
 testAliHLTExternalInterface.C:223
 testAliHLTExternalInterface.C:224
 testAliHLTExternalInterface.C:225
 testAliHLTExternalInterface.C:226
 testAliHLTExternalInterface.C:227
 testAliHLTExternalInterface.C:228
 testAliHLTExternalInterface.C:229
 testAliHLTExternalInterface.C:230
 testAliHLTExternalInterface.C:231
 testAliHLTExternalInterface.C:232
 testAliHLTExternalInterface.C:233
 testAliHLTExternalInterface.C:234
 testAliHLTExternalInterface.C:235
 testAliHLTExternalInterface.C:236
 testAliHLTExternalInterface.C:237
 testAliHLTExternalInterface.C:238
 testAliHLTExternalInterface.C:239
 testAliHLTExternalInterface.C:240
 testAliHLTExternalInterface.C:241
 testAliHLTExternalInterface.C:242
 testAliHLTExternalInterface.C:243
 testAliHLTExternalInterface.C:244
 testAliHLTExternalInterface.C:245
 testAliHLTExternalInterface.C:246
 testAliHLTExternalInterface.C:247
 testAliHLTExternalInterface.C:248
 testAliHLTExternalInterface.C:249
 testAliHLTExternalInterface.C:250
 testAliHLTExternalInterface.C:251
 testAliHLTExternalInterface.C:252
 testAliHLTExternalInterface.C:253
 testAliHLTExternalInterface.C:254
 testAliHLTExternalInterface.C:255
 testAliHLTExternalInterface.C:256
 testAliHLTExternalInterface.C:257
 testAliHLTExternalInterface.C:258
 testAliHLTExternalInterface.C:259
 testAliHLTExternalInterface.C:260
 testAliHLTExternalInterface.C:261
 testAliHLTExternalInterface.C:262
 testAliHLTExternalInterface.C:263
 testAliHLTExternalInterface.C:264
 testAliHLTExternalInterface.C:265
 testAliHLTExternalInterface.C:266
 testAliHLTExternalInterface.C:267
 testAliHLTExternalInterface.C:268
 testAliHLTExternalInterface.C:269
 testAliHLTExternalInterface.C:270
 testAliHLTExternalInterface.C:271
 testAliHLTExternalInterface.C:272
 testAliHLTExternalInterface.C:273
 testAliHLTExternalInterface.C:274
 testAliHLTExternalInterface.C:275
 testAliHLTExternalInterface.C:276
 testAliHLTExternalInterface.C:277
 testAliHLTExternalInterface.C:278
 testAliHLTExternalInterface.C:279
 testAliHLTExternalInterface.C:280
 testAliHLTExternalInterface.C:281
 testAliHLTExternalInterface.C:282
 testAliHLTExternalInterface.C:283
 testAliHLTExternalInterface.C:284
 testAliHLTExternalInterface.C:285
 testAliHLTExternalInterface.C:286
 testAliHLTExternalInterface.C:287
 testAliHLTExternalInterface.C:288
 testAliHLTExternalInterface.C:289
 testAliHLTExternalInterface.C:290
 testAliHLTExternalInterface.C:291
 testAliHLTExternalInterface.C:292
 testAliHLTExternalInterface.C:293
 testAliHLTExternalInterface.C:294
 testAliHLTExternalInterface.C:295
 testAliHLTExternalInterface.C:296
 testAliHLTExternalInterface.C:297
 testAliHLTExternalInterface.C:298
 testAliHLTExternalInterface.C:299
 testAliHLTExternalInterface.C:300
 testAliHLTExternalInterface.C:301
 testAliHLTExternalInterface.C:302
 testAliHLTExternalInterface.C:303
 testAliHLTExternalInterface.C:304
 testAliHLTExternalInterface.C:305
 testAliHLTExternalInterface.C:306
 testAliHLTExternalInterface.C:307
 testAliHLTExternalInterface.C:308
 testAliHLTExternalInterface.C:309
 testAliHLTExternalInterface.C:310
 testAliHLTExternalInterface.C:311
 testAliHLTExternalInterface.C:312
 testAliHLTExternalInterface.C:313
 testAliHLTExternalInterface.C:314
 testAliHLTExternalInterface.C:315
 testAliHLTExternalInterface.C:316
 testAliHLTExternalInterface.C:317
 testAliHLTExternalInterface.C:318
 testAliHLTExternalInterface.C:319
 testAliHLTExternalInterface.C:320
 testAliHLTExternalInterface.C:321
 testAliHLTExternalInterface.C:322
 testAliHLTExternalInterface.C:323
 testAliHLTExternalInterface.C:324
 testAliHLTExternalInterface.C:325
 testAliHLTExternalInterface.C:326
 testAliHLTExternalInterface.C:327
 testAliHLTExternalInterface.C:328
 testAliHLTExternalInterface.C:329
 testAliHLTExternalInterface.C:330
 testAliHLTExternalInterface.C:331
 testAliHLTExternalInterface.C:332
 testAliHLTExternalInterface.C:333
 testAliHLTExternalInterface.C:334
 testAliHLTExternalInterface.C:335
 testAliHLTExternalInterface.C:336
 testAliHLTExternalInterface.C:337
 testAliHLTExternalInterface.C:338
 testAliHLTExternalInterface.C:339
 testAliHLTExternalInterface.C:340
 testAliHLTExternalInterface.C:341
 testAliHLTExternalInterface.C:342
 testAliHLTExternalInterface.C:343
 testAliHLTExternalInterface.C:344
 testAliHLTExternalInterface.C:345
 testAliHLTExternalInterface.C:346
 testAliHLTExternalInterface.C:347
 testAliHLTExternalInterface.C:348
 testAliHLTExternalInterface.C:349
 testAliHLTExternalInterface.C:350
 testAliHLTExternalInterface.C:351
 testAliHLTExternalInterface.C:352
 testAliHLTExternalInterface.C:353
 testAliHLTExternalInterface.C:354
 testAliHLTExternalInterface.C:355
 testAliHLTExternalInterface.C:356
 testAliHLTExternalInterface.C:357
 testAliHLTExternalInterface.C:358
 testAliHLTExternalInterface.C:359
 testAliHLTExternalInterface.C:360
 testAliHLTExternalInterface.C:361
 testAliHLTExternalInterface.C:362
 testAliHLTExternalInterface.C:363
 testAliHLTExternalInterface.C:364
 testAliHLTExternalInterface.C:365
 testAliHLTExternalInterface.C:366
 testAliHLTExternalInterface.C:367
 testAliHLTExternalInterface.C:368
 testAliHLTExternalInterface.C:369
 testAliHLTExternalInterface.C:370
 testAliHLTExternalInterface.C:371
 testAliHLTExternalInterface.C:372
 testAliHLTExternalInterface.C:373