+ TString libs("");
+ TString option = GetOption();
+ TObjArray* pTokens=option.Tokenize(" ");
+ if (pTokens) {
+ int iEntries=pTokens->GetEntries();
+ for (int i=0; i<iEntries; i++) {
+ TString token=(((TObjString*)pTokens->At(i))->GetString());
+ if (token.Contains("loglevel=")) {
+ TString param=token.ReplaceAll("loglevel=", "");
+ if (param.IsDigit()) {
+ fpSystem->SetGlobalLoggingLevel((AliHLTComponentLogSeverity)param.Atoi());
+ } else if (param.BeginsWith("0x") &&
+ param.Replace(0,2,"",0).IsHex()) {
+ int severity=0;
+ sscanf(param.Data(),"%x", &severity);
+ fpSystem->SetGlobalLoggingLevel((AliHLTComponentLogSeverity)severity);
+ } else {
+ AliWarning("wrong parameter for option \'loglevel=\', (hex) number expected");
+ }
+ } else if (token.Contains("alilog=off")) {
+ fpSystem->SwitchAliLog(0);
+ } else if (token.BeginsWith("lib") && token.EndsWith(".so")) {
+ libs+=token;
+ libs+=" ";
+ } else {
+ AliWarning(Form("unknown option: %s", token.Data()));
+ }
+ }
+ delete pTokens;
+ }
+
+ Bool_t bForceLibLoad=0;
+ if (bForceLibLoad=(libs.IsNull())) {
+ const char** deflib=kHLTDefaultLibs;
+ while (*deflib) {
+ libs+=*deflib++;
+ libs+=" ";
+ }
+ }
+ if ((bForceLibLoad || !fpSystem->CheckStatus(AliHLTSystem::kLibrariesLoaded)) &&
+ (fpSystem->LoadComponentLibraries(libs.Data())<0)) {
+ AliError("error while loading HLT libraries");
+ return;
+ }
+ if (!fpSystem->CheckStatus(AliHLTSystem::kReady) &&
+ (fpSystem->Configure(runLoader))<0) {
+ AliError("error during HLT system configuration");
+ return;
+ }
+}
+
+void AliHLTReconstructor::Reconstruct(AliRunLoader* runLoader) const
+{
+ // reconstruction of simulated data
+ Reconstruct(runLoader, NULL);
+}
+
+void AliHLTReconstructor::Reconstruct(AliRunLoader* runLoader, AliRawReader* rawReader) const
+{
+ // reconstruction of real data if rawReader!=NULL
+ if(!runLoader) {
+ AliError("Missing RunLoader! 0x0");
+ return;
+ }