ROOT logo
// $Id$

//**************************************************************************
//* This file is property of and copyright by the                          * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//*                                                                        *
//* Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no>        *
//*                  Timm Steinbeck <timm@kip.uni-heidelberg.de>           *
//*                  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   AliHLTComponentHandler.cxx
/// @author Matthias Richter, Timm Steinbeck
/// @date   
/// @brief  Implementation of HLT component handler.
///

//#undef HAVE_DLFCN_H
#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
#else
//#include <Riostream.h>
#include <TSystem.h>
#endif //HAVE_DLFCN_H
#include "AliHLTComponentHandler.h"
#include "AliHLTComponent.h"
#include "AliHLTDataTypes.h"
#include "AliHLTModuleAgent.h"
#include "TString.h"

/** ROOT macro for the implementation of ROOT specific class methods */
ClassImp(AliHLTComponentHandler)

AliHLTComponentHandler::AliHLTComponentHandler()
  :
  fComponentList(),
  fScheduleList(),
  fLibraryList(),
  fEnvironment(),
  fOwnedComponents(),
  fLibraryMode(kDynamic),
  fRunDesc(kAliHLTVoidRunDesc),
  fRunType(NULL)
{
  // see header file for class documentation
  // or
  // refer to README to build package
  // or
  // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
  memset(&fEnvironment, 0, sizeof(AliHLTAnalysisEnvironment));
  fEnvironment.fStructSize=sizeof(AliHLTAnalysisEnvironment);
  AddStandardComponents();
}

AliHLTComponentHandler::AliHLTComponentHandler(AliHLTAnalysisEnvironment* pEnv)
  :
  AliHLTLogging(),
  fComponentList(),
  fScheduleList(),
  fLibraryList(),
  fEnvironment(),
  fOwnedComponents(),
  fLibraryMode(kDynamic),
  fRunDesc(kAliHLTVoidRunDesc),
  fRunType(NULL)
{
  // constructor with environment
  if (pEnv) {
    memcpy(&fEnvironment, pEnv, sizeof(AliHLTAnalysisEnvironment));
    if (pEnv->fLoggingFunc) {
      // the AliHLTLogging::Init method also sets the stream output
      // and notification handler to AliLog. This should only be done
      // if the logging environment contains a logging function
      // for redirection
      AliHLTLogging::Init(pEnv->fLoggingFunc);
    }
  }  else {
    memset(&fEnvironment, 0, sizeof(AliHLTAnalysisEnvironment));
    fEnvironment.fStructSize=sizeof(AliHLTAnalysisEnvironment);
  }
  //#ifndef __DEBUG
  //SetLocalLoggingLevel(kHLTLogError);
  //#else
  //SetLocalLoggingLevel(kHLTLogInfo);
  //#endif

  AddStandardComponents();
}

AliHLTComponentHandler::~AliHLTComponentHandler()
{
  // destructor
  DeactivateAgents();
  DeleteOwnedComponents();
  UnloadLibraries();
  if (fRunType) delete [] fRunType;
  fRunType=NULL;
}

AliHLTComponentHandler* AliHLTComponentHandler::fgpInstance=NULL;
int AliHLTComponentHandler::fgNofInstances=0;

AliHLTComponentHandler* AliHLTComponentHandler::CreateHandler()
{
  // create global instance of handler
  if (!fgpInstance) fgpInstance=new AliHLTComponentHandler;
  fgNofInstances++;
  return fgpInstance;
}

int AliHLTComponentHandler::Destroy()
{
  // destroy/delete 'this', checks if 'this' pointer is the global instance,
  // reduce the instance counter and delete if there are no instances left
  // IMPORTANT: the object must be considered self-destroyed after the function
  int nofInstances=0;
  if (fgpInstance==this) {
    nofInstances=--fgNofInstances;
  }
  if (fgNofInstances==0) fgpInstance=NULL;
  if (nofInstances==0) delete this;
  return nofInstances;
}

int AliHLTComponentHandler::AnnounceVersion()
{
  // printout for version
  int iResult=0;
#ifdef PACKAGE_STRING
  extern void HLTbaseCompileInfo( const char*& date, const char*& time);
  const char* date="";
  const char* time="";
  HLTbaseCompileInfo(date, time);
  if (!date) date="unknown";
  if (!time) time="unknown";
  HLTImportant("%s build on %s (%s)", PACKAGE_STRING, date, time);
#else
  HLTImportant("ALICE High Level Trigger build on %s (%s) (embedded AliRoot build)", __DATE__, __TIME__);
#endif
  return iResult;
}

Int_t AliHLTComponentHandler::AddComponent(AliHLTComponent* pSample)
{
  // add and register a component, handler becomes owner
  Int_t iResult=0;
  if (pSample==NULL) return -EINVAL;
  if ((iResult=RegisterComponent(pSample))>=0) {
    //HLTDebug("sample %s (%p) managed by handler", pSample->GetComponentID(), pSample);
    fOwnedComponents.push_back(pSample);
  }
  return iResult;
}

Int_t AliHLTComponentHandler::RegisterComponent(AliHLTComponent* pSample)
{
  // register a component, handler creates clone of sample
  Int_t iResult=0;
  if (pSample) {
    if (FindComponent(pSample->GetComponentID())==NULL) {
      iResult=InsertComponent(pSample);
      if (iResult>=0) {
	HLTInfo("component %s registered", pSample->GetComponentID());
      }
    } else {
      // component already registered
      HLTDebug("component %s already registered, skipped", pSample->GetComponentID());
      iResult=-EEXIST;
    }
  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

int AliHLTComponentHandler::DeregisterComponent( const char* componentID )
{
  // deregister component

  int iResult=0;
  if (componentID) {
    HLTWarning("not yet implemented, please notify the developers if you need this function");
  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

Int_t AliHLTComponentHandler::ScheduleRegister(AliHLTComponent* pSample)
{
  // schedule registration
  Int_t iResult=0;
  if (pSample) {
    fScheduleList.push_back(pSample);
  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

int AliHLTComponentHandler::CreateComponent(const char* componentID, void* pEnvParam, int argc, const char** argv, AliHLTComponent*& component)
{
  // create a component
  int iResult=CreateComponent(componentID, component);
  if (iResult>=0 && component) {
	HLTDebug("component \"%s\" created (%p)", componentID, component);
	if ((iResult=component->Init(&fEnvironment, pEnvParam, argc, argv))!=0) {
	  HLTError("Initialization of component \"%s\" failed with error %d", componentID, iResult);
	  delete component;
	  component=NULL;
	}
  }
  return iResult;
}

int AliHLTComponentHandler::CreateComponent(const char* componentID, AliHLTComponent*& component )
{
  // create a component
  int iResult=0;
  if (componentID) {
    AliHLTComponent* pSample=FindComponent(componentID);
    if (pSample!=NULL) {
      component=pSample->Spawn();
      if (component) {
	HLTDebug("component \"%s\" created (%p)", componentID, component);
      } else {
	HLTError("can not spawn component \"%s\"", componentID);
	iResult=-ENOENT;
      }
    } else {
      HLTWarning("can not find component \"%s\"", componentID);
      iResult=-ENOENT;
    }
  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

Int_t AliHLTComponentHandler::FindComponentIndex(const char* componentID)
{
  // find component by ID in the list and return index
  Int_t iResult=0;
  if (componentID) {
    AliHLTComponentPList::iterator element=fComponentList.begin();
    while (element!=fComponentList.end() && iResult>=0) {
      if (strcmp(componentID, (*element)->GetComponentID())==0) {
	break;
      }
      element++;
      iResult++;
    }
    if (element==fComponentList.end()) iResult=-ENOENT;
  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

AliHLTComponent* AliHLTComponentHandler::FindComponent(const char* componentID)
{
  // find component sample by ID
  AliHLTComponent* pSample=NULL;
  Int_t index=FindComponentIndex(componentID);
  if (index>=0) {
    pSample=(AliHLTComponent*)fComponentList.at(index);
  }
  return pSample;
}

Int_t AliHLTComponentHandler::InsertComponent(AliHLTComponent* pSample)
{
  // insert a component sample in the list
  Int_t iResult=0;
  if (pSample!=NULL) {
    fComponentList.push_back(pSample);
  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

void AliHLTComponentHandler::List() 
{
  // print list content
  // TODO: implement Print()
  AliHLTComponentPList::iterator element=fComponentList.begin();
  int index=0;
  while (element!=fComponentList.end()) {
    HLTInfo("%d. %s", index++, (*element++)->GetComponentID());
  }
}

int AliHLTComponentHandler::HasOutputData( const char* componentID)
{
  // check if a component has output data
  int iResult=0;
  AliHLTComponent* pSample=FindComponent(componentID);
  if (pSample) {
    AliHLTComponent::TComponentType ct=AliHLTComponent::kUnknown;
    ct=pSample->GetComponentType();
    iResult=(ct==AliHLTComponent::kSource || ct==AliHLTComponent::kProcessor);
  } else {
    iResult=-ENOENT;
  }
  return iResult;
}

void AliHLTComponentHandler::SetEnvironment(AliHLTAnalysisEnvironment* pEnv) 
{
  // set global environment
  if (pEnv) {
    memset(&fEnvironment, 0, sizeof(AliHLTAnalysisEnvironment));
    memcpy(&fEnvironment, pEnv, pEnv->fStructSize<sizeof(AliHLTAnalysisEnvironment)?pEnv->fStructSize:sizeof(AliHLTAnalysisEnvironment));
    fEnvironment.fStructSize=sizeof(AliHLTAnalysisEnvironment);
    if (fEnvironment.fLoggingFunc) {
      // the AliHLTLogging::Init method also sets the stream output
      // and notification handler to AliLog. This should only be done
      // if the logging environment contains a logging function
      // for redirection
      AliHLTLogging::Init(fEnvironment.fLoggingFunc);
    }
  }
}

AliHLTComponentHandler::TLibraryMode AliHLTComponentHandler::SetLibraryMode(TLibraryMode mode)
{
  // set library mode
  TLibraryMode old=fLibraryMode;
  fLibraryMode=mode;
  return old;
}

int AliHLTComponentHandler::LoadLibrary( const char* libraryPath, int bActivateAgents)
{
  // load a library
  int iResult=0;
  if (libraryPath) {
    TString libName=libraryPath;
    int slash=-1;
    while ((slash=libName.Index("/"))>=0) {
      libName=libName.Remove(0, slash+1);
    }
    libName.ReplaceAll(".so","");

    // set the global component handler for static component registration
    AliHLTComponent::SetGlobalComponentHandler(this);

    AliHLTLibHandle hLib;
    AliHLTLibHandle* phSearch=FindLibrary(libraryPath);
    const char* loadtype="";
#ifdef HAVE_DLFCN_H
    // use interface to the dynamic linking loader

    // exeption does not help in Root context, the Root exeption
    // handler always catches the exeption before. Have to find out
    // how exeptions can be used in Root
    /*try*/ {
      hLib.fHandle=dlopen(libraryPath, RTLD_NOW);
      loadtype="dlopen";
    }
    /*
    catch (...) {
      // error message printed further down
      loadtype="dlopen exeption";
    }
    */
#else
    // use ROOT dynamic loader
    // check if the library was already loaded, as Load returns
    // 'failure' if the library was already loaded
    /*try*/ {
    if (phSearch) {
	int* pRootHandle=reinterpret_cast<int*>(phSearch->fHandle);
	(*pRootHandle)++;
	HLTDebug("instance %d of library %s loaded", (*pRootHandle), libraryPath);
	hLib.fHandle=pRootHandle;
    }
    
    if (hLib.fHandle==NULL && gSystem->Load(libraryPath)>=0) {
      int* pRootHandle=new int;
      if (pRootHandle) *pRootHandle=1;
      hLib.fHandle=pRootHandle;
      //HLTDebug("library %s loaded via gSystem", libraryPath);
    }
    loadtype="gSystem";
    }
    /*
    catch (...) {
      // error message printed further down
      loadtype="gSystem exeption";
    }
    */
#endif //HAVE_DLFCN_H
    if (hLib.fHandle!=NULL) {
      // create TString object to store library path and use pointer as handle 
      hLib.fName=new TString(libraryPath);
      hLib.fMode=fLibraryMode;
      fLibraryList.insert(fLibraryList.begin(), hLib);
      if (!phSearch) {
      typedef void (*CompileInfo)(const char*& date, const char*& time);
      CompileInfo fctInfo=(CompileInfo)FindSymbol(libraryPath, "CompileInfo");
      const char* date="";
      const char* time="";
      const char* buildOn="";
      if (fctInfo) {
	buildOn=" build on ";
	(*fctInfo)(date, time);
	if (!date) date="unknown";
	if (!time) time="unknown";
      }
      HLTImportant("using %s plugin%s%s %s (%s%s)", libraryPath, buildOn, date, time, hLib.fMode==kStatic?"persistent, ":"", loadtype);
      }

      // static registration of components when library is loaded
      iResult=RegisterScheduledComponents();

    } else {
      HLTError("can not load library %s (%s)", libraryPath, loadtype);
#ifdef HAVE_DLFCN_H
      HLTError("dlopen error: %s", dlerror());
#endif //HAVE_DLFCN_H
#ifdef __APPLE__
      iResult=-EFTYPE;
#else
      iResult=-ELIBACC;
#endif
    }
    AliHLTComponent::UnsetGlobalComponentHandler();
    
    if (iResult>=0) {
      // alternative dynamic registration by library agents
      // !!! has to be done after UnsetGlobalComponentHandler
      if (bActivateAgents) ActivateAgents(libName.Data());
    }

  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

int AliHLTComponentHandler::UnloadLibrary( const char* libraryPath )
{
  // unload a library
  int iResult=0;
  if (libraryPath) {
    vector<AliHLTLibHandle>::iterator element=fLibraryList.begin();
    while (element!=fLibraryList.end()) {
      TString* pName=reinterpret_cast<TString*>((*element).fName);
      if (pName->CompareTo(libraryPath)==0) {
	UnloadLibrary(*element);
	fLibraryList.erase(element);
	break;
      }
      element++;
  }
  } else {
    iResult=-EINVAL;
  }
  return iResult;
}

int AliHLTComponentHandler::UnloadLibrary(AliHLTComponentHandler::AliHLTLibHandle &handle)
{
  // unload a library
  int iResult=0;
  fgAliLoggingFunc=NULL;
  TString* pName=reinterpret_cast<TString*>(handle.fName);
  if (handle.fMode!=kStatic) {
#ifdef HAVE_DLFCN_H
  // exeption does not help in Root context, the Root exeption
  // handler always catches the exeption before. Have to find out
  // how exeptions can be used in Root

  /*try*/ {
    dlclose(handle.fHandle);
  }
  /*
  catch (...) {
    HLTError("exeption caught during dlclose of library %s", pName!=NULL?pName->Data():"");
  }
  */
#else
  int* pCount=reinterpret_cast<int*>(handle.fHandle);
  if (--(*pCount)==0) {
    if (pName) {
      /** Matthias 26.04.2007
       * I spent about a week to investigate a bug which seems to be in ROOT.
       * Under certain circumstances, TSystem::Unload crashes. The crash occured
       * for the first time, when libAliHLTUtil was loaded from AliHLTSystem right
       * after the ComponentHandler was created. It does not occur when dlopen is
       * used. 
       * It has most likely to do with the garbage collection and automatic
       * cleanup in ROOT. The crash occurs when ROOT is terminated and before
       * an instance of AliHLTSystem was created.
       *   root [0] AliHLTSystem gHLT
       * It does not occur when the instance was created dynamically (but not even
       * deleted)
       *   root [0] AliHLTSystem* gHLT=new AliHLTSystem
       *
       * For that reason, the libraries are not unloaded here, even though there
       * will be memory leaks.
      gSystem->Unload(pName->Data());
       */
    }
    else {
      HLTError("missing library name, can not unload");
    }
    delete pCount;
  }
#endif //HAVE_DLFCN_H
  if (pName) {
    HLTDebug("unload library %s", pName->Data());
  } else {
    HLTWarning("missing name for unloaded library");
  }
  }
  handle.fName=NULL;
  handle.fHandle=NULL;
  if (pName) {
    delete pName;
  }
  pName=NULL;
  return iResult;
}

int AliHLTComponentHandler::UnloadLibraries()
{
  // unload all libraries
  int iResult=0;
  vector<AliHLTLibHandle>::iterator element=fLibraryList.begin();
  while (element!=fLibraryList.end()) {
    UnloadLibrary(*element);
    fLibraryList.erase(element);
    element=fLibraryList.begin();
  }
  return iResult;
}

AliHLTfctVoid AliHLTComponentHandler::FindSymbol(const char* library, const char* symbol)
{
  // find symbol in library
  AliHLTLibHandle* hLib=FindLibrary(library);
  if (hLib==NULL) return NULL;
  void (*pFunc)()=NULL;
#ifdef HAVE_DLFCN_H
  pFunc=(void (*)())dlsym(hLib->fHandle, symbol);
#else
  TString* name=reinterpret_cast<TString*>(hLib->fName);
  pFunc=(void (*)())gSystem->DynFindSymbol(name->Data(), symbol);
#endif
  return pFunc;
}

AliHLTComponentHandler::AliHLTLibHandle* AliHLTComponentHandler::FindLibrary(const char* library)
{
  // find a library by name
  AliHLTLibHandle* hLib=NULL;
  vector<AliHLTLibHandle>::iterator element=fLibraryList.begin();
  while (element!=fLibraryList.end()) {
    TString* name=reinterpret_cast<TString*>((*element).fName);
    if (name->CompareTo(library)==0) {
      hLib=&(*element);
      break;
    }
    element++;
  }
  return hLib;
}

int AliHLTComponentHandler::AddStandardComponents()
{
  // TODO: not quite clear what was the meaning behind this function
  int iResult=0;
  AliHLTComponent::SetGlobalComponentHandler(this);
  AliHLTComponent::UnsetGlobalComponentHandler();
  iResult=RegisterScheduledComponents();
  return iResult;
}

int AliHLTComponentHandler::RegisterScheduledComponents()
{
  // register all scheduled components
  int iResult=0;
  AliHLTComponentPList::iterator element=fScheduleList.begin();
  int iLocalResult=0;
  while (element!=fScheduleList.end()) {
    iLocalResult=RegisterComponent(*element);
    if (iResult==0) iResult=iLocalResult;
    fScheduleList.erase(element);
    element=fScheduleList.begin();
  }
  return iResult;
}

int AliHLTComponentHandler::ActivateAgents(const char* library, const char* blackList)
{
  // activate module agents
  vector<AliHLTModuleAgent*> agents;
  for (AliHLTModuleAgent* pAgent=AliHLTModuleAgent::GetFirstAgent(); 
       pAgent!=NULL;
       pAgent=AliHLTModuleAgent::GetNextAgent()) {

    // check if we found the agent for the specified library
    if (library) {
      TString check="libAliHLT"; check+=pAgent->GetModuleId();
      if (check.CompareTo(library)==0) {
	agents.clear();
	agents.push_back(pAgent);
	break;
      }
    }

    // check if the current agent is in the black list
    if (blackList) {
      const char* found=strstr(blackList, pAgent->GetModuleId());
      if (found) {
	found+=strlen(pAgent->GetModuleId());
	// skip this agent as it is in the blacklist
	if (*found==0 or *found==' ') continue;
      }
    }
    agents.push_back(pAgent);
  }

  for (vector<AliHLTModuleAgent*>::iterator element=agents.begin();
       element!=agents.end(); element++) {
    (*element)->ActivateComponentHandler(this);
  }

  return agents.size();
}

int AliHLTComponentHandler::DeactivateAgents() const {
  int ret=0;
  for (AliHLTModuleAgent* pAgent=AliHLTModuleAgent::GetFirstAgent();
       pAgent!=NULL; pAgent=AliHLTModuleAgent::GetNextAgent()) {
    if(pAgent->GetComponentHandler()==this){
      pAgent->ActivateComponentHandler(NULL);
      ++ret;
    }
  }
  return ret;
}

int AliHLTComponentHandler::DeleteOwnedComponents()
{
  // delete all component samples owned by the handler
  int iResult=0;
  AliHLTComponentPList::iterator element=fOwnedComponents.begin();
  while (element!=fOwnedComponents.end()) {
    //DeregisterComponent((*element)->GetComponentID());
    // exeption does not help in Root context, the Root exeption
    // handler always catches the exeption before. Have to find out
    // how exeptions can be used in Root
    /*try*/ {
      delete *element;
    }
    /*
    catch (...) {
      HLTError("delete managed sample %p", *element);
    }
    */
    fOwnedComponents.erase(element);
    element=fOwnedComponents.begin();
  }
  return iResult;
}

int AliHLTComponentHandler::SetRunDescription(const AliHLTRunDesc* desc, const char* runType)
{
  // set global run description
  if (!desc) return -EINVAL;
  if (desc->fStructSize!=sizeof(AliHLTRunDesc)) {
    HLTError("invalid size of RunDesc struct (%ul)", desc->fStructSize);
    return -EINVAL;
  }

  memcpy(&fRunDesc, desc, sizeof(AliHLTRunDesc));
  if (runType) {
    if (fRunType) delete [] fRunType;
    fRunType=new char[sizeof(runType)+1];
    if (fRunType) {
      strcpy(fRunType, runType);
    }
  }
  return 0;
}
 AliHLTComponentHandler.cxx:1
 AliHLTComponentHandler.cxx:2
 AliHLTComponentHandler.cxx:3
 AliHLTComponentHandler.cxx:4
 AliHLTComponentHandler.cxx:5
 AliHLTComponentHandler.cxx:6
 AliHLTComponentHandler.cxx:7
 AliHLTComponentHandler.cxx:8
 AliHLTComponentHandler.cxx:9
 AliHLTComponentHandler.cxx:10
 AliHLTComponentHandler.cxx:11
 AliHLTComponentHandler.cxx:12
 AliHLTComponentHandler.cxx:13
 AliHLTComponentHandler.cxx:14
 AliHLTComponentHandler.cxx:15
 AliHLTComponentHandler.cxx:16
 AliHLTComponentHandler.cxx:17
 AliHLTComponentHandler.cxx:18
 AliHLTComponentHandler.cxx:19
 AliHLTComponentHandler.cxx:20
 AliHLTComponentHandler.cxx:21
 AliHLTComponentHandler.cxx:22
 AliHLTComponentHandler.cxx:23
 AliHLTComponentHandler.cxx:24
 AliHLTComponentHandler.cxx:25
 AliHLTComponentHandler.cxx:26
 AliHLTComponentHandler.cxx:27
 AliHLTComponentHandler.cxx:28
 AliHLTComponentHandler.cxx:29
 AliHLTComponentHandler.cxx:30
 AliHLTComponentHandler.cxx:31
 AliHLTComponentHandler.cxx:32
 AliHLTComponentHandler.cxx:33
 AliHLTComponentHandler.cxx:34
 AliHLTComponentHandler.cxx:35
 AliHLTComponentHandler.cxx:36
 AliHLTComponentHandler.cxx:37
 AliHLTComponentHandler.cxx:38
 AliHLTComponentHandler.cxx:39
 AliHLTComponentHandler.cxx:40
 AliHLTComponentHandler.cxx:41
 AliHLTComponentHandler.cxx:42
 AliHLTComponentHandler.cxx:43
 AliHLTComponentHandler.cxx:44
 AliHLTComponentHandler.cxx:45
 AliHLTComponentHandler.cxx:46
 AliHLTComponentHandler.cxx:47
 AliHLTComponentHandler.cxx:48
 AliHLTComponentHandler.cxx:49
 AliHLTComponentHandler.cxx:50
 AliHLTComponentHandler.cxx:51
 AliHLTComponentHandler.cxx:52
 AliHLTComponentHandler.cxx:53
 AliHLTComponentHandler.cxx:54
 AliHLTComponentHandler.cxx:55
 AliHLTComponentHandler.cxx:56
 AliHLTComponentHandler.cxx:57
 AliHLTComponentHandler.cxx:58
 AliHLTComponentHandler.cxx:59
 AliHLTComponentHandler.cxx:60
 AliHLTComponentHandler.cxx:61
 AliHLTComponentHandler.cxx:62
 AliHLTComponentHandler.cxx:63
 AliHLTComponentHandler.cxx:64
 AliHLTComponentHandler.cxx:65
 AliHLTComponentHandler.cxx:66
 AliHLTComponentHandler.cxx:67
 AliHLTComponentHandler.cxx:68
 AliHLTComponentHandler.cxx:69
 AliHLTComponentHandler.cxx:70
 AliHLTComponentHandler.cxx:71
 AliHLTComponentHandler.cxx:72
 AliHLTComponentHandler.cxx:73
 AliHLTComponentHandler.cxx:74
 AliHLTComponentHandler.cxx:75
 AliHLTComponentHandler.cxx:76
 AliHLTComponentHandler.cxx:77
 AliHLTComponentHandler.cxx:78
 AliHLTComponentHandler.cxx:79
 AliHLTComponentHandler.cxx:80
 AliHLTComponentHandler.cxx:81
 AliHLTComponentHandler.cxx:82
 AliHLTComponentHandler.cxx:83
 AliHLTComponentHandler.cxx:84
 AliHLTComponentHandler.cxx:85
 AliHLTComponentHandler.cxx:86
 AliHLTComponentHandler.cxx:87
 AliHLTComponentHandler.cxx:88
 AliHLTComponentHandler.cxx:89
 AliHLTComponentHandler.cxx:90
 AliHLTComponentHandler.cxx:91
 AliHLTComponentHandler.cxx:92
 AliHLTComponentHandler.cxx:93
 AliHLTComponentHandler.cxx:94
 AliHLTComponentHandler.cxx:95
 AliHLTComponentHandler.cxx:96
 AliHLTComponentHandler.cxx:97
 AliHLTComponentHandler.cxx:98
 AliHLTComponentHandler.cxx:99
 AliHLTComponentHandler.cxx:100
 AliHLTComponentHandler.cxx:101
 AliHLTComponentHandler.cxx:102
 AliHLTComponentHandler.cxx:103
 AliHLTComponentHandler.cxx:104
 AliHLTComponentHandler.cxx:105
 AliHLTComponentHandler.cxx:106
 AliHLTComponentHandler.cxx:107
 AliHLTComponentHandler.cxx:108
 AliHLTComponentHandler.cxx:109
 AliHLTComponentHandler.cxx:110
 AliHLTComponentHandler.cxx:111
 AliHLTComponentHandler.cxx:112
 AliHLTComponentHandler.cxx:113
 AliHLTComponentHandler.cxx:114
 AliHLTComponentHandler.cxx:115
 AliHLTComponentHandler.cxx:116
 AliHLTComponentHandler.cxx:117
 AliHLTComponentHandler.cxx:118
 AliHLTComponentHandler.cxx:119
 AliHLTComponentHandler.cxx:120
 AliHLTComponentHandler.cxx:121
 AliHLTComponentHandler.cxx:122
 AliHLTComponentHandler.cxx:123
 AliHLTComponentHandler.cxx:124
 AliHLTComponentHandler.cxx:125
 AliHLTComponentHandler.cxx:126
 AliHLTComponentHandler.cxx:127
 AliHLTComponentHandler.cxx:128
 AliHLTComponentHandler.cxx:129
 AliHLTComponentHandler.cxx:130
 AliHLTComponentHandler.cxx:131
 AliHLTComponentHandler.cxx:132
 AliHLTComponentHandler.cxx:133
 AliHLTComponentHandler.cxx:134
 AliHLTComponentHandler.cxx:135
 AliHLTComponentHandler.cxx:136
 AliHLTComponentHandler.cxx:137
 AliHLTComponentHandler.cxx:138
 AliHLTComponentHandler.cxx:139
 AliHLTComponentHandler.cxx:140
 AliHLTComponentHandler.cxx:141
 AliHLTComponentHandler.cxx:142
 AliHLTComponentHandler.cxx:143
 AliHLTComponentHandler.cxx:144
 AliHLTComponentHandler.cxx:145
 AliHLTComponentHandler.cxx:146
 AliHLTComponentHandler.cxx:147
 AliHLTComponentHandler.cxx:148
 AliHLTComponentHandler.cxx:149
 AliHLTComponentHandler.cxx:150
 AliHLTComponentHandler.cxx:151
 AliHLTComponentHandler.cxx:152
 AliHLTComponentHandler.cxx:153
 AliHLTComponentHandler.cxx:154
 AliHLTComponentHandler.cxx:155
 AliHLTComponentHandler.cxx:156
 AliHLTComponentHandler.cxx:157
 AliHLTComponentHandler.cxx:158
 AliHLTComponentHandler.cxx:159
 AliHLTComponentHandler.cxx:160
 AliHLTComponentHandler.cxx:161
 AliHLTComponentHandler.cxx:162
 AliHLTComponentHandler.cxx:163
 AliHLTComponentHandler.cxx:164
 AliHLTComponentHandler.cxx:165
 AliHLTComponentHandler.cxx:166
 AliHLTComponentHandler.cxx:167
 AliHLTComponentHandler.cxx:168
 AliHLTComponentHandler.cxx:169
 AliHLTComponentHandler.cxx:170
 AliHLTComponentHandler.cxx:171
 AliHLTComponentHandler.cxx:172
 AliHLTComponentHandler.cxx:173
 AliHLTComponentHandler.cxx:174
 AliHLTComponentHandler.cxx:175
 AliHLTComponentHandler.cxx:176
 AliHLTComponentHandler.cxx:177
 AliHLTComponentHandler.cxx:178
 AliHLTComponentHandler.cxx:179
 AliHLTComponentHandler.cxx:180
 AliHLTComponentHandler.cxx:181
 AliHLTComponentHandler.cxx:182
 AliHLTComponentHandler.cxx:183
 AliHLTComponentHandler.cxx:184
 AliHLTComponentHandler.cxx:185
 AliHLTComponentHandler.cxx:186
 AliHLTComponentHandler.cxx:187
 AliHLTComponentHandler.cxx:188
 AliHLTComponentHandler.cxx:189
 AliHLTComponentHandler.cxx:190
 AliHLTComponentHandler.cxx:191
 AliHLTComponentHandler.cxx:192
 AliHLTComponentHandler.cxx:193
 AliHLTComponentHandler.cxx:194
 AliHLTComponentHandler.cxx:195
 AliHLTComponentHandler.cxx:196
 AliHLTComponentHandler.cxx:197
 AliHLTComponentHandler.cxx:198
 AliHLTComponentHandler.cxx:199
 AliHLTComponentHandler.cxx:200
 AliHLTComponentHandler.cxx:201
 AliHLTComponentHandler.cxx:202
 AliHLTComponentHandler.cxx:203
 AliHLTComponentHandler.cxx:204
 AliHLTComponentHandler.cxx:205
 AliHLTComponentHandler.cxx:206
 AliHLTComponentHandler.cxx:207
 AliHLTComponentHandler.cxx:208
 AliHLTComponentHandler.cxx:209
 AliHLTComponentHandler.cxx:210
 AliHLTComponentHandler.cxx:211
 AliHLTComponentHandler.cxx:212
 AliHLTComponentHandler.cxx:213
 AliHLTComponentHandler.cxx:214
 AliHLTComponentHandler.cxx:215
 AliHLTComponentHandler.cxx:216
 AliHLTComponentHandler.cxx:217
 AliHLTComponentHandler.cxx:218
 AliHLTComponentHandler.cxx:219
 AliHLTComponentHandler.cxx:220
 AliHLTComponentHandler.cxx:221
 AliHLTComponentHandler.cxx:222
 AliHLTComponentHandler.cxx:223
 AliHLTComponentHandler.cxx:224
 AliHLTComponentHandler.cxx:225
 AliHLTComponentHandler.cxx:226
 AliHLTComponentHandler.cxx:227
 AliHLTComponentHandler.cxx:228
 AliHLTComponentHandler.cxx:229
 AliHLTComponentHandler.cxx:230
 AliHLTComponentHandler.cxx:231
 AliHLTComponentHandler.cxx:232
 AliHLTComponentHandler.cxx:233
 AliHLTComponentHandler.cxx:234
 AliHLTComponentHandler.cxx:235
 AliHLTComponentHandler.cxx:236
 AliHLTComponentHandler.cxx:237
 AliHLTComponentHandler.cxx:238
 AliHLTComponentHandler.cxx:239
 AliHLTComponentHandler.cxx:240
 AliHLTComponentHandler.cxx:241
 AliHLTComponentHandler.cxx:242
 AliHLTComponentHandler.cxx:243
 AliHLTComponentHandler.cxx:244
 AliHLTComponentHandler.cxx:245
 AliHLTComponentHandler.cxx:246
 AliHLTComponentHandler.cxx:247
 AliHLTComponentHandler.cxx:248
 AliHLTComponentHandler.cxx:249
 AliHLTComponentHandler.cxx:250
 AliHLTComponentHandler.cxx:251
 AliHLTComponentHandler.cxx:252
 AliHLTComponentHandler.cxx:253
 AliHLTComponentHandler.cxx:254
 AliHLTComponentHandler.cxx:255
 AliHLTComponentHandler.cxx:256
 AliHLTComponentHandler.cxx:257
 AliHLTComponentHandler.cxx:258
 AliHLTComponentHandler.cxx:259
 AliHLTComponentHandler.cxx:260
 AliHLTComponentHandler.cxx:261
 AliHLTComponentHandler.cxx:262
 AliHLTComponentHandler.cxx:263
 AliHLTComponentHandler.cxx:264
 AliHLTComponentHandler.cxx:265
 AliHLTComponentHandler.cxx:266
 AliHLTComponentHandler.cxx:267
 AliHLTComponentHandler.cxx:268
 AliHLTComponentHandler.cxx:269
 AliHLTComponentHandler.cxx:270
 AliHLTComponentHandler.cxx:271
 AliHLTComponentHandler.cxx:272
 AliHLTComponentHandler.cxx:273
 AliHLTComponentHandler.cxx:274
 AliHLTComponentHandler.cxx:275
 AliHLTComponentHandler.cxx:276
 AliHLTComponentHandler.cxx:277
 AliHLTComponentHandler.cxx:278
 AliHLTComponentHandler.cxx:279
 AliHLTComponentHandler.cxx:280
 AliHLTComponentHandler.cxx:281
 AliHLTComponentHandler.cxx:282
 AliHLTComponentHandler.cxx:283
 AliHLTComponentHandler.cxx:284
 AliHLTComponentHandler.cxx:285
 AliHLTComponentHandler.cxx:286
 AliHLTComponentHandler.cxx:287
 AliHLTComponentHandler.cxx:288
 AliHLTComponentHandler.cxx:289
 AliHLTComponentHandler.cxx:290
 AliHLTComponentHandler.cxx:291
 AliHLTComponentHandler.cxx:292
 AliHLTComponentHandler.cxx:293
 AliHLTComponentHandler.cxx:294
 AliHLTComponentHandler.cxx:295
 AliHLTComponentHandler.cxx:296
 AliHLTComponentHandler.cxx:297
 AliHLTComponentHandler.cxx:298
 AliHLTComponentHandler.cxx:299
 AliHLTComponentHandler.cxx:300
 AliHLTComponentHandler.cxx:301
 AliHLTComponentHandler.cxx:302
 AliHLTComponentHandler.cxx:303
 AliHLTComponentHandler.cxx:304
 AliHLTComponentHandler.cxx:305
 AliHLTComponentHandler.cxx:306
 AliHLTComponentHandler.cxx:307
 AliHLTComponentHandler.cxx:308
 AliHLTComponentHandler.cxx:309
 AliHLTComponentHandler.cxx:310
 AliHLTComponentHandler.cxx:311
 AliHLTComponentHandler.cxx:312
 AliHLTComponentHandler.cxx:313
 AliHLTComponentHandler.cxx:314
 AliHLTComponentHandler.cxx:315
 AliHLTComponentHandler.cxx:316
 AliHLTComponentHandler.cxx:317
 AliHLTComponentHandler.cxx:318
 AliHLTComponentHandler.cxx:319
 AliHLTComponentHandler.cxx:320
 AliHLTComponentHandler.cxx:321
 AliHLTComponentHandler.cxx:322
 AliHLTComponentHandler.cxx:323
 AliHLTComponentHandler.cxx:324
 AliHLTComponentHandler.cxx:325
 AliHLTComponentHandler.cxx:326
 AliHLTComponentHandler.cxx:327
 AliHLTComponentHandler.cxx:328
 AliHLTComponentHandler.cxx:329
 AliHLTComponentHandler.cxx:330
 AliHLTComponentHandler.cxx:331
 AliHLTComponentHandler.cxx:332
 AliHLTComponentHandler.cxx:333
 AliHLTComponentHandler.cxx:334
 AliHLTComponentHandler.cxx:335
 AliHLTComponentHandler.cxx:336
 AliHLTComponentHandler.cxx:337
 AliHLTComponentHandler.cxx:338
 AliHLTComponentHandler.cxx:339
 AliHLTComponentHandler.cxx:340
 AliHLTComponentHandler.cxx:341
 AliHLTComponentHandler.cxx:342
 AliHLTComponentHandler.cxx:343
 AliHLTComponentHandler.cxx:344
 AliHLTComponentHandler.cxx:345
 AliHLTComponentHandler.cxx:346
 AliHLTComponentHandler.cxx:347
 AliHLTComponentHandler.cxx:348
 AliHLTComponentHandler.cxx:349
 AliHLTComponentHandler.cxx:350
 AliHLTComponentHandler.cxx:351
 AliHLTComponentHandler.cxx:352
 AliHLTComponentHandler.cxx:353
 AliHLTComponentHandler.cxx:354
 AliHLTComponentHandler.cxx:355
 AliHLTComponentHandler.cxx:356
 AliHLTComponentHandler.cxx:357
 AliHLTComponentHandler.cxx:358
 AliHLTComponentHandler.cxx:359
 AliHLTComponentHandler.cxx:360
 AliHLTComponentHandler.cxx:361
 AliHLTComponentHandler.cxx:362
 AliHLTComponentHandler.cxx:363
 AliHLTComponentHandler.cxx:364
 AliHLTComponentHandler.cxx:365
 AliHLTComponentHandler.cxx:366
 AliHLTComponentHandler.cxx:367
 AliHLTComponentHandler.cxx:368
 AliHLTComponentHandler.cxx:369
 AliHLTComponentHandler.cxx:370
 AliHLTComponentHandler.cxx:371
 AliHLTComponentHandler.cxx:372
 AliHLTComponentHandler.cxx:373
 AliHLTComponentHandler.cxx:374
 AliHLTComponentHandler.cxx:375
 AliHLTComponentHandler.cxx:376
 AliHLTComponentHandler.cxx:377
 AliHLTComponentHandler.cxx:378
 AliHLTComponentHandler.cxx:379
 AliHLTComponentHandler.cxx:380
 AliHLTComponentHandler.cxx:381
 AliHLTComponentHandler.cxx:382
 AliHLTComponentHandler.cxx:383
 AliHLTComponentHandler.cxx:384
 AliHLTComponentHandler.cxx:385
 AliHLTComponentHandler.cxx:386
 AliHLTComponentHandler.cxx:387
 AliHLTComponentHandler.cxx:388
 AliHLTComponentHandler.cxx:389
 AliHLTComponentHandler.cxx:390
 AliHLTComponentHandler.cxx:391
 AliHLTComponentHandler.cxx:392
 AliHLTComponentHandler.cxx:393
 AliHLTComponentHandler.cxx:394
 AliHLTComponentHandler.cxx:395
 AliHLTComponentHandler.cxx:396
 AliHLTComponentHandler.cxx:397
 AliHLTComponentHandler.cxx:398
 AliHLTComponentHandler.cxx:399
 AliHLTComponentHandler.cxx:400
 AliHLTComponentHandler.cxx:401
 AliHLTComponentHandler.cxx:402
 AliHLTComponentHandler.cxx:403
 AliHLTComponentHandler.cxx:404
 AliHLTComponentHandler.cxx:405
 AliHLTComponentHandler.cxx:406
 AliHLTComponentHandler.cxx:407
 AliHLTComponentHandler.cxx:408
 AliHLTComponentHandler.cxx:409
 AliHLTComponentHandler.cxx:410
 AliHLTComponentHandler.cxx:411
 AliHLTComponentHandler.cxx:412
 AliHLTComponentHandler.cxx:413
 AliHLTComponentHandler.cxx:414
 AliHLTComponentHandler.cxx:415
 AliHLTComponentHandler.cxx:416
 AliHLTComponentHandler.cxx:417
 AliHLTComponentHandler.cxx:418
 AliHLTComponentHandler.cxx:419
 AliHLTComponentHandler.cxx:420
 AliHLTComponentHandler.cxx:421
 AliHLTComponentHandler.cxx:422
 AliHLTComponentHandler.cxx:423
 AliHLTComponentHandler.cxx:424
 AliHLTComponentHandler.cxx:425
 AliHLTComponentHandler.cxx:426
 AliHLTComponentHandler.cxx:427
 AliHLTComponentHandler.cxx:428
 AliHLTComponentHandler.cxx:429
 AliHLTComponentHandler.cxx:430
 AliHLTComponentHandler.cxx:431
 AliHLTComponentHandler.cxx:432
 AliHLTComponentHandler.cxx:433
 AliHLTComponentHandler.cxx:434
 AliHLTComponentHandler.cxx:435
 AliHLTComponentHandler.cxx:436
 AliHLTComponentHandler.cxx:437
 AliHLTComponentHandler.cxx:438
 AliHLTComponentHandler.cxx:439
 AliHLTComponentHandler.cxx:440
 AliHLTComponentHandler.cxx:441
 AliHLTComponentHandler.cxx:442
 AliHLTComponentHandler.cxx:443
 AliHLTComponentHandler.cxx:444
 AliHLTComponentHandler.cxx:445
 AliHLTComponentHandler.cxx:446
 AliHLTComponentHandler.cxx:447
 AliHLTComponentHandler.cxx:448
 AliHLTComponentHandler.cxx:449
 AliHLTComponentHandler.cxx:450
 AliHLTComponentHandler.cxx:451
 AliHLTComponentHandler.cxx:452
 AliHLTComponentHandler.cxx:453
 AliHLTComponentHandler.cxx:454
 AliHLTComponentHandler.cxx:455
 AliHLTComponentHandler.cxx:456
 AliHLTComponentHandler.cxx:457
 AliHLTComponentHandler.cxx:458
 AliHLTComponentHandler.cxx:459
 AliHLTComponentHandler.cxx:460
 AliHLTComponentHandler.cxx:461
 AliHLTComponentHandler.cxx:462
 AliHLTComponentHandler.cxx:463
 AliHLTComponentHandler.cxx:464
 AliHLTComponentHandler.cxx:465
 AliHLTComponentHandler.cxx:466
 AliHLTComponentHandler.cxx:467
 AliHLTComponentHandler.cxx:468
 AliHLTComponentHandler.cxx:469
 AliHLTComponentHandler.cxx:470
 AliHLTComponentHandler.cxx:471
 AliHLTComponentHandler.cxx:472
 AliHLTComponentHandler.cxx:473
 AliHLTComponentHandler.cxx:474
 AliHLTComponentHandler.cxx:475
 AliHLTComponentHandler.cxx:476
 AliHLTComponentHandler.cxx:477
 AliHLTComponentHandler.cxx:478
 AliHLTComponentHandler.cxx:479
 AliHLTComponentHandler.cxx:480
 AliHLTComponentHandler.cxx:481
 AliHLTComponentHandler.cxx:482
 AliHLTComponentHandler.cxx:483
 AliHLTComponentHandler.cxx:484
 AliHLTComponentHandler.cxx:485
 AliHLTComponentHandler.cxx:486
 AliHLTComponentHandler.cxx:487
 AliHLTComponentHandler.cxx:488
 AliHLTComponentHandler.cxx:489
 AliHLTComponentHandler.cxx:490
 AliHLTComponentHandler.cxx:491
 AliHLTComponentHandler.cxx:492
 AliHLTComponentHandler.cxx:493
 AliHLTComponentHandler.cxx:494
 AliHLTComponentHandler.cxx:495
 AliHLTComponentHandler.cxx:496
 AliHLTComponentHandler.cxx:497
 AliHLTComponentHandler.cxx:498
 AliHLTComponentHandler.cxx:499
 AliHLTComponentHandler.cxx:500
 AliHLTComponentHandler.cxx:501
 AliHLTComponentHandler.cxx:502
 AliHLTComponentHandler.cxx:503
 AliHLTComponentHandler.cxx:504
 AliHLTComponentHandler.cxx:505
 AliHLTComponentHandler.cxx:506
 AliHLTComponentHandler.cxx:507
 AliHLTComponentHandler.cxx:508
 AliHLTComponentHandler.cxx:509
 AliHLTComponentHandler.cxx:510
 AliHLTComponentHandler.cxx:511
 AliHLTComponentHandler.cxx:512
 AliHLTComponentHandler.cxx:513
 AliHLTComponentHandler.cxx:514
 AliHLTComponentHandler.cxx:515
 AliHLTComponentHandler.cxx:516
 AliHLTComponentHandler.cxx:517
 AliHLTComponentHandler.cxx:518
 AliHLTComponentHandler.cxx:519
 AliHLTComponentHandler.cxx:520
 AliHLTComponentHandler.cxx:521
 AliHLTComponentHandler.cxx:522
 AliHLTComponentHandler.cxx:523
 AliHLTComponentHandler.cxx:524
 AliHLTComponentHandler.cxx:525
 AliHLTComponentHandler.cxx:526
 AliHLTComponentHandler.cxx:527
 AliHLTComponentHandler.cxx:528
 AliHLTComponentHandler.cxx:529
 AliHLTComponentHandler.cxx:530
 AliHLTComponentHandler.cxx:531
 AliHLTComponentHandler.cxx:532
 AliHLTComponentHandler.cxx:533
 AliHLTComponentHandler.cxx:534
 AliHLTComponentHandler.cxx:535
 AliHLTComponentHandler.cxx:536
 AliHLTComponentHandler.cxx:537
 AliHLTComponentHandler.cxx:538
 AliHLTComponentHandler.cxx:539
 AliHLTComponentHandler.cxx:540
 AliHLTComponentHandler.cxx:541
 AliHLTComponentHandler.cxx:542
 AliHLTComponentHandler.cxx:543
 AliHLTComponentHandler.cxx:544
 AliHLTComponentHandler.cxx:545
 AliHLTComponentHandler.cxx:546
 AliHLTComponentHandler.cxx:547
 AliHLTComponentHandler.cxx:548
 AliHLTComponentHandler.cxx:549
 AliHLTComponentHandler.cxx:550
 AliHLTComponentHandler.cxx:551
 AliHLTComponentHandler.cxx:552
 AliHLTComponentHandler.cxx:553
 AliHLTComponentHandler.cxx:554
 AliHLTComponentHandler.cxx:555
 AliHLTComponentHandler.cxx:556
 AliHLTComponentHandler.cxx:557
 AliHLTComponentHandler.cxx:558
 AliHLTComponentHandler.cxx:559
 AliHLTComponentHandler.cxx:560
 AliHLTComponentHandler.cxx:561
 AliHLTComponentHandler.cxx:562
 AliHLTComponentHandler.cxx:563
 AliHLTComponentHandler.cxx:564
 AliHLTComponentHandler.cxx:565
 AliHLTComponentHandler.cxx:566
 AliHLTComponentHandler.cxx:567
 AliHLTComponentHandler.cxx:568
 AliHLTComponentHandler.cxx:569
 AliHLTComponentHandler.cxx:570
 AliHLTComponentHandler.cxx:571
 AliHLTComponentHandler.cxx:572
 AliHLTComponentHandler.cxx:573
 AliHLTComponentHandler.cxx:574
 AliHLTComponentHandler.cxx:575
 AliHLTComponentHandler.cxx:576
 AliHLTComponentHandler.cxx:577
 AliHLTComponentHandler.cxx:578
 AliHLTComponentHandler.cxx:579
 AliHLTComponentHandler.cxx:580
 AliHLTComponentHandler.cxx:581
 AliHLTComponentHandler.cxx:582
 AliHLTComponentHandler.cxx:583
 AliHLTComponentHandler.cxx:584
 AliHLTComponentHandler.cxx:585
 AliHLTComponentHandler.cxx:586
 AliHLTComponentHandler.cxx:587
 AliHLTComponentHandler.cxx:588
 AliHLTComponentHandler.cxx:589
 AliHLTComponentHandler.cxx:590
 AliHLTComponentHandler.cxx:591
 AliHLTComponentHandler.cxx:592
 AliHLTComponentHandler.cxx:593
 AliHLTComponentHandler.cxx:594
 AliHLTComponentHandler.cxx:595
 AliHLTComponentHandler.cxx:596
 AliHLTComponentHandler.cxx:597
 AliHLTComponentHandler.cxx:598
 AliHLTComponentHandler.cxx:599
 AliHLTComponentHandler.cxx:600
 AliHLTComponentHandler.cxx:601
 AliHLTComponentHandler.cxx:602
 AliHLTComponentHandler.cxx:603
 AliHLTComponentHandler.cxx:604
 AliHLTComponentHandler.cxx:605
 AliHLTComponentHandler.cxx:606
 AliHLTComponentHandler.cxx:607
 AliHLTComponentHandler.cxx:608
 AliHLTComponentHandler.cxx:609
 AliHLTComponentHandler.cxx:610
 AliHLTComponentHandler.cxx:611
 AliHLTComponentHandler.cxx:612
 AliHLTComponentHandler.cxx:613
 AliHLTComponentHandler.cxx:614
 AliHLTComponentHandler.cxx:615
 AliHLTComponentHandler.cxx:616
 AliHLTComponentHandler.cxx:617
 AliHLTComponentHandler.cxx:618
 AliHLTComponentHandler.cxx:619
 AliHLTComponentHandler.cxx:620
 AliHLTComponentHandler.cxx:621
 AliHLTComponentHandler.cxx:622
 AliHLTComponentHandler.cxx:623
 AliHLTComponentHandler.cxx:624
 AliHLTComponentHandler.cxx:625
 AliHLTComponentHandler.cxx:626
 AliHLTComponentHandler.cxx:627
 AliHLTComponentHandler.cxx:628
 AliHLTComponentHandler.cxx:629
 AliHLTComponentHandler.cxx:630
 AliHLTComponentHandler.cxx:631
 AliHLTComponentHandler.cxx:632
 AliHLTComponentHandler.cxx:633
 AliHLTComponentHandler.cxx:634
 AliHLTComponentHandler.cxx:635
 AliHLTComponentHandler.cxx:636
 AliHLTComponentHandler.cxx:637
 AliHLTComponentHandler.cxx:638
 AliHLTComponentHandler.cxx:639
 AliHLTComponentHandler.cxx:640
 AliHLTComponentHandler.cxx:641
 AliHLTComponentHandler.cxx:642
 AliHLTComponentHandler.cxx:643
 AliHLTComponentHandler.cxx:644
 AliHLTComponentHandler.cxx:645
 AliHLTComponentHandler.cxx:646
 AliHLTComponentHandler.cxx:647
 AliHLTComponentHandler.cxx:648
 AliHLTComponentHandler.cxx:649
 AliHLTComponentHandler.cxx:650
 AliHLTComponentHandler.cxx:651
 AliHLTComponentHandler.cxx:652
 AliHLTComponentHandler.cxx:653
 AliHLTComponentHandler.cxx:654
 AliHLTComponentHandler.cxx:655
 AliHLTComponentHandler.cxx:656
 AliHLTComponentHandler.cxx:657
 AliHLTComponentHandler.cxx:658
 AliHLTComponentHandler.cxx:659
 AliHLTComponentHandler.cxx:660
 AliHLTComponentHandler.cxx:661
 AliHLTComponentHandler.cxx:662
 AliHLTComponentHandler.cxx:663
 AliHLTComponentHandler.cxx:664
 AliHLTComponentHandler.cxx:665
 AliHLTComponentHandler.cxx:666
 AliHLTComponentHandler.cxx:667
 AliHLTComponentHandler.cxx:668
 AliHLTComponentHandler.cxx:669
 AliHLTComponentHandler.cxx:670
 AliHLTComponentHandler.cxx:671
 AliHLTComponentHandler.cxx:672
 AliHLTComponentHandler.cxx:673
 AliHLTComponentHandler.cxx:674
 AliHLTComponentHandler.cxx:675
 AliHLTComponentHandler.cxx:676
 AliHLTComponentHandler.cxx:677
 AliHLTComponentHandler.cxx:678
 AliHLTComponentHandler.cxx:679
 AliHLTComponentHandler.cxx:680
 AliHLTComponentHandler.cxx:681
 AliHLTComponentHandler.cxx:682
 AliHLTComponentHandler.cxx:683
 AliHLTComponentHandler.cxx:684
 AliHLTComponentHandler.cxx:685
 AliHLTComponentHandler.cxx:686
 AliHLTComponentHandler.cxx:687
 AliHLTComponentHandler.cxx:688
 AliHLTComponentHandler.cxx:689
 AliHLTComponentHandler.cxx:690
 AliHLTComponentHandler.cxx:691
 AliHLTComponentHandler.cxx:692
 AliHLTComponentHandler.cxx:693
 AliHLTComponentHandler.cxx:694
 AliHLTComponentHandler.cxx:695
 AliHLTComponentHandler.cxx:696
 AliHLTComponentHandler.cxx:697