Backward compatibilities
authorcholm <Christian.Holm.Christensen@cern.ch>
Tue, 28 Oct 2014 21:14:04 +0000 (22:14 +0100)
committercholm <Christian.Holm.Christensen@cern.ch>
Tue, 28 Oct 2014 21:14:04 +0000 (22:14 +0100)
PWGLF/FORWARD/analysis2/AliBaseESDTask.cxx
PWGLF/FORWARD/analysis2/AliBaseESDTask.h
PWGLF/FORWARD/analysis2/AliFMDEnergyFitter.cxx
PWGLF/FORWARD/analysis2/AliFMDSharingFilter.cxx
PWGLF/FORWARD/analysis2/qa/QABase.h

index 440eae95bf8b03d7aa88a0ec1bb1c334f4e7bdc4..0db66aa937f2363e4912b2926b378d2a1b82219e 100644 (file)
@@ -55,7 +55,8 @@ AliBaseESDTask::AliBaseESDTask(const char* name, const char* title,
 //____________________________________________________________________
 Bool_t
 AliBaseESDTask::Connect(const char* sumFile, 
-                       const char* resFile)
+                       const char* resFile,
+                       Bool_t      old)
 {
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
@@ -84,15 +85,17 @@ AliBaseESDTask::Connect(const char* sumFile,
 
   // Connect sum list unless the output 'none' is specified
   if (!sumOut.EqualTo("none", TString::kIgnoreCase)) {
+    TString sumName(Form("%s%s", old ? "Forward" : GetName(), old ? "" : "Sums"));
     AliAnalysisDataContainer* sumCon = 
-      mgr->CreateContainer(Form("%sSums", GetName()), TList::Class(), 
+      mgr->CreateContainer(sumName, TList::Class(), 
                           AliAnalysisManager::kOutputContainer, sumOut);
     mgr->ConnectOutput(this, 1, sumCon);
   }
   // Connect the result list unless the output 'none' is specified
   if (!resOut.EqualTo("none", TString::kIgnoreCase)) {
+    TString resName(Form("%sResults", GetName()));
     AliAnalysisDataContainer* resCon = 
-      mgr->CreateContainer(Form("%sResults", GetName()), TList::Class(), 
+      mgr->CreateContainer(resName, TList::Class(), 
                           AliAnalysisManager::kParamContainer, resOut);
     mgr->ConnectOutput(this, 2, resCon);
   }
@@ -163,6 +166,7 @@ void
 AliBaseESDTask::LocalInit() 
 { 
   fFirstEvent = true; 
+  DGUARD(fDebug,1,"Doing local initialization");
   Setup(); 
 }
 
index bda80f9ae387a5e27361de610a5d30803e9b9e4c..533fe31c575470734ea39b51dd544de1e688dc5f 100644 (file)
@@ -100,10 +100,13 @@ public:
    * 
    * @param sumFile Output file for sums
    * @param resFile Output file for sums
+   * @param old     Use old names
    * 
    * @return true on success 
    */
-  virtual Bool_t Connect(const char* sumFile=0, const char* resFile=0);
+  virtual Bool_t Connect(const char* sumFile=0, 
+                        const char* resFile=0,
+                        Bool_t      old=false);
   /** 
    * Called when initializing the train 
    */
index c680199d354b2439190da07bccfcffb6b5ac0273..08f909ea12dc9e63bfe99b84a553cd8913a57d01 100644 (file)
@@ -388,6 +388,9 @@ AliFMDEnergyFitter::Fit(const TList* dir)
   for (Int_t i = 0; i < nStack; i++) 
     d->Add(stack[i]);
 
+  // If we have no ring histograms, re-init. 
+  if (fRingHistos.GetEntries() <= 0) Init();
+
   AliInfoF("Will do fits for %d rings", fRingHistos.GetEntries());
   TIter    next(&fRingHistos);
   RingHistos* o = 0;
@@ -962,21 +965,30 @@ AliFMDEnergyFitter::RingHistos::FitSlices(TList*           dir,
   TList* l = GetOutputList(dir);
   if (!l) return 0; 
 
-  // Get the energy distributions from the output container 
-  // TList* dists = static_cast<TList*>(l->FindObject("EDists"));
-  // if (!dists) { 
-  //   AliWarning(Form("Didn't find EtaEDists (%s) in %s", 
-  //               fName.Data(), l->GetName()));
-  //   l->ls();
-  //   return 0;
-  // }
+  TList* dists = 0;
+  // Get the 2D histogram 
   TH2* h = static_cast<TH2*>(l->FindObject(name));
   if (!h) { 
     AliWarningF("Didn't find 2D histogram '%s' in %s", name, l->GetName());
-    l->ls();
+    // Get the energy distributions from the output container 
+    dists = static_cast<TList*>(l->FindObject("EDists"));
+    if (!dists) { 
+      AliWarningF("Didn't find EtaEDists (%s) in %s", 
+                 fName.Data(), l->GetName());
+      l->ls();
+      return 0;
+    }
+  }
+  if (!h && !dists) return 0;
+
+  const TAxis* pEta = (h ? h->GetXaxis() : 
+                           static_cast<TAxis*>(dir->FindObject("etaAxis")));
+  if (!pEta) { 
+    AliWarningF("Didn't find the eta axis - either from histogram %p or "
+               "list %p (%s)", h, dir, (dir ? dir->GetName() : "-"));
     return 0;
   }
-  const TAxis& eta = *(h->GetXaxis());
+  const TAxis& eta = *pEta;
 
   // Create an output list for the fitted distributions 
   TList* out = new TList;
@@ -1018,7 +1030,7 @@ AliFMDEnergyFitter::RingHistos::FitSlices(TList*           dir,
     pars->Add(hA[i-1] = MakePar(Form("a%d",i+1), Form("a_{%d}",i+1), eta));
 
   
-  Int_t nDists = h->GetNbinsX(); // dists->GetEntries();
+  Int_t nDists = h ? h->GetNbinsX() : dists->GetEntries();
   Int_t low    = nDists;
   Int_t high   = 0;
   Int_t nEmpty = 0;
@@ -1030,10 +1042,10 @@ AliFMDEnergyFitter::RingHistos::FitSlices(TList*           dir,
     best->SetOwner(false);
   }
   for (Int_t i = 0; i < nDists; i++) { 
-    // TH1D* dist = static_cast<TH1D*>(dists->At(i));
     // Ignore empty histograms altoghether 
     Int_t b    = i+1;
-    TH1D* dist = h->ProjectionY(Form(fgkEDistFormat,GetName(),b),b,b,"e");
+    TH1D* dist = (h ? h->ProjectionY(Form(fgkEDistFormat,GetName(),b),b,b,"e") 
+                 : static_cast<TH1D*>(dists->At(i)));
     if (!dist) { 
       // If we got the null pointer, return 0
       nEmpty++;
@@ -1064,7 +1076,8 @@ AliFMDEnergyFitter::RingHistos::FitSlices(TList*           dir,
       case 1: nEmpty++; break;
       case 2: nLow++;   break;
       }
-      delete dist;
+      // Only clean up if we have no input list 
+      if (h) delete dist;
       continue;
     }
       
index 6c65c5c667ccf97fce493b569e5f6e7b5738f219..ddb473bc7fb67f6cf07bb3b7b66700a5a3e0c45b 100644 (file)
@@ -617,12 +617,15 @@ AliFMDSharingFilter::Terminate(const TList* dir, TList* output, Int_t nEvents)
     sum->SetYTitle("#sum_{c} #Delta/#Delta_{mip}");
     sums->Add(sum);
 
-    sum = o->fSumESD->ProjectionX(o->GetName(), 1, o->fSumESD->GetNbinsY(),"e");
-    sum->Scale(1., "width");
-    sum->SetTitle(o->GetName());
-    sum->SetDirectory(0);
-    sum->SetYTitle("#sum_{s} #Delta/#Delta_{mip}");
-    sumsESD->Add(sum);
+
+    if (o->fSumESD) { 
+      sum = o->fSumESD->ProjectionX(o->GetName(), 1, o->fSumESD->GetNbinsY(),"e");
+      sum->Scale(1., "width");
+      sum->SetTitle(o->GetName());
+      sum->SetDirectory(0);
+      sum->SetYTitle("#sum_{s} #Delta/#Delta_{mip}");
+      sumsESD->Add(sum);
+    }
   }
   out->Add(sums);
   out->Add(sumsESD);
index fdd07e8f2a506ec09371d69e4ec5daf504c401c8..1a3f416f8d833ef51f67e5dba847c78b77663740 100644 (file)
@@ -428,14 +428,6 @@ struct QABase
           <<  (isMC ? "job_details.jsp" : "production/raw.jsp") 
           << "?jt_field1=" << fPeriod << "'>Producion(s)</a></li>\n"
           << "</ul>" << std::endl;
-    if (fPeriod.IsNull()) return;
-    Bool_t isMC = (fDataType.EqualTo("sim", TString::kIgnoreCase) || 
-                  fPass.BeginsWith("passMC", TString::kIgnoreCase));
-    *fHtml << "<ul>\n"
-          << " <li><a href='https://alimonitor.cern.ch/" 
-          <<  (isMC ? "job_details.jsp" : "production/raw.jsp") 
-          << "?jt_field1=" << fPeriod << "'>Producion(s)</a></li>\n"
-          << "</ul>" << std::endl;
   }
   /** 
    * Write full job footer