]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
added macros used for plotting
authorshahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 27 Jan 2011 12:42:38 +0000 (12:42 +0000)
committershahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 27 Jan 2011 12:42:38 +0000 (12:42 +0000)
PWG0/multVScentPbPb/AliTrackletTaskMulti.cxx
PWG0/multVScentPbPb/AliTrackletTaskUni.cxx
PWG0/multVScentPbPb/SaveCanvas.C [new file with mode: 0755]
PWG0/multVScentPbPb/SaveCanvas.h [new file with mode: 0644]

index 2d2e6f1a4ad6b80438469522b236c3f35e0cdb14..6bf35fe3e544151246f029fae9954f7009aeb4d4 100755 (executable)
@@ -399,20 +399,20 @@ void AliTrackletTaskMulti::UserCreateOutputObjects()
     man->SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Residual");
     if (newGeom) {
       // new geom
-      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data",130844,8);
+      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data");
       AliGeomManager::SetGeometry((TGeoManager*) obj->GetObject());
       if (!AliGeomManager::ApplyAlignObjsToGeom("ITS",130844,6,-1)) AliFatal("Failed to misalign geometry");
     }
     else {
       // old geom
-      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data",130845,7);
+      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data");
       AliGeomManager::SetGeometry((TGeoManager*) obj->GetObject());
       if (!AliGeomManager::ApplyAlignObjsToGeom("ITS",130845,5,-1)) AliFatal("Failed to misalign geometry");
     }
   }
   else {
     man->SetDefaultStorage("raw://"); man->SetRun(137045);
-    AliCDBEntry*  obj = man->Get("GRP/Geometry/Data",137045,3);
+    AliCDBEntry*  obj = man->Get("GRP/Geometry/Data");
     AliGeomManager::SetGeometry((TGeoManager*) obj->GetObject());
     if (!AliGeomManager::ApplyAlignObjsToGeom("ITS",137045,8,-1)) AliFatal("Failed to misalign geometry");
   }
index 6171079e00201fcf643988548d9d0c02cef6988d..a316baa30fa9af7b4cd8b53fc78d7729328aaefe 100755 (executable)
@@ -293,20 +293,20 @@ void AliTrackletTaskUni::UserCreateOutputObjects()
     man->SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Residual");
     if (newGeom) {
       // new geom
-      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data",130844,8);
+      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data");
       AliGeomManager::SetGeometry((TGeoManager*) obj->GetObject());
       if (!AliGeomManager::ApplyAlignObjsToGeom("ITS",130844,6,-1)) AliFatal("Failed to misalign geometry");
     }
     else {
       // old geom
-      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data",130845,7);
+      AliCDBEntry*  obj = man->Get("GRP/Geometry/Data");
       AliGeomManager::SetGeometry((TGeoManager*) obj->GetObject());
       if (!AliGeomManager::ApplyAlignObjsToGeom("ITS",130845,5,-1)) AliFatal("Failed to misalign geometry");
     }
   }
   else {
     man->SetDefaultStorage("raw://"); man->SetRun(137045);
-    AliCDBEntry*  obj = man->Get("GRP/Geometry/Data",137045,3);
+    AliCDBEntry*  obj = man->Get("GRP/Geometry/Data");
     AliGeomManager::SetGeometry((TGeoManager*) obj->GetObject());
     if (!AliGeomManager::ApplyAlignObjsToGeom("ITS",137045,8,-1)) AliFatal("Failed to misalign geometry");
   }
diff --git a/PWG0/multVScentPbPb/SaveCanvas.C b/PWG0/multVScentPbPb/SaveCanvas.C
new file mode 100755 (executable)
index 0000000..17d1baa
--- /dev/null
@@ -0,0 +1,227 @@
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include <TCanvas.h>
+#include <TString.h>
+#include <TLatex.h>
+#include <TMath.h>
+#include <TPad.h>
+#include <TList.h>
+#include <TH1.h>
+#include <TGraph.h>
+#include <TF1.h>
+#include <TStyle.h>
+#include <TFrame.h>
+#include <TPaveStats.h>
+#endif
+
+TH1* GetBaseHisto(TPad* pad=0);
+TFrame* GetFrame(TPad* pad=0);
+void SetStatPad(TH1* hst,float x1,float x2,float y1,float y2);
+TPaveStats* GetStatPad(TH1* hst);
+void SetHStyle(TH1* hst,int col=kRed,int mark=20,float mrsize=0.7);
+void SetGStyle(TGraph* hst,int col=kRed,int mark=20,float mrsize=0.7);
+TH1* Cumulate(TH1* histo, Bool_t doErr=kTRUE, const char* copyName=0);
+TLatex* AddLabel(const char*txt,float x=0.1,float y=0.9,int color=kBlack,float size=0.04);
+void wAv(double v1,double v2, double err1=0,double err2=0, double* wv=0,double *we=0);
+void wSum(double v1,double v2, double err1=0,double err2=0, double* wv=0,double *we=0);
+
+void SaveCanvas(TCanvas* canv,const char* path="canv",const Option_t *option="ecg")
+{
+  TString name;
+  TString opt = option; opt.ToLower();
+  //
+  TString name0 = path;
+  if (name0.IsNull()) name0 = "defCanv";
+  //
+  TFrame* fr = GetFrame();
+  if (fr) fr->SetBorderMode(0);
+  if (opt.Contains("c")) {
+    name = name0; name+=".C";
+    canv->Print(name.Data());
+  }
+  //
+  if (opt.Contains("e")) {
+    name = name0; name+=".eps";
+    canv->Print(name.Data());
+  }
+  //
+  if (opt.Contains("g")) {
+    name = name0; name+=".gif";
+    canv->Print(name.Data());
+  }
+  //
+  if (opt.Contains("p")) {
+    name = name0; name+=".ps";
+    canv->Print(name.Data());
+  }
+  //
+}
+
+
+TLatex* AddLabel(const char*txt,float x,float y,int color,float size)
+{
+  TLatex* lt = new TLatex(x,y,txt); 
+  lt->SetNDC(); 
+  lt->SetTextColor(color);
+  lt->SetTextSize(size);
+  lt->Draw();
+  return lt;
+}
+
+TH1* GetBaseHisto(TPad* pad)
+{
+  if (!pad) pad = (TPad*)gPad;
+  if (!pad) return 0;
+  TList* lst = pad->GetListOfPrimitives();
+  int size = lst->GetSize();
+  TH1* hst=0;
+  for (int i=0;i<size;i++) {
+    TObject* obj = lst->At(i);
+    if (!obj) continue;
+    if (obj->InheritsFrom("TH1")) {hst = (TH1*)obj; break;}
+  }
+  return hst;
+}
+
+TFrame* GetFrame(TPad* pad)
+{
+  if (!pad) pad = (TPad*)gPad;
+  if (!pad) return 0;
+  TList* lst = pad->GetListOfPrimitives();
+  int size = lst->GetSize();
+  TFrame* frm=0;
+  for (int i=0;i<size;i++) {
+    TObject* obj = lst->At(i);
+    if (!obj) continue;
+    if (obj->InheritsFrom("TFrame")) {frm = (TFrame*)obj; break;}
+  }
+  return frm;
+}
+
+TPaveStats* GetStatPad(TH1* hst)
+{
+  TList *lst = hst->GetListOfFunctions();
+  if (!lst) return 0;
+  int nf = lst->GetSize();
+  for (int i=0;i<nf;i++) {
+    TPaveStats *fnc = (TPaveStats*) lst->At(i);
+    if (fnc->InheritsFrom("TPaveStats")) return fnc;
+  }
+  return 0;
+  //
+}
+
+
+void SetStatPad(TH1* hst,float x1,float x2,float y1,float y2)
+{
+  TPaveStats* pad = GetStatPad(hst);
+  if (!pad) return;
+  pad->SetX1NDC( x1 );
+  pad->SetX2NDC( x2 );
+  pad->SetY1NDC( y1 );
+  pad->SetY2NDC( y2 );
+  //
+  gPad->Modified();
+}
+
+void SetHStyle(TH1* hst,int col,int mark,float mrsize)
+{
+  hst->SetLineColor(col);
+  hst->SetMarkerColor(col);
+  hst->SetFillColor(col);
+  hst->SetMarkerStyle(mark);
+  hst->SetMarkerSize(mrsize);
+  TList *lst = hst->GetListOfFunctions();
+  if (lst) {
+    int nf = lst->GetSize();
+    for (int i=0;i<nf;i++) {
+      TObject *fnc = lst->At(i);
+      if (fnc->InheritsFrom("TF1")) {
+       ((TF1*)fnc)->SetLineColor(col);
+       ((TF1*)fnc)->SetLineWidth(1);
+       ((TF1*)fnc)->ResetBit(TF1::kNotDraw);
+      }
+      else if (fnc->InheritsFrom("TPaveStats")) {
+       ((TPaveStats*)fnc)->SetTextColor(col);
+      }
+    }
+  }
+}
+
+void SetGStyle(TGraph* hst,int col,int mark,float mrsize)
+{
+  hst->SetLineColor(col);
+  hst->SetMarkerColor(col);
+  hst->SetFillColor(col);
+  hst->SetMarkerStyle(mark);
+  hst->SetMarkerSize(mrsize);
+  TList *lst = hst->GetListOfFunctions();
+  if (lst) {
+    int nf = lst->GetSize();
+    for (int i=0;i<nf;i++) {
+      TObject *fnc = lst->At(i);
+      if (fnc->InheritsFrom("TF1")) {
+       ((TF1*)fnc)->SetLineColor(col);
+       ((TF1*)fnc)->SetLineWidth(1);
+       ((TF1*)fnc)->ResetBit(TF1::kNotDraw);
+      }
+      else if (fnc->InheritsFrom("TPaveStats")) {
+       ((TPaveStats*)fnc)->SetTextColor(col);
+      }
+    }
+  }
+}
+
+TH1* Cumulate(TH1* histo, Bool_t doErr, const char* copyName)
+{
+  // create cumulative histo
+  TString nname = copyName;
+  if (nname.IsNull()) {
+    nname = histo->GetName();
+    nname += "_cml";
+  }
+  TH1* cml = (TH1*) histo->Clone(nname.Data());
+  int nb = histo->GetNbinsX();
+  double sm = 0;
+  double sme = 0;
+  //
+  for (int i=1;i<=nb;i++) {
+    sm += histo->GetBinContent(i);
+    cml->SetBinContent(i,sm);
+    if (!doErr) continue;
+    double ee = histo->GetBinError(i);
+    sme += ee*ee;
+    cml->SetBinError(i, sme>0 ? TMath::Sqrt(sme):0.);
+  }
+  return cml;
+}
+
+
+void wAv(double v1,double v2, double err1,double err2, double* wv,double *we)
+{
+  // weighted average
+  double sum=0,err=0;
+  if (err1<=0 || err2<=0) {
+    sum = v1+v2;
+  }
+  else {
+    sum = v1/(err1*err1) + v2/(err2*err2);
+    err = 1./(err1*err1) + 1./(err2*err2);
+    sum /= err;
+    err = 1./TMath::Sqrt(err);
+  }
+  printf("wAv %+e(%+e) | %+e(%+e) -> %+e +- %e\n",v1,err1,v2,err2,sum,err);
+  if (wv) *wv = sum;
+  if (we) *we = err;
+}
+
+
+void wSum(double v1,double v2, double err1,double err2, double* wv,double *we)
+{
+  // sum with errors
+  double sum=0,err=0;
+  sum = v1+v2;
+  if (err1>0 && err2>0) err = TMath::Sqrt(err1*err1 + err2*err2);
+  printf("wSum %+e(%+e) + %+e(%+e) -> %+e +- %e\n",v1,err1,v2,err2,sum,err);
+  if (wv) *wv = sum;
+  if (we) *we = err;
+}
diff --git a/PWG0/multVScentPbPb/SaveCanvas.h b/PWG0/multVScentPbPb/SaveCanvas.h
new file mode 100644 (file)
index 0000000..27cdfa4
--- /dev/null
@@ -0,0 +1,27 @@
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include <TCanvas.h>
+#include <TString.h>
+#include <TLatex.h>
+#include <TMath.h>
+#include <TPad.h>
+#include <TList.h>
+#include <TH1.h>
+#include <TGraph.h>
+#include <TF1.h>
+#include <TStyle.h>
+#include <TFrame.h>
+#include <TPaveStats.h>
+
+extern TH1* GetBaseHisto(TPad* pad=0);
+extern TFrame* GetFrame(TPad* pad=0);
+extern void SetStatPad(TH1* hst,float x1,float x2,float y1,float y2);
+extern TPaveStats* GetStatPad(TH1* hst);
+extern void SetHStyle(TH1* hst,int col=kRed,int mark=20,float mrsize=0.7);
+extern void SetGStyle(TGraph* hst,int col=kRed,int mark=20,float mrsize=0.7);
+extern TH1* Cumulate(TH1* histo, Bool_t doErr=kTRUE, const char* copyName=0);
+extern TLatex* AddLabel(const char*txt,float x=0.1,float y=0.9,int color=kBlack,float size=0.04);
+extern void SaveCanvas(TCanvas* canv,const char* path="canv",const Option_t *option="ecg");
+extern void wSum(double v1,double v2, double err1=0,double err2=0, double* wv=0,double *we=0);
+extern void wAv(double v1,double v2, double err1=0,double err2=0, double* wv=0,double *we=0);
+
+#endif