]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Use pass-aware container
authordstocco <diego.stocco@cern.ch>
Fri, 5 Sep 2014 16:38:26 +0000 (18:38 +0200)
committermorsch <andreas.morsch@cern.ch>
Mon, 8 Sep 2014 10:48:10 +0000 (12:48 +0200)
OADB/PWG/MUON/MuonTrackCuts.root
OADB/PWG/MUON/MuonTrackCuts_MC.root [deleted file]
PWG/muon/AliMuonTrackCuts.cxx

index 7bf036190f6c3925684e0594b91f6375e8c28908..6fee32277701950ffb2de5645f67a813147e4dcf 100644 (file)
Binary files a/OADB/PWG/MUON/MuonTrackCuts.root and b/OADB/PWG/MUON/MuonTrackCuts.root differ
diff --git a/OADB/PWG/MUON/MuonTrackCuts_MC.root b/OADB/PWG/MUON/MuonTrackCuts_MC.root
deleted file mode 100644 (file)
index fc71645..0000000
Binary files a/OADB/PWG/MUON/MuonTrackCuts_MC.root and /dev/null differ
index 8cb5da10a5743b13f1f9582b3ff93a6e93ef281f..12148e5a26619a4d493a60aab637e7923dc35c45 100644 (file)
@@ -202,68 +202,44 @@ Bool_t AliMuonTrackCuts::ReadParamFromOADB ( Int_t runNumber, TString passName )
   if ( passName.IsNull() && ! fAllowDefaultParams ) AliFatal("Pass name not specified! Please provide one or allow for default parameters");
   
   TString filename = Form("%s/PWG/MUON/MuonTrackCuts.root",AliAnalysisManager::GetOADBPath());
-  if ( fIsMC ) filename.ReplaceAll(".root", "_MC.root");
 
   TFile* file = TFile::Open(filename.Data(), "READ");
   if ( ! file ) {
     AliFatal(Form("OADB file %s not found!", filename.Data()));
     return kFALSE;
   }
-
-  // Search the container name to find the correct pass
-  AliOADBContainer* matchContainer = 0x0, *defaultContainer = 0x0;
-  AliOADBMuonTrackCutsParam* matchParams = 0x0, *defaultParams = 0x0;
   
-  TList* listOfKeys = file->GetListOfKeys();
-  TIter next(listOfKeys);
-  TObject* key = 0x0;
-  // loop on keys
-  while ( ( key = next() ) ) {
-
-    TString checkName(key->GetName());
-    checkName.ToUpper();
-    Bool_t isDefault = checkName.Contains("DEFAULT");
-    // if user selects a specific pass name, check for it
-    // otherwise use default
-    if ( isDefault ) {
-      if ( ! fAllowDefaultParams ) continue;
-    }
-    else if ( passName.CompareTo(key->GetName()) ) continue;
-
-    AliOADBContainer* oadbContainer = static_cast<AliOADBContainer*> (file->Get(key->GetName()));
-    // Check if the found parameters are default or match the requested run
-    AliOADBMuonTrackCutsParam* currParams = static_cast<AliOADBMuonTrackCutsParam*> (oadbContainer->GetObject(runNumber, "default"));
-    if ( ! currParams ) continue;
-    if ( isDefault ) {
-      defaultContainer = oadbContainer;
-      defaultParams = currParams;
-    }
-    else {
-      matchContainer = oadbContainer;
-      matchParams = currParams;
-      break;
-    }
-  } // loop on keys
+  TString containerName = "MuonTrackCutsParam_data";
+  if ( fIsMC ) containerName.ReplaceAll("_data", "_MC");
+  TString defaultName = "default";
 
-  AliOADBContainer* selectedContainer = 0x0;
-  if ( matchParams ) {
-    selectedContainer = matchContainer;
-    fOADBParam = *matchParams;
-  }
-  else if ( defaultParams ) {
-    selectedContainer = defaultContainer;
-    fOADBParam = *defaultParams;
-    AliWarning(Form("Requested run %i not found in %s: using %s (%s)", runNumber, passName.Data(), fOADBParam.GetName(), selectedContainer->GetName()));
+  AliOADBContainer* oadbContainer = static_cast<AliOADBContainer*>(file->Get(containerName.Data()));
+  if ( ! oadbContainer ) {
+    AliFatal(Form("OADB container %s not found in %s!", containerName.Data(), filename.Data()));
+    return kFALSE;
   }
-  else {
-    AliFatal(Form("Requested run %i not found in %s! Please check your pass name or allow default parameters", runNumber, passName.Data()));
-    return kFALSE; // Coverity fix
+  AliOADBMuonTrackCutsParam* param = static_cast<AliOADBMuonTrackCutsParam*>(oadbContainer->GetObject(runNumber,defaultName.Data(),passName));
+
+  TString paramName = param->GetName();
+  if ( paramName == "default" ) {
+    if ( ! fAllowDefaultParams ) {
+      AliFatal(Form("Requested run %i not found in %s! Please check your pass name or allow default parameters", runNumber, passName.Data()));
+      return kFALSE; // Coverity fix
+    }
+
+    // Search if there is a better tuned default for the considered period
+    containerName.Append("_def");
+    oadbContainer = static_cast<AliOADBContainer*>(file->Get(containerName.Data()));
+    param = static_cast<AliOADBMuonTrackCutsParam*>(oadbContainer->GetObject(runNumber,defaultName.Data(),passName));
+
+    AliWarning(Form("Requested run %i not found in %s: using %s", runNumber, passName.Data(), param->GetName()));
   }
-  
+
+  fOADBParam = *param;
   file->Close();
 
-  AliInfo(Form("Requested run %i in pass %s. Param. set: %s (%s)", runNumber, passName.Data(), fOADBParam.GetName(), selectedContainer->GetName()));
-  
+  AliInfo(Form("Requested run %i in pass %s. Param. set: %s", runNumber, passName.Data(), fOADBParam.GetName()));
+
   return kTRUE;
 }