ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/LJMet/MultivariateAnalysis/root/plot_diff.C
(Generate patch)

Comparing UserCode/LJMet/MultivariateAnalysis/root/plot_diff.C (file contents):
Revision 1.1 by jindal, Wed Jan 28 04:16:29 2009 UTC vs.
Revision 1.2 by jindal, Mon Feb 9 22:09:48 2009 UTC

# Line 1 | Line 1
1   { gROOT->SetStyle("Plain");
2 <  gStyle->SetOptStat(0000);
2 >  gStyle->SetOptStat(00000);
3    gStyle->SetPalette(1);
4 <  int nvar =8 ;
4 >  const int nvar =14 ;
5    int color;
6 <  TString var[8]={"Mt","getHt3","ht2p","ktMinPrime","DphiJMET","aplanarity", "htPlusLepton", "dPhiLMet"};
7 <  TString  tmp = "Ntuple_goodglobalmuon.root";
6 >  TString var[nvar]={"Mt","ht","M123inv","centrality","sphericity","htPlusLepton","getHt3","ht2p","ktMinPrime","DphiJMET","aplanarity", "dPhiLMet","W_MT","metHtPlusLepton"};
7 >  TString lepton_ID = "eidRobustTight";
8 >  TString  tmp = "eidRobustTight.root";
9    TFile * f1 = new TFile(tmp);
10 < //tmp = "output/Comb2/TMVA.root";
11 < // TFile * f2 = new TFile(tmp);
12 <  TH1F *h1sig[nvar];
12 < //TH1F *h1bgd[nvar];
13 <  TH1F *h2sig[nvar];
10 >
11 >  TH1F *hnomsig[nvar];
12 >  TH1F *hrevsig[nvar];
13    TH1F *hdiff[nvar];
14 <  Double_t norm1sig, norm1bgd,norm2sig,norm2bgd;
15 <  
14 >  Double_t normnomsig, normrevsig;
15 >  Double_t N1[1500][20],N2[1500][20];
16    for(int j=0;j<nvar;j++){
17  
18 <    h1sig[j] = (TH1F*)f1->Get("h"+var[j]+"_rel_iso");
19 <   // h1bgd[j] = (TH1F*)f1->Get("Method_Likelihood/Likelihood/"+var[j]+"_bgd");
20 <   h2sig[j] = (TH1F*)f1->Get("h"+var[j]+"_rel_iso_rev");
21 <   tmp = var[j]+"_diff";
22 <   hdiff[j] = (TH1F*) h1sig[j]->Clone(tmp);
23 <   hdiff[j]->Reset();
24 <   //h2bgd[j] = (TH1F*)f2->Get("Method_Likelihood/Likelihood/"+var[j]+"_bgd");
25 <        int nbins1 = h1sig[j]->GetNbinsX();
26 <        Double_t N1[nbins1+1][nvar],N2[nbins1+1][nvar];
27 <        for(int i = 1; i < nbins1+1; i++){
28 <                N1[i][j] = h1sig[j]->GetBinContent(i);
29 <                N2[i][j] = h2sig[j]->GetBinContent(i);}
30 <        norm1sig  = h1sig[j]->Integral();
31 <        if(norm1sig > 0)
32 <          norm1sig = norm1sig;
33 <        else
34 <          norm1sig = 1;
18 >    hnomsig[j] = (TH1F*)f1->Get("h"+var[j]+"_nominal");
19 >    hrevsig[j] = (TH1F*)f1->Get("h"+var[j]+"_reversed");
20 >    tmp = var[j]+"_diff";
21 >    hdiff[j] = (TH1F*) hnomsig[j]->Clone(tmp);
22 >    hdiff[j]->Reset();
23 >
24 >    int nbinssig = hnomsig[j]->GetNbinsX()+1 ;
25 >    std::cout<< "var " << var[j] << "nbins " << nbinssig << std::endl;  
26 >
27 >
28 >    for(int i = 1; i < nbinssig; i++){
29 >      // std::cout<< var[j] << std::endl;
30 >      N1[i][j] = hnomsig[j]->GetBinContent(i);
31 >      N2[i][j] = hrevsig[j]->GetBinContent(i);
32 >    }
33 >    normnomsig  = hnomsig[j]->Integral();
34 >    if(normnomsig > 0)
35 >      normnomsig = normnomsig;
36 >    else
37 >      normnomsig = 1;
38            
39  
40 <        //norm1bgd  = 1./h1bgd[j]->Integral();
41 <        norm2sig  = h2sig[j]->Integral();
42 <        if(norm2sig > 0)
43 <          norm1sig = norm1sig;
44 <        else
45 <          norm2sig = 1;  
46 <        //norm2bgd  = 1./h2bgd[j]->Integral();
47 <        // norm1sig  = h1sig[j]->GetEntries();
46 <        //norm1bgd  = h1bgd[j]->GetEntries();
47 <        // norm2sig  = h2sig[j]->GetEntries();
48 <        //norm2bgd  = h2bgd[j]->GetEntries();
49 <
50 <        h1sig[j]->Scale(1./norm1sig);
51 <        // h1bgd[j]->Scale(1./norm1bgd);
52 <        h2sig[j]->Scale(1./norm2sig);
53 <        //h2bgd[j]->Scale(1./norm2bgd);
40 >    normrevsig  = hrevsig[j]->Integral();
41 >    if(normrevsig > 0)
42 >      normrevsig = normrevsig;
43 >    else
44 >      normrevsig = 1;  
45 >    
46 >    hnomsig[j]->Scale(1./normnomsig);
47 >    hrevsig[j]->Scale(1./normrevsig);
48    }
49   ///////////////////////  DRAWING /////////////////////////////
50  
51  
52  
53 < // h1sig[0]->SetTitle("template");
54 < h1sig[0]->GetYaxis()->SetTitle("Normalized");
55 < TCanvas *c1[8];
56 < TCanvas *c2[8];
57 < Double_t Sig1, Sig2, Diff, Err;
53 >    hnomsig[0]->GetYaxis()->SetTitle("Normalized");
54 >    TCanvas *c1[nvar];
55 >    TCanvas *c2[nvar];
56 >    Double_t SigNom, SigRev, Diff, Err;
57 >    Double_t maxnom,maxrev,range;
58 >    Int_t maxsig_bin,maxrev_bin;
59   for(j=0;j<nvar;j++){
60      leg = new TLegend(0.4,0.6,0.65,0.88);
61          c1[j] = new TCanvas(var[j],var[j],900,600);
62          tmp = var[j]+"_diff";
63          c2[j] = new TCanvas(tmp,tmp,900,600);
64          c1[j]->cd();
65 <        h1sig[j]->GetXaxis()->SetTitle(var[j]);
66 <        h1sig[j]->SetTitle(var[j]);
67 <        h1sig[j]->SetLineColor(4);
68 <                // h1bgd[j]->SetMarkerColor(5);
69 <        h2sig[j]->SetLineColor(6);
70 <                // h2bgd[j]->SetMarkerColor(7);  
71 <        h1sig[j]->Draw("HIST");    
72 <        //h1bgd[j]->Draw("HIST same");
73 <        h2sig[j]->Draw("HIST same");
74 <        //h2bgd[j]->Draw("HIST same");
75 <        tmp = "with relative isolation";
76 <        leg->AddEntry(h1sig[j],tmp,"L");
77 <        tmp = "relative isolation reversed";
78 <        leg->AddEntry(h2sig[j],tmp,"L");
65 >        hnomsig[j]->GetXaxis()->SetTitle(var[j]);
66 >        hnomsig[j]->SetTitle(var[j]);
67 >        hnomsig[j]->SetLineColor(1);
68 >        hrevsig[j]->SetLineColor(2);
69 >        maxsig_bin = hnomsig[j]->GetMaximumBin();
70 >        maxnom =  hnomsig[j]->GetBinContent(maxsig_bin);
71 >        maxrev_bin = hrevsig[j]->GetMaximumBin();
72 >        maxrev =  hrevsig[j]->GetBinContent(maxrev_bin);
73 >        if(maxnom>maxrev)
74 >          range  = maxnom+.1*maxnom;
75 >        else
76 >          range = maxrev+.1*maxrev;
77 >        hnomsig[j]->SetAxisRange(0,range,"Y");
78 >        hnomsig[j]->Draw("HIST");    
79 >        hrevsig[j]->Draw("HIST same");
80 >        tmp = lepton_ID;
81 >        leg->AddEntry(hnomsig[j],tmp,"L");
82 >        tmp = lepton_ID+" Reversed";
83 >        leg->AddEntry(hrevsig[j],tmp,"L");
84          leg->SetFillColor(0);
85          leg->SetLineColor(0);
86          leg->Draw();
87 <        tmp= var[j]+"_reliso.png";
87 >        tmp= var[j]+"_"+lepton_ID+".png";
88          c1[j]->Print(tmp);
89 <        int nbins = h1sig[j]->GetNbinsX();
89 >        int nbins = hnomsig[j]->GetNbinsX();
90          for(int i = 1; i < nbins+1; i++){
91 <                Sig1 = h1sig[j]->GetBinContent(i);
92 <                Sig2 = h2sig[j]->GetBinContent(i);
93 <                Diff = Sig1 - Sig2;
91 >                SigNom = hnomsig[j]->GetBinContent(i);
92 >                SigRev = hrevsig[j]->GetBinContent(i);
93 >                Diff = SigNom - SigRev;
94                  if( N1[i][j] >0 &&  N2[i][j] > 0)
95 <                        Err  =(1./ sqrt(N1[i][j]))*Sig1 + (1./ sqrt(N2[i][j]))*Sig2;
95 >                        Err  =(1./ sqrt(N1[i][j]))*SigNom + (1./ sqrt(N2[i][j]))*SigRev;
96                  else
97                          Err = 0;
98                  hdiff[j]->SetBinContent(i,Diff);
# Line 103 | Line 103 | for(j=0;j<nvar;j++){
103          hdiff[j]->SetXTitle(var[j]);
104          hdiff[j]->SetYTitle("difference");
105          hdiff[j]->Draw();
106 <        tmp= var[j]+"_reliso_diff.png";
106 >        tmp= var[j]+"_"+lepton_ID+".png";
107          
108          c2[j]->Print(tmp);
109  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines