ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/CmsHi/Utilities/macros/PartonBiasedCentrality.C
Revision: 1.1
Committed: Thu Aug 13 17:35:35 2009 UTC (15 years, 8 months ago) by yilmaz
Content type: text/plain
Branch: MAIN
CVS Tags: V00-01-02, V00-01-01, HEAD
Log Message:
Module, cfg and macro for biased impact parameter generation

File Contents

# Content
1 #include <iostream>
2 #include <vector>
3 #include "TFile.h"
4 #include "TTree.h"
5 #include "TChain.h"
6
7 #include "TH1D.h"
8 #include "TH2D.h"
9 #include "TCanvas.h"
10 #include "TProfile.h"
11 #include "TNtuple.h"
12 #include "TLegend.h"
13 #include "TF1.h"
14
15 #include "TGraphAsymmErrors.h"
16 using namespace std;
17
18 void PartonBiasedCentrality(double pttrig = 100, int etabin = 2, int nBins = 40){
19
20 TFile* inf = new TFile("hydjet_b.root");
21
22 TNtuple * nt = dynamic_cast<TNtuple*>(inf->Get("ana/nt"));
23
24 TH1D* hB = new TH1D("hB",";b[fm];events",nBins,0,20);
25
26 TH1D* hJet = new TH1D(Form("hJet%d",(int)pttrig),";b[fm];events",nBins,0,20);
27
28 TH1D* hJetWeight = new TH1D(Form("hJetWeight%d",(int)pttrig),";b[fm];events",nBins,0,20);
29 TH1D* hJetTrigger = new TH1D(Form("hJetTrigger%d",(int)pttrig),";b[fm];events",nBins,0,20);
30
31 TH1D* hNhard = new TProfile("hNhard",";b[fm];N_{hard}",nBins,0,20);
32
33 TF1 *fJetWeight = new TF1(Form("fJetWeight%d",(int)pttrig),"gaus",0,20);
34 TF1 *fJetTrigger = new TF1(Form("fJetTrigger%d",(int)pttrig),"gaus",0,20);
35
36 hJet->SetLineColor(4);
37 hJetWeight->SetLineColor(4);
38 hJetTrigger->SetLineColor(4);
39 fJetWeight->SetLineColor(4);
40 fJetTrigger->SetLineColor(4);
41
42 nt->Draw("b>>hB","");
43 nt->Draw("nhard:b>>hNhard","","prof");
44 nt->Draw(Form("b>>%s",hJet->GetName()),Form("parton%d > %f",etabin,pttrig));
45
46 hJetWeight->Add(hJet);
47 hJetWeight->Divide(hB);
48 hJetTrigger->Add(hJetWeight);
49
50 int binmax = hJet->GetMaximumBin();
51 int binmax2 = hJetWeight->GetMaximumBin();
52 double jetWeightMax = hJetWeight->GetMaximum();
53
54 hJet->Scale(hB->GetBinContent(binmax)/hJet->GetBinContent(binmax));
55 hJetTrigger->Scale(hNhard->GetBinContent(binmax)/hJetTrigger->GetBinContent(binmax));
56 hJetWeight->Scale(1./jetWeightMax);
57
58 hJetWeight->Fit(fJetWeight);
59 hJetTrigger->Fit(fJetTrigger);
60
61 jetWeightMax = fJetWeight->GetMaximum();
62 hJetWeight->Scale(1./jetWeightMax);
63 hJetWeight->Fit(fJetWeight);
64
65 // cout<<"Max 1 : "<<binmax<<" Max 2 : "<<binmax2<<endl;
66
67 TLegend* leg1 = new TLegend(0.13,0.68,0.44,0.88,NULL,"brNDC");
68 leg1->SetFillColor(0);
69 leg1->SetTextSize(0.028);
70 leg1->SetBorderSize(0);
71 leg1->AddEntry(hB,Form("Min Bias b distribution"),"l");
72 leg1->AddEntry(hJet,Form("Jet Biased b distribution"),"l");
73 leg1->AddEntry(hB,Form("(Arbitrary Normalization)"),"");
74
75 TLegend* leg2 = new TLegend(0.46,0.68,0.77,0.88,NULL,"brNDC");
76 leg2->SetFillColor(0);
77 leg2->SetTextSize(0.028);
78 leg2->SetBorderSize(0);
79 leg2->AddEntry(hNhard,Form("N_{hard} vs b"),"l");
80 leg2->AddEntry(hJetTrigger,Form("p(b)^{Jet Bias} / p(b)^{Min Bias}"),"l");
81 leg2->AddEntry(hNhard,Form("(Arbitrary Normalization)"),"");
82
83
84 TCanvas* c1 = new TCanvas("c1","c1",400,400);
85 hB->Draw();
86 hJet->Draw("same");
87 leg1->Draw();
88 c1->Print(Form("impact_parameter_pt%d_nbins%d.gif",(int)pttrig,nBins));
89
90 TCanvas* c2 = new TCanvas("c2","c2",400,400);
91 hNhard->Draw("hist");
92 hJetTrigger->Draw("same");
93 leg2->Draw();
94 c2->Print(Form("jet_bias_nhard_pt%d_nbins%d.gif",(int)pttrig,nBins));
95
96
97 TCanvas* c3 = new TCanvas("c3","c3",400,400);
98 hJetWeight->Draw("");
99 c3->Print(Form("jet_bias_pt%d_nbins%d.gif",(int)pttrig,nBins));
100
101
102 // Wrong, it also scales with f(b)
103 // double eff = hJetWeight->Integral()/hJetWeight->GetNbinsX();
104
105 double eff = hJet->Integral()/hB->Integral();
106
107 // Report parameters
108
109 cout<<"__________________________________"<<endl;
110
111 cout<<"Using the Fit Function : "<<endl;
112 cout<<fJetWeight->GetExpFormula()<<endl;
113 cout<<"__________________________________"<<endl;
114
115 cout<<"The parameters of the fit are : "<<endl;
116
117 for(int ip = 0; ip < fJetWeight->GetNpar(); ++ip){
118 cout<<fJetWeight->GetParameter(ip)<<",";
119 }
120
121 cout<<endl;
122 cout<<"__________________________________"<<endl;
123
124 cout<<"Expected Filter Efficiency : "<<endl;
125 cout<<" "<<eff<<endl;
126 cout<<endl;
127 cout<<"__________________________________"<<endl;
128
129
130
131
132 }
133