- added default CDB initialization to AliHLTComponent: CDB storage and
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 May 2008 11:44:08 +0000 (11:44 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 May 2008 11:44:08 +0000 (11:44 +0000)
  run number set to $ALICEOOT and 0 if not yet initialized)
- AliHLTSystem: allow empty '-chains=' option to disable all chains
- added data origin for sample data  kAliHLTDataOriginSample ('SMPL')

HLT/BASE/AliHLTComponent.cxx
HLT/BASE/AliHLTComponentHandler.cxx
HLT/BASE/AliHLTDataTypes.cxx
HLT/BASE/AliHLTDataTypes.h
HLT/BASE/AliHLTMisc.h
HLT/BASE/AliHLTSystem.cxx
HLT/rec/AliHLTMisc.cxx

index 8714af131f0f1324132a89776f17c19451e1e54a..501c7d0142fd3e095714847fc702051fe171a946 100644 (file)
@@ -203,7 +203,7 @@ int AliHLTComponent::InitCDB(const char* cdbPath, AliHLTComponentHandler* pHandl
 {
   // see header file for function documentation
   int iResult=0;
-  if (cdbPath && pHandler) {
+  if (pHandler) {
   // I have to think about separating the library handling from the
   // component handler. Requiring the component hanlder here is not
   // the cleanest solution.
@@ -211,11 +211,14 @@ int AliHLTComponent::InitCDB(const char* cdbPath, AliHLTComponentHandler* pHandl
   // find the symbol
   AliHLTMiscInitCDB_t pFunc=(AliHLTMiscInitCDB_t)pHandler->FindSymbol(ALIHLTMISC_LIBRARY, ALIHLTMISC_INIT_CDB);
   if (pFunc) {
-    TString path=cdbPath;
-    // very temporary fix, have to check for other formats
-    if (!path.BeginsWith("local://")) {
-      path="local://";
-      path+=cdbPath;
+    TString path;
+    if (cdbPath && cdbPath[0]!=0) {
+      path=cdbPath;
+      // very temporary fix, have to check for other formats
+      if (!path.BeginsWith("local://")) {
+       path="local://";
+       path+=cdbPath;
+      }
     }
     if ((iResult=(*pFunc)(path.Data()))>=0) {
       if (!(fCDBSetRunNoFunc=pHandler->FindSymbol(ALIHLTMISC_LIBRARY, ALIHLTMISC_SET_CDB_RUNNO))) {
index c26cc14341108692bfe5c57c1fb2f63b9c24628e..5a16e0d2f39b8e27b2694817ab8dc2cc3f1b9a59 100644 (file)
@@ -191,9 +191,7 @@ int AliHLTComponentHandler::CreateComponent(const char* componentID, void* pEnvP
       component=pSample->Spawn();
       if (component) {
        HLTDebug("component \"%s\" created (%p)", componentID, component);
-       if (cdbPath) {
-         component->InitCDB(cdbPath, this);
-       }
+       component->InitCDB(cdbPath, this);
        if ((iResult=component->Init(&fEnvironment, pEnvParam, argc, argv))!=0) {
          HLTError("Initialization of component \"%s\" failed with error %d", componentID, iResult);
          delete component;
index 2932380ddbfdc451b53b15c2a9769cdb14166630..e3dcf1fec09dfea553e4bef6e227d64548a70145 100644 (file)
@@ -218,3 +218,6 @@ const char kAliHLTDataOriginTRD[kAliHLTComponentDataTypefOriginSize]    = {'T','
 
 /** ITS */
 const char kAliHLTDataOriginITS[kAliHLTComponentDataTypefOriginSize]    = {'I','T','S',' '};
+
+/** Sample */
+const char kAliHLTDataOriginSample[kAliHLTComponentDataTypefOriginSize] = {'S','M','P','L'};
index 573c9311cf7637e123d4d8e0095447bcfd7cd5f1..6486d2f512046b317b0828a71e3229825bbe5b3f 100644 (file)
@@ -31,7 +31,7 @@
  *           specs
  *   5       Data types for Run and Event summary, and for monitoring added
  *   6       Common data types for TreeD and TreeR defined
- *           kAliHLTAllDataTypes added
+ *           kAliHLTAllDataTypes and kAliHLTDataOriginSample added
  */
 #define ALIHLT_DATA_TYPES_VERSION 6
 
@@ -102,6 +102,11 @@ extern const char kAliHLTDataOriginTRD[kAliHLTComponentDataTypefOriginSize];
  */
 extern const char kAliHLTDataOriginITS[kAliHLTComponentDataTypefOriginSize];
 
+/** Data origin for examples 
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginSample[kAliHLTComponentDataTypefOriginSize];
+
 //////////////////////////////////////////////////////////////////////////
 //
 // HLT common data type defines
index 17cf9e93a27b37db493adeb4e1dfd8aa6af1844f..9247c203eee6f4008a714329a599f973ac434a35 100644 (file)
@@ -26,7 +26,9 @@ extern "C" {
    * The method is used from the C wrapper interface utilized by the  on-line
    * framework. The path of the (H)CDB is set to the specified path.<br>
    * When running from AliRoot, the CDB path is set in the startup of the
-   * reconstruction.
+   * reconstruction.<br>
+   * If cdbpath is nil or empty and the CDB is not already initialized, the
+   * CDB storage is set to local://$ALICE_ROOT and the run no to 0.
    * @param cdbpath     path to the CDB
    * @return neg. error code if failed
    * @note function implemented in libHLTrec
@@ -34,7 +36,6 @@ extern "C" {
   int AliHLTMiscInitCDB(const char* cdbpath);
   typedef int (*AliHLTMiscInitCDB_t)(const char* cdbpath);
 
-
   /**
    * Init the Run no for the CDB access.
    * @param runNo       the run no
index 804a3258a00053ce79a35b64e6eca49634e134b8..a8f0cd2155b3dac826baf0c0ce167eea3c544b53 100644 (file)
@@ -892,7 +892,7 @@ int AliHLTSystem::Configure(AliRawReader* rawReader, AliRunLoader* runloader)
     iResult=LoadConfigurations(rawReader, runloader);
   } else {
     if (fChains.Length()==0) {
-      HLTError("custom configuration(s) specified, but no configuration to run in local reconstruction, use \'localrec=<conf>\' option");
+      HLTError("custom configuration(s) specified, but no configuration to run in local reconstruction, use \'chains=<chain,...>\' option");
       iResult=-ENOENT;
     }
   }
@@ -962,6 +962,7 @@ int AliHLTSystem::ScanOptions(const char* options)
        } else if (token.Contains("chains=")) {
          TString param=token.ReplaceAll("chains=", "");
          fChains=param.ReplaceAll(",", " ");
+         if (fChains.IsNull()) fChains=" "; // disable all chains
        } else if (token.Contains("libmode=")) {
          TString param=token.ReplaceAll("libmode=", "");
          param.ReplaceAll(",", " ");
@@ -1064,7 +1065,7 @@ int AliHLTSystem::BuildTaskListsFromReconstructionChains(AliRawReader* rawReader
     while ((pAgent || fChains.Length()>0) && iResult>=0) {
       const char* agentchains=pAgent->GetReconstructionChains(rawReader, runloader);
       if (agentchains) {
-       if (!chains.IsNull()) chains+="";
+       if (!chains.IsNull()) chains+=" ";
        chains+=agentchains;
        HLTInfo("reconstruction chains for agent %s (%p): %s", pAgent->GetName(), pAgent, agentchains);
       }
@@ -1108,7 +1109,7 @@ int AliHLTSystem::BuildTaskListsFromReconstructionChains(AliRawReader* rawReader
       // there are components in the chain which produce data which need to be
       // piped to an HLTOUT
       if (fpComponentHandler->FindComponentIndex("HLTOUT")>=0 ||
-         LoadComponentLibraries("libHLTsim.so")>=0) {
+         fpComponentHandler->LoadLibrary("libHLTsim.so")>=0) {
        AliHLTConfiguration globalout("_globalout_", "HLTOUT", chains.Data(), NULL);
        iResult=BuildTaskList("_globalout_");
       } else {
index 9dfbeb35bceac796c29994567c4043a6b713c102..f419acb460db1f4df16bb1a841ac1f6762bd79dd 100644 (file)
@@ -34,8 +34,15 @@ int AliHLTMiscInitCDB(const char* cdbpath)
   if (!pCDB) {
     log.Logging(kHLTLogError, "InitCDB", "CDB handling", "Could not get CDB instance");
   } else {
-    pCDB->SetDefaultStorage(cdbpath);
-    log.Logging(kHLTLogDebug, "InitCDB", "CDB handling", "CDB instance 0x%x", pCDB);
+    if (cdbpath && cdbpath[0]!=0) {
+      pCDB->SetDefaultStorage(cdbpath);
+      log.Logging(kHLTLogDebug, "InitCDB", "CDB handling", "CDB instance 0x%x", pCDB);
+    } else if (!pCDB->IsDefaultStorageSet()) {
+      const char* cdbUri="local://$ALICE_ROOT";
+      pCDB->SetDefaultStorage(cdbUri);
+      pCDB->SetRun(0);
+      log.Logging(kHLTLogInfo, "InitCDB", "CDB handling", "set default URI: %s", cdbUri);
+    }
   }
   return iResult;
 }