ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Hammad/macros/CompareEfficiencyPlot.h
Revision: 1.1
Committed: Mon Aug 31 11:53:54 2009 UTC (15 years, 8 months ago) by ghammad
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Error occurred while calculating annotation data.
Log Message:
personal code : first version

File Contents

# Content
1 #include "/home/gregory/Analysis/TtSemiLeptonic/tdrstyle.C"
2 #include "map.h"
3
4 void CompareEfficiencyPlot(){
5
6 //using namespace std;
7
8 //
9 // load framework libraries
10 //
11 //gSystem->Load( "libFWCoreFWLite" );
12 //AutoLibraryLoader::enable();
13 //
14 // Set P-TDR plots style
15 //
16
17 setTDRStyle();
18
19 TFile *InputFile_0 = TFile::Open("Plots/rootfiles/multijets_EvtSelect_NonIso_VetoIso_4jetsPt30_JetComb_MediumBtagging_eff.root");
20 TFile *InputFile_1 = TFile::Open("Plots/rootfiles/allprocesses_EvtSelect_NonIso_VetoIso_4jetsPt30_JetComb_MediumBtagging_eff.root");
21
22 TString ControlHistoFile = "allprocesses_EvtSelect_NonIso_VetoIso_4jetsPt30_JetComb_MediumBtagging_compeff.ps";
23
24 TFile *OutputFile = new TFile("allprocesses_EvtSelect_NonIso_VetoIso_4jetsPt30_JetComb_MediumBtagging_compeff.root","RECREATE");
25
26 const int NbOfObs = 19;
27
28 TString ObsName[NbOfObs]={"MuonPt","HT","HTall","CaloIso","TrackIso","RelCaloIso","RelTrackIso","RelIso","d0Sig","MT","PtRel","DRMuJet","Njets","MuonEta","Nbjets","Mqq","EtaLeadJet","Chi2","LeptMT"};
29
30 std::cout<<"Initialization done"<<std::endl;
31
32 // --------------------------------------------------------------
33 // Pointers to histograms
34 // --------------------------------------------------------------
35
36 TString ObsToGet = "";
37 TString ObsToGet_EffX = "";
38 TString ObsToGet_EffY = "";
39 Int_t Index = 0;
40
41 TH1F *hHistoEff_X[NbOfObs*(NbOfObs-1)/2][2];
42 TH1F *hHistoEff_Y[NbOfObs*(NbOfObs-1)/2][2];
43
44 Double_t Eff_X = 0;
45
46 OutputFile->cd();
47
48 TCanvas c("dummy","",1);
49 c.Print(ControlHistoFile + "[");
50 TLegend *leg0 = new TLegend(0.65,0.78,0.93,0.9);
51
52 for(Int_t i = 0; i<NbOfObs ; i++)
53 {
54 for(Int_t j = i+1; j<NbOfObs ; j++)
55 {
56 ObsToGet = "Obs_"; ObsToGet += ObsName[i]; ObsToGet +="_vs_Obs_"; ObsToGet += ObsName[j];
57 ObsToGet_EffX = ObsToGet; ObsToGet_EffX += "_EffX";
58 ObsToGet_EffY = ObsToGet; ObsToGet_EffY += "_EffY";
59 cout<<ObsToGet<<endl;
60
61 ////////////////// Efficiency along the X axis /////////////////////////////
62 hHistoEff_X[Index][0] = (TH1F *) InputFile_0->Get(ObsToGet_EffX);
63 hHistoEff_X[Index][1] = (TH1F *) InputFile_1->Get(ObsToGet_EffX);
64
65 ////////////////// Efficiency along the Y axis /////////////////////////////
66 hHistoEff_Y[Index][0] = (TH1F *) InputFile_0->Get(ObsToGet_EffY);
67 hHistoEff_Y[Index][1] = (TH1F *) InputFile_1->Get(ObsToGet_EffY);
68
69
70 hHistoEff_X[Index][0]->SetMarkerColor(kBlack);
71 hHistoEff_X[Index][0]->SetMarkerStyle(4);
72 leg0->AddEntry(hHistoEff_X[Index][0],"Multi-jets","p");
73 hHistoEff_X[Index][0]->Draw();
74 hHistoEff_X[Index][1]->SetMarkerColor(kRed);
75 hHistoEff_X[Index][1]->SetMarkerStyle(23);
76 leg0->AddEntry(hHistoEff_X[Index][1],"All processes","p");
77 hHistoEff_X[Index][1]->Draw("same");
78 leg0->Draw("same");
79
80 c.Write(ObsToGet_EffX);
81 c.Print(ControlHistoFile);
82
83 hHistoEff_Y[Index][0]->SetMarkerColor(kBlack);
84 hHistoEff_Y[Index][0]->SetMarkerStyle(4);
85 //leg0->AddEntry(hHistoEff_Y[Index][0],"Multi-jets","p");
86 hHistoEff_Y[Index][0]->Draw();
87 hHistoEff_Y[Index][1]->SetMarkerColor(kRed);
88 hHistoEff_Y[Index][1]->SetMarkerStyle(23);
89 //leg0->AddEntry(hHistoEff_Y[Index][1],"All processes","p");
90 hHistoEff_Y[Index][1]->Draw("same");
91 leg0->Draw("same");
92
93 c.Write(ObsToGet_EffY);
94 c.Print(ControlHistoFile);
95
96 Index++;
97 leg0->Clear();
98 }
99 }
100
101 //--------------------------------------------------------------------------------------------------------------------------------------------
102 //--------------------------------------------------------------------------------------------------------------------------------------------
103 //--------------------------------------------------------------------------------------------------------------------------------------------
104
105 OutputFile->Close();
106 c.Print(ControlHistoFile + "]");
107 gROOT->ProcessLine(".q");
108
109 }
110
111 Double_t EffError(Double_t S, Double_t Total)
112 {
113 Double_t Eff = S/Total;
114 return (sqrt(S*(1-Eff))/Total);
115 }
116
117