ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//Obtain single particle efficiencies from output AliAnalysisTaskDiHadron (when ran over MC events and MC histograms filled)
//Author: Jason Glyndwr Ulery, ulery@uni-frankfurt.de



#ifndef __CINT__
#include <TF1.h>
#include <TF2.h>
#include "TSystem.h"
#include <iostream>
#include <TH1.h>
#include <TH2.h>
#include <TH3.h>
#include <TRandom.h>
#include <fstream>
#include "TList.h"
#include "TArrayF.h"
#endif

void SingleEff(int Cent){
  gROOT->Reset();
  gROOT->LoadMacro("Util9.C");
  Style(1);
  
  
  // char *EffFolder="2010-08-13/7Pythia_LHC10b5";
     char *EffFolder="2010-08-13/LHC10c6_900Pythia";

  char effName[100];
  sprintf(effName,"%s/julery_DiHadron.root",EffFolder);
  TFile *effFile=new TFile(effName);
  TList *effList=effFile->Get("julery_DiHadron");

  char name[100];
  sprintf(name,"fHistPtEff_C%d",Cent);
  TH1F *fHistPt=(TH1F*)effList->FindObject(name);
  sprintf(name,"fHistPtEff_C%d_MC",Cent);
  TH1F *fHistPtMC=(TH1F*)effList->FindObject(name);

  TH1F *fHistEff=(TH1F*)fHistPt->Clone();
  fHistEff->SetName("fHistEff");
  fHistEff->GetYaxis()->SetTitle("Efficiency+Contamination");
  fHistEff->SetTitle("");
  fHistEff->Divide(fHistPtMC);

  c1=new TCanvas("c1","",800,600);
  fHistEff->Draw();
  fHistEff->SetMaximum(1);
  fHistEff->SetMinimum(0);
  fHistEff->GetXaxis()->SetRange(0,100);
  //c1->SetLogx(1);
  //TF1 *fit1=new TF1("fit1","[0]+[1]*x+[2]*x**2+[3]*x**3+[4]*x**4+[5]*x**5",0,100);
  //fit1->SetParameters(0.8,0.001,0.001,0.001,0.001,0.001)
  fit2=new TF1("fit2","[0]",3,100);
  fit2->SetParameter(0,0.8);
    TF1 *fit3=new TF1("fit3","[0]/[1]*exp(-0.5*pow(x/[1],2))+[2]+[3]*x",0,3);
    fit3->SetParameters(0.1,0.1,1,0.1,0.1,0.1);
    fit3->SetParLimits(0,-2,0);
    fit3->SetLineColor(4);
  fHistEff->Fit(fit3,"r");
  fit2->SetLineColor(2);
  fHistEff->Fit(fit2,"r");
  fit3->Draw("same");
  sprintf(name,"%s/SingleEff1_%d.gif",EffFolder,Cent);
  c1->SaveAs(name);
   c2=new TCanvas("c2","",800,600);
  fHistEff->GetXaxis()->SetRange(0,30);
  fHistEff->Draw();
  fit2->Draw("same");
  fit3->Draw("same");
  sprintf(name,"%s/SingleEff2_%d.gif",EffFolder,Cent);
  c2->SaveAs(name);

  cout << fit3->GetParameter(0) << ", " << fit3->GetParameter(1) << ", " << fit3->GetParameter(2) << ", " << fit3->GetParameter(3) << endl;
  cout << fit2->GetParameter(0) << endl;

}
 SingleEff.C:1
 SingleEff.C:2
 SingleEff.C:3
 SingleEff.C:4
 SingleEff.C:5
 SingleEff.C:6
 SingleEff.C:7
 SingleEff.C:8
 SingleEff.C:9
 SingleEff.C:10
 SingleEff.C:11
 SingleEff.C:12
 SingleEff.C:13
 SingleEff.C:14
 SingleEff.C:15
 SingleEff.C:16
 SingleEff.C:17
 SingleEff.C:18
 SingleEff.C:19
 SingleEff.C:20
 SingleEff.C:21
 SingleEff.C:22
 SingleEff.C:23
 SingleEff.C:24
 SingleEff.C:25
 SingleEff.C:26
 SingleEff.C:27
 SingleEff.C:28
 SingleEff.C:29
 SingleEff.C:30
 SingleEff.C:31
 SingleEff.C:32
 SingleEff.C:33
 SingleEff.C:34
 SingleEff.C:35
 SingleEff.C:36
 SingleEff.C:37
 SingleEff.C:38
 SingleEff.C:39
 SingleEff.C:40
 SingleEff.C:41
 SingleEff.C:42
 SingleEff.C:43
 SingleEff.C:44
 SingleEff.C:45
 SingleEff.C:46
 SingleEff.C:47
 SingleEff.C:48
 SingleEff.C:49
 SingleEff.C:50
 SingleEff.C:51
 SingleEff.C:52
 SingleEff.C:53
 SingleEff.C:54
 SingleEff.C:55
 SingleEff.C:56
 SingleEff.C:57
 SingleEff.C:58
 SingleEff.C:59
 SingleEff.C:60
 SingleEff.C:61
 SingleEff.C:62
 SingleEff.C:63
 SingleEff.C:64
 SingleEff.C:65
 SingleEff.C:66
 SingleEff.C:67
 SingleEff.C:68
 SingleEff.C:69
 SingleEff.C:70
 SingleEff.C:71
 SingleEff.C:72
 SingleEff.C:73
 SingleEff.C:74
 SingleEff.C:75
 SingleEff.C:76
 SingleEff.C:77
 SingleEff.C:78
 SingleEff.C:79
 SingleEff.C:80
 SingleEff.C:81
 SingleEff.C:82
 SingleEff.C:83
 SingleEff.C:84
 SingleEff.C:85
 SingleEff.C:86
 SingleEff.C:87
 SingleEff.C:88
 SingleEff.C:89
 SingleEff.C:90
 SingleEff.C:91
 SingleEff.C:92