13 for(Int_t i=0;i<nIter;i++){
14 sprintf(key,"histos_pass%d.root",i) ;
15 f[i] = TFile::Open(key) ;
16 hReM1[i] = (TH3F*)f[i]->Get("hMggDispM1") ;
17 sprintf(key,"hMggDispM1_iter%d",i) ;
18 hReM1[i]->SetName(key) ;
19 hMiM1[i] = (TH3F*)f[i]->Get("hMiMggDispM1") ;
20 sprintf(key,"hMiMggDispM1_iter%d",i) ;
21 hMiM1[i]->SetName(key) ;
23 hReM2[i] = (TH3F*)f[i]->Get("hMggDispM2") ;
24 sprintf(key,"hMggDispM2_iter%d",i) ;
25 hReM2[i]->SetName(key) ;
26 hMiM2[i] = (TH3F*)f[i]->Get("hMiMggDispM2") ;
27 sprintf(key,"hMiMggDispM2_iter%d",i) ;
28 hMiM2[i]->SetName(key) ;
30 hReM3[i] = (TH3F*)f[i]->Get("hMggDispM3") ;
31 sprintf(key,"hMggDispM3_iter%d",i) ;
32 hReM3[i]->SetName(key) ;
33 hMiM3[i] = (TH3F*)f[i]->Get("hMiMggDispM3") ;
34 sprintf(key,"hMiMggDispM3_iter%d",i) ;
35 hMiM3[i]->SetName(key) ;
38 TH1D * hW1 = new TH1D("WidthM1","Module 1",nIter,-0.5,nIter-0.5) ;
39 TH1D * hW2 = new TH1D("WidthM2","Module 1",nIter,-0.5,nIter-0.5) ;
40 TH1D * hW3 = new TH1D("WidthM3","Module 1",nIter,-0.5,nIter-0.5) ;
42 // TF1 * gs = new TF1("gs","[0]*exp(-(x-[1])*(x-[1])/2./[2]/[2])+[3]+[4]*x",0.,1.) ;
43 TF1 * gs = new TF1("gs","[0]*exp(-(x-[1])*(x-[1])/2./[2]/[2])+[3]",0.,1.) ;
44 TCanvas * c = new TCanvas("c","c") ;
48 for(Int_t i=0;i<nIter;i++){
49 TH1D * tmp = hReM1[i]->ProjectionZ("a") ;
50 TH1D * tmpMi = hMiM1[i]->ProjectionZ("b") ;
53 Double_t nMi=tmpMi->Integral(70,120) ;
54 Double_t nRe=tmp->Integral(70,120) ;
56 tmpMi->Scale(nRe/nMi) ;
58 gs->SetParameters(3500.,0.135,0.008,0.,0.) ;
59 // gs->SetParLimits(0,0.,1.e+6) ;
60 gs->SetParLimits(1,0.09,0.2) ;
61 gs->SetParLimits(2,0.003,0.015) ;
64 // tmp->Fit(gs,"q","",0.05,0.220) ;
65 tmp->GetXaxis()->SetRangeUser(0.,0.3) ;
66 tmp->SetXTitle("m_{#gamma#gamma} (GeV/c^{2})") ;
67 tmp->SetTitle("Module 2") ;
68 tmp->Fit(gs,"","",0.125,0.145) ;
69 hD[i]=(TH1D*)tmp->Clone(Form("Copy%d",i)) ;
70 // c->Update() ; if(getchar()=='q')return ;
72 // mass->SetBinContent(i,j,gs->GetParameter(1)) ;
73 // mass->SetBinError(i,j,gs->GetParError(1)) ;
74 hW1->SetBinContent(i+1,gs->GetParameter(2)) ;
75 hW1->SetBinError(i+1,gs->GetParError(2)) ;
79 tmp = hReM2[i]->ProjectionZ("a") ;
80 tmpMi = hMiM2[i]->ProjectionZ("b") ;
83 nMi=tmpMi->Integral(70,120) ;
84 nRe=tmp->Integral(70,120) ;
86 tmpMi->Scale(nRe/nMi) ;
88 gs->SetParameters(10000.,0.150,0.008,0.,0.) ;
89 // gs->SetParLimits(0,0.,100.) ;
90 gs->SetParLimits(1,0.09,0.2) ;
91 gs->SetParLimits(2,0.003,0.015) ;
93 tmp->Fit(gs,"q","",0.125,0.145) ;
94 // mass->SetBinContent(i,j,gs->GetParameter(1)) ;
95 // mass->SetBinError(i,j,gs->GetParError(1)) ;
96 hW2->SetBinContent(i+1,gs->GetParameter(2)) ;
97 hW2->SetBinError(i+1,gs->GetParError(2)) ;
101 tmp = hReM3[i]->ProjectionZ("a") ;
102 tmpMi = hMiM3[i]->ProjectionZ("b") ;
105 Double_t nMi=tmpMi->Integral(70,120) ;
106 Double_t nRe=tmp->Integral(70,120) ;
108 tmpMi->Scale(nRe/nMi) ;
109 tmp->Add(tmpMi,-1.) ;
110 gs->SetParameters(10000.,0.150,0.008,0.,0.) ;
111 // gs->SetParLimits(0,0.,100.) ;
112 gs->SetParLimits(1,0.09,0.2) ;
113 gs->SetParLimits(2,0.003,0.015) ;
115 // tmp->Fit(gs,"q","",0.05,0.220) ;
116 tmp->Fit(gs,"q","",0.125,0.145) ;
117 // mass->SetBinContent(i,j,gs->GetParameter(1)) ;
118 // mass->SetBinError(i,j,gs->GetParError(1)) ;
119 hW3->SetBinContent(i+1,gs->GetParameter(2)) ;
120 hW3->SetBinError(i+1,gs->GetParError(2)) ;
126 hW1->SetMarkerStyle(20) ;
127 hW1->SetMarkerColor(2) ;
128 hW2->SetMarkerStyle(21) ;
129 hW2->SetMarkerColor(4) ;
130 hW3->SetMarkerStyle(24) ;
131 hW3->SetMarkerColor(8) ;
133 hW1->SetXTitle("Iteration") ;
134 hW1->SetYTitle("#sigma (GeV/c^{2})") ;
139 TLegend * l = new TLegend(0.7,0.7,0.85,0.85) ;
140 l->AddEntry(hW3,"Module 2","p") ;
141 l->AddEntry(hW2,"Module 3","p") ;
142 l->AddEntry(hW1,"Module 4","p") ;
145 TCanvas * cMinv = new TCanvas("cMinv") ;
146 hD[0]->SetMarkerStyle(20) ;
147 hD[0]->SetMarkerSize(0.8) ;
149 for(Int_t i=1; i<nIter; i++){
150 hD[i]->SetMarkerStyle(20+i) ;
151 hD[i]->SetMarkerSize(0.8) ;
152 hD[i]->Draw("same") ;