]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCConfigParser.cxx
store ntuple in same file as histos (Renu)
[u/mrichter/AliRoot.git] / TPC / AliTPCConfigParser.cxx
index ad8f25b22d49e4c41ea0f966f1212b913a0f8633..f9261bbc0a1d07d680156c87dba02e69a421aa70 100644 (file)
@@ -36,6 +36,7 @@
 #include <TString.h>
 #include <TIterator.h>
 #include <TList.h>
+#include <TSystem.h>
 //AliRoot includes
 
 //header
@@ -107,8 +108,8 @@ Int_t AliTPCConfigParser::ParseConfigFileTxt(const char* cfgfile)
  //
  // Function to parse a configuration file
  //
-  
-  ifstream file(cfgfile);
+  ResetMap();
+  ifstream file(gSystem->ExpandPathName(cfgfile));
   if ( !file.is_open() ){
     Error("ParseConfigFileTxt","File '%s' could not be opened!", cfgfile);
     return 1;
@@ -142,7 +143,7 @@ Int_t AliTPCConfigParser::ParseConfigFileTxt(const char* cfgfile)
     TObjArray  *objArr=0x0;
     if (nentries==2){
       TObject *objVal=arrValues->At(1);
-      const TString &str=((TObjString*)objVal)->GetString();
+      const TString str=objVal->GetName();
       if (str.Contains(","))
         objArr=str.Tokenize(",");
       else{
@@ -178,11 +179,11 @@ const char* AliTPCConfigParser::GetData(const char *key, UInt_t position)
   //
   //Get value for the speciefied key
   //
-  TObject *val=((TObjArray*)fConfigMap->FindObject(key))->At(position);
-  if ( !val ) {
-    return "";
-  }
-  return (((TObjString*)val)->GetString()).Data();
+  TObjArray *arr=((TObjArray*)fConfigMap->FindObject(key));
+  if (position>=(UInt_t)(arr->GetEntries())) return "";
+  TObject *val=arr->At(position);
+  if ( !val ) return "";
+  return val->GetName();
 }
 //_____________________________________________________________________
 Float_t AliTPCConfigParser::GetValue(const TObject *key, UInt_t position)
@@ -201,11 +202,11 @@ const char* AliTPCConfigParser::GetData(const TObject *key, UInt_t position)
   //
   //Get value for the speciefied key
   //
-  TObject *val=((TObjArray*)fConfigMap->FindObject(key))->At(position);
-  if ( !val ) {
-    return "";
-  }
-  return (((TObjString*)val)->GetString()).Data();
+  TObjArray *arr=((TObjArray*)fConfigMap->FindObject(key));
+  if (position>=((UInt_t)arr->GetEntries())) return "";
+  TObject *val=arr->At(position);
+  if ( !val ) return "";
+  return val->GetName();
 }
 //_____________________________________________________________________
 Int_t AliTPCConfigParser::GetNumberOfValues(const char* key) const
@@ -245,7 +246,10 @@ TObject* AliTPCConfigParser::NextValue(TObject *key){
 TObject* AliTPCConfigParser::NextValueIter(TObjArray *key){
   if (!key) return 0;
   //check if the collection has changed
-  if (fValIter && key!=fValIter->GetCollection()) delete fValIter;
+  if (fValIter && key!=fValIter->GetCollection()) {
+    delete fValIter;
+    fValIter=0x0;
+  }
   if (!fValIter) fValIter=key->MakeIterator();
   TObject *value=fValIter->Next();
   if (!value) {