#include <TString.h>
#include <TIterator.h>
#include <TList.h>
+#include <TSystem.h>
//AliRoot includes
//header
//
// 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;
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{
return sval.Atof();
}
//_____________________________________________________________________
+const char* AliTPCConfigParser::GetData(const char *key, UInt_t position)
+{
+ //
+ //Get value for the speciefied key
+ //
+ 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)
+{
+ //
+ //Get value for the speciefied key
+ //
+ TObject *val=((TObjArray*)fConfigMap->FindObject(key))->At(position);
+ if ( !val ) return -999.;
+ TString sval(((TObjString*)val)->GetString());
+ return sval.Atof();
+}
+//_____________________________________________________________________
+const char* AliTPCConfigParser::GetData(const TObject *key, UInt_t position)
+{
+ //
+ //Get value for the speciefied key
+ //
+ 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
+{
+ //
+ // return the number of values for key
+ //
+ return ((TObjArray*)fConfigMap->FindObject(key))->GetEntries();
+}
+//_____________________________________________________________________
+Int_t AliTPCConfigParser::GetNumberOfValues(TObject* key) const
+{
+ //
+ // return the number of values for key
+ //
+ return ((TObjArray*)fConfigMap->FindObject(key))->GetEntries();
+}
+//_____________________________________________________________________
TObject* AliTPCConfigParser::NextKey(){
if (!fKeyIter) fKeyIter=fConfigMap->MakeIterator();
TObject *obj=fKeyIter->Next();
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) {