]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/FORWARD/analysis2/corrs/DrawCorrSecMap.C
Mega commit of many changes to PWGLFforward
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / corrs / DrawCorrSecMap.C
index f01d7d9c80325e1baa5c922fef0930d374369b71..aa690f4c843b1a82dc716531acaaae69d1f3a509 100644 (file)
@@ -6,29 +6,12 @@
  * @ingroup pwglf_forward_scripts_corr
  */
 /** 
- * Clear canvas 
- * 
- * @param c Canvas to clear 
- *
- * @ingroup pwglf_forward_scripts_corr
- */
-void
-ClearCanvas(TCanvas* c)
-{
-  c->SetLeftMargin(.1);
-  c->SetRightMargin(.05);
-  c->SetBottomMargin(.1);
-  c->SetTopMargin(.05);
-  c->Clear();
-}
-
-/** 
- * Draw energy loss fits to a multi-page PDF. 
+ * Draw secondary maps fits to a multi-page PDF. 
  *
  * @par Input: 
- * The input file is expected to contain a AliFMDCorrELossFit object
- * named @c elossfits in the top level directory.
- 
+ * The input is expected to be parameters to obtain a
+ * AliFMDCorrSecondaryMap object from the correction manager
+* 
  * @par Output: 
  * A multi-page PDF.  Note, that the PDF generated by ROOT in this way
  * is broken (cannot be read by Acrobat Reader on Windows and MacOSX)
@@ -40,111 +23,20 @@ ClearCanvas(TCanvas* c)
  * @ingroup pwglf_forward_scripts_corr
  */
 void
-DrawCorrSecMap(const char* fname, const char* option="colz")
+DrawCorrSecMap(ULong_t runNo, UShort_t sys, UShort_t sNN, Short_t field,
+           const char* fname=0, Bool_t details=true)
 {
   //__________________________________________________________________
   // Load libraries and object 
-  gROOT->Macro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/scripts/LoadLibs.C");
-
-  TFile* file = TFile::Open(fname, "READ");
-  if (!file) { 
-    Error("DrawCorrSecMap", "Failed to open %s", fname);
-    return;
-  }
-  TString pname(fname);
-  pname.ReplaceAll(".root", ".pdf");
-
-  const char* objName = 
-    AliForwardCorrectionManager::Instance()
-    .GetObjectName(AliForwardCorrectionManager::kSecondaryMap);
-  AliFMDCorrSecondaryMap* corr = 
-    static_cast<AliFMDCorrSecondaryMap*>(file->Get(objName));
-  if (!corr) { 
-    Error("DrawCorrSecMap", "Object '%s' not found in %s", objName, fname);
-    return;
-  }
-
-  //__________________________________________________________________
-  // Create a canvas
-  TCanvas* c = new TCanvas("c", "c", 800 / TMath::Sqrt(2), 800);
-  c->SetFillColor(0);
-  c->SetBorderSize(0);
-  c->SetBorderMode(0);
-  c->Print(Form("%s[", pname.Data()));
-  
-  gStyle->SetOptStat(0);
-  gStyle->SetTitleColor(0);
-  gStyle->SetTitleStyle(0);
-  gStyle->SetTitleBorderSize(0);
-  gStyle->SetTitleX(.1);
-  gStyle->SetTitleY(1);
-  gStyle->SetTitleW(.8);
-  gStyle->SetTitleH(.09);
-  gStyle->SetFrameFillColor(kWhite);
-  gStyle->SetFrameBorderSize(1);
-  gStyle->SetFrameBorderMode(1);
-  gStyle->SetPalette(1);
-
-  ClearCanvas(c);
-  //__________________________________________________________________
-  // Create a title page 
-  TLatex* ll = new TLatex(.5,.8, fname);
-  ll->SetTextAlign(22);
-  ll->SetTextSize(0.03);
-  ll->SetNDC();
-  ll->Draw();
-
-  TLatex* l = new TLatex(.5,.8, fname);
-  l->SetNDC();
-  l->SetTextSize(0.03);
-  l->SetTextFont(132);
-  l->SetTextAlign(12);
-  l->DrawLatex(0.2, 0.70, "Secondary map");
-  l->SetTextAlign(22);
-  l->DrawLatex(0.5, 0.60, "c_{v,r}(#eta,#phi)=#frac{"
-              "#sum N_{ch,primary,i}(#eta,#phi)}{"
-              "#sum N_{ch,FMD,i}(#eta,#phi)}");
-  l->SetTextAlign(12);
-  l->DrawLatex(0.2, 0.50, "N: Number of events");
-  l->DrawLatex(0.2, 0.45, "N_{ch,primary,i}(#eta,#phi): Number of charged, "
-              "primary particles in (#eta,#phi) bin");
-  l->DrawLatex(0.2, 0.40, "N_{ch,primary,i}(#eta,#phi): Number of charged, "
-              "particles that hit the FMD in (#eta,#phi) bin");
-  l->DrawLatex(0.2, 0.35, "All quantities determined in MC");
-  
-  c->Print(pname.Data(), "Title:Title page");
-
-  ClearCanvas(c);
-
-  //__________________________________________________________________
-  // Draw all corrections
-  const TAxis& vtxAxis = corr->GetVertexAxis();
-  Int_t        nVtx    = vtxAxis.GetNbins();
-  for (UShort_t d = 1; d <= 3; d++) {
-    UShort_t     nQ = (d == 1 ? 1 : 2);
-    for (UShort_t q = 0; q < nQ; q++) { 
-      Char_t r = (q == 0 ? 'I' : 'O');
-
-      ClearCanvas(c);
-      c->Divide(2, (nVtx+1)/2);
-      for (UShort_t v=1; v <= nVtx; v++) { 
-       TVirtualPad* p = c->cd(v);
-      
-      
-       TH2* h1 = corr->GetCorrection(d, r, v);
-       if (!h1) { 
-         Warning("DrawCorrSecMap", "No correction for r=%c, v=%d", r, v);
-         continue;
-       }
-       h1->Draw(option);
-      }
-      c->Print(pname.Data(), Form("Title:FMD%d%c", d, r));
-    }
-  }
-
-  //__________________________________________________________________
-  // Close output file 
-  c->Print(Form("%s]", pname.Data()));
+  // const char* fwd = "$ALICE_ROOT/PWGLF/FORWARD/analysis2";
+  const char* fwd = "$ALICE_ROOT/../trunk/PWGLF/FORWARD/analysis2";
+  gROOT->Macro(Form("%s/scripts/LoadLibs.C", fwd));
+  gROOT->LoadMacro(Form("%s/scripts/SummaryDrawer.C", fwd));
+  gROOT->LoadMacro(Form("%s/corrs/CorrDrawer.C", fwd));
+
+  CorrDrawer d;
+  d.Run(AliForwardCorrectionManager::kSecondaryMap, runNo, sys, sNN, field, 
+       false, false, "", fname);
 }
 //
 // EOF