From 5e3820e26ac4a93873ac387cd040d9ff472b9c76 Mon Sep 17 00:00:00 2001 From: richterm Date: Fri, 15 Feb 2008 08:46:20 +0000 Subject: [PATCH] added libAliHLTRCU library to host RCU specific code independent of detector modules --- HLT/Makefile.am | 5 +++ HLT/RCU/AliHLTRCUAgent.cxx | 78 ++++++++++++++++++++++++++++++++++++++ HLT/RCU/AliHLTRCUAgent.h | 76 +++++++++++++++++++++++++++++++++++++ HLT/RCU/Makefile.am | 63 ++++++++++++++++++++++++++++++ HLT/configure.ac | 47 +++++++++++++++++++++++ HLT/libAliHLTRCU.pkg | 25 ++++++++++++ 6 files changed, 294 insertions(+) create mode 100644 HLT/RCU/AliHLTRCUAgent.cxx create mode 100644 HLT/RCU/AliHLTRCUAgent.h create mode 100644 HLT/RCU/Makefile.am create mode 100644 HLT/libAliHLTRCU.pkg diff --git a/HLT/Makefile.am b/HLT/Makefile.am index 62f06df82e6..9232e6c749d 100644 --- a/HLT/Makefile.am +++ b/HLT/Makefile.am @@ -10,6 +10,10 @@ if EN_HLT_TPC TPC_DIR=TPCLib endif +if EN_HLT_RCU +RCU_DIR=RCU +endif + if EN_HLT_PHOS PHOS_DIR=PHOS endif @@ -36,6 +40,7 @@ SUBDIRS = BASE \ shuttle \ $(SAMPLE_DIR) \ $(TPC_DIR) \ + $(RCU_DIR) \ $(PHOS_DIR) \ $(TRD_DIR) \ $(MUON_DIR) \ diff --git a/HLT/RCU/AliHLTRCUAgent.cxx b/HLT/RCU/AliHLTRCUAgent.cxx new file mode 100644 index 00000000000..83f60d164fa --- /dev/null +++ b/HLT/RCU/AliHLTRCUAgent.cxx @@ -0,0 +1,78 @@ +// $Id$ + +//************************************************************************** +//* This file is property of and copyright by the ALICE HLT Project * +//* ALICE Experiment at CERN, All rights reserved. * +//* * +//* Primary Authors: Matthias Richter * +//* 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 AliHLTRCUAgent.cxx + @author Matthias Richter + @date + @brief Agent of the libAliHLTRCU library +*/ + +#include +#include "AliHLTRCUAgent.h" +#include "AliHLTConfiguration.h" + +// header files of library components + +/** global instance for agent registration */ +AliHLTRCUAgent gAliHLTRCUAgent; + +/** ROOT macro for the implementation of ROOT specific class methods */ +ClassImp(AliHLTRCUAgent) + +AliHLTRCUAgent::AliHLTRCUAgent() +{ + // see header file for class documentation + // or + // refer to README to build package + // or + // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt +} + +AliHLTRCUAgent::~AliHLTRCUAgent() +{ + // see header file for class documentation +} + +int AliHLTRCUAgent::CreateConfigurations(AliHLTConfigurationHandler* /*handler*/, + AliRawReader* /*rawReader*/, + AliRunLoader* /*runloader*/) const +{ + // see header file for class documentation + return 0; +} + +const char* AliHLTRCUAgent::GetReconstructionChains(AliRawReader* /*rawReader*/, + AliRunLoader* /*runloader*/) const +{ + // see header file for class documentation + return NULL; +} + +const char* AliHLTRCUAgent::GetRequiredComponentLibraries() const +{ + // see header file for class documentation + return NULL; +} + +int AliHLTRCUAgent::RegisterComponents(AliHLTComponentHandler* pHandler) const +{ + // see header file for class documentation + assert(pHandler); + if (!pHandler) return -EINVAL; + return 0; +} diff --git a/HLT/RCU/AliHLTRCUAgent.h b/HLT/RCU/AliHLTRCUAgent.h new file mode 100644 index 00000000000..64a116a876b --- /dev/null +++ b/HLT/RCU/AliHLTRCUAgent.h @@ -0,0 +1,76 @@ +// $Id$ + +#ifndef ALIHLTRCUAGENT_H +#define ALIHLTRCUAGENT_H +//* This file is property of and copyright by the ALICE HLT Project * +//* ALICE Experiment at CERN, All rights reserved. * +//* See cxx source for full Copyright notice */ + +/** @file AliHLTRCUAgent.h + @author Matthias Richter + @date + @brief Agent of the libAliHLTRCU library +*/ + +#include "AliHLTModuleAgent.h" + +/** + * @class AliHLTRCUAgent + * This is the agent for the AliHLTRCU library. + * + * @ingroup alihlt_system + */ +class AliHLTRCUAgent : public AliHLTModuleAgent { + public: + /** + * standard constructor. The agent is automatically registered in the + * global agent manager + */ + AliHLTRCUAgent(); + /** destructor */ + virtual ~AliHLTRCUAgent(); + + /** + * Register all configurations belonging to this module with the + * AliHLTConfigurationHandler. The agent can adapt the configurations + * to be registered to the current AliRoot setup by checking the + * runloader. + * @param handler [in] the configuration handler + * @param rawReader [in] AliRoot RawReader instance + * @param runloader [in] AliRoot runloader + * @return neg. error code if failed + */ + int CreateConfigurations(AliHLTConfigurationHandler* handler, + AliRawReader* rawReader=NULL, + AliRunLoader* runloader=NULL) const; + + /** + * Get the top configurations belonging to this module. + * A top configuration describes a processing chain. It can simply be + * described by the last configuration(s) in the chain. + * The agent can adapt the configurations to be registered to the current + * AliRoot setup by checking the runloader. + * @param rawReader [in] AliRoot RawReader instance + * @param runloader [in] AliRoot runloader + * @return string containing the top configurations separated by blanks + */ + const char* GetReconstructionChains(AliRawReader* rawReader=NULL, + AliRunLoader* runloader=NULL) const; + /** + * Component libraries which the configurations of this agent depend on. + * @return list of component libraries as a blank-separated string. + */ + const char* GetRequiredComponentLibraries() const; + + /** + * Register components for the AliHLTRCU library. + * @param pHandler [in] instance of the component handler + */ + int RegisterComponents(AliHLTComponentHandler* pHandler) const; + protected: + + private: + ClassDef(AliHLTRCUAgent, 0); +}; + +#endif diff --git a/HLT/RCU/Makefile.am b/HLT/RCU/Makefile.am new file mode 100644 index 00000000000..51bf284b98a --- /dev/null +++ b/HLT/RCU/Makefile.am @@ -0,0 +1,63 @@ +# $Id$ +# Makefile template for the AliHLTRCU library. + +# be aware of the two different meanings of 'MODULE' +# 1. AliRoot classifies each detector and main sub-package as a module +# so for all HLT library packages MODULE is equal HLT +# 2. The HLT stand-alone build system knows about sub-modules +# e.g. for libAliHLTRCU, MODULE=AliHLTRCU +MODULE = AliHLTRCU + +EXTRA_DIST = + +# library definition +lib_LTLIBRARIES = libAliHLTRCU.la + +# version info for the library +LIBRARY_VERSION = '0:0:0' + +# MODDIR is set by the AliRoot build system and denotes the topdir +# of the module, we must set it since the package definition libAliHLTRCU.pkg +# includes another common configuration file +MODDIR = $(top_srcdir) +PKGDEF = $(MODDIR)/libAliHLTRCU.pkg +include $(top_srcdir)/libAliHLTRCU.pkg + +# compiler flags +AM_CPPFLAGS = -DMODULE=$(MODULE) \ + $(foreach i, $(EINCLUDE), \ + $(shell echo $(i) | sed -e "/HLT\//!d" -e "s|HLT/|-I$(top_srcdir)/|")) \ + $(foreach i, $(EINCLUDE), \ + $(shell echo $(i) | sed -e "/HLT\//d" -e "s|^|-I$(ALICE_ROOT)/|")) + +# library sources +libAliHLTRCU_la_SOURCES = $(MODULE_SRCS) + +# library headers +pkginclude_HEADERS = $(MODULE_HDRS) + +# linker flags +libAliHLTRCU_la_LDFLAGS = -L@ROOTLIBDIR@ \ + @ROOTLIBS@ \ + @ALIROOT_LDFLAGS@ \ + @ALIROOT_LIBS@ \ + -version-info $(LIBRARY_VERSION) + +# automatic generation of data and time of library build +COMPILE_INFO = AliHLTRCUCompileInfo.cxx + +# set the file name for the generated root dictionary +DICTCPP = AliHLTRCU-DICT.cxx +nodist_libAliHLTRCU_la_SOURCES = $(COMPILE_INFO) \ + $(DICTCPP) + +CLEANFILES = $(COMPILE_INFO) + +include $(top_srcdir)/make.dict + +$(COMPILE_INFO): $(libAliHLTRCU_la_SOURCES) $(pkginclude_HEADERS) $(noinst_HEADERS) Makefile.am + @echo '//automatically generated compilation info' > $@ + @echo '//!!! DO NOT EDIT THIS FILE !!!' >> $@ + @echo '//add changes in Makefile.am' >> $@ + @echo 'extern "C" void CompileInfo( char*& date, char*& time)' >> $@ + @echo '{date=__DATE__; time=__TIME__; return;}' >> $@ diff --git a/HLT/configure.ac b/HLT/configure.ac index 28ebc67aecd..2c6e7144dc4 100644 --- a/HLT/configure.ac +++ b/HLT/configure.ac @@ -523,6 +523,52 @@ AC_MSG_CHECKING([whether to compile tpc library]) AC_MSG_RESULT([$enable_module]) AC_SUBST([ALITPC_LIBS]) +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_RCU],[hlt rcu library]) + +CHECK_HLTMODULE([rcu], + [AliAltroDecoder.h], + [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW], + [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...missing.headers" + enable_rcu="no...missing.headers" +elif test "x$have_alircu" = "xno" ; then + enable_module="no...requires.AliRoot.RAW.libraries" + enable_rcu="no...requires.AliRoot.RAW.libraries" +elif test "x$enable_module" = "xforce"; then + enable_rcu="yes" +else + AC_LANG_PUSH(C++) + save_CPPFLAGS=$CPPFLAGS + save_LDFLAGS=$LDFLAGS + save_LIBS=$LIBS + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS" + LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS" + LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [AliAltroDecoder decoder; + decoder.CopyBackward(NULL, 0);])], + [enable_rcu=$enable_module], + [enable_module="no...requires.AliRoot>v4-10-Release" + enable_rcu="no...requires.AliRoot>v4-10-Release"]) + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + AC_LANG_POP(C++) +fi + +if test "x$enable_rcu" = "xyes" ; then + AC_DEFINE(HLT_RCU) +fi +AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes) +AC_MSG_CHECKING([whether to compile rcu library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIRCU_LIBS]) + dnl ------------------------------------------------------------------ AH_TEMPLATE([HLT_PHOS],[hlt phos library]) @@ -777,6 +823,7 @@ AC_CONFIG_FILES([Makefile TPCLib/Makefile TPCLib/mapping2array.cxx TPCLib/OnlineDisplay/Makefile + RCU/Makefile PHOS/Makefile TRD/Makefile MUON/Makefile diff --git a/HLT/libAliHLTRCU.pkg b/HLT/libAliHLTRCU.pkg new file mode 100644 index 00000000000..6277f26b615 --- /dev/null +++ b/HLT/libAliHLTRCU.pkg @@ -0,0 +1,25 @@ +#-*- Mode: Makefile -*- +# $Id$ + +include $(MODDIR)/hlt.conf + +CLASS_HDRS:= AliHLTRCUAgent.h + +MODULE_SRCS= $(CLASS_HDRS:.h=.cxx) + +MODULE_HDRS:= $(CLASS_HDRS) + +MODULE_DHDR:= + +SRCS:=$(patsubst %,BASE/RCU/%,$(MODULE_SRCS)) +CINTHDRS:=$(patsubst %,BASE/RCU/%,$(CLASS_HDRS)) +HDRS:=$(patsubst %,BASE/RCU/%,$(MODULE_HDRS)) +DHDR:=$(patsubst %,BASE/RCU/%,$(MODULE_DHDR)) +CINTAUTOLINK:= $(shell test "x$(MODULE_DHDR)" = "x" && echo 1) + +EDEFINE := ${HLTDEFS} +PACKCXXFLAGS := ${HLTCXXFLAGS} +PACKCFLAGS := ${HLTCLFAGS} +PACKDCXXFLAGS:= ${HLTDCXXFLAGS} + +EINCLUDE := HLT/BASE RAW -- 2.43.0