File indexing completed on 2023-03-17 10:40:30
0001 {
0002 gStyle->SetNdivisions(5);
0003 gStyle->SetCanvasBorderMode(0);
0004 gStyle->SetPadBorderMode(1);
0005 gStyle->SetOptTitle(1);
0006 gStyle->SetStatFont(42);
0007 gStyle->SetCanvasColor(10);
0008 gStyle->SetPadColor(0);
0009 gStyle->SetTitleFont(62,"xy");
0010 gStyle->SetLabelFont(62,"xy");
0011 gStyle->SetTitleFontSize(0.05);
0012 gStyle->SetTitleSize(0.043,"xy");
0013 gStyle->SetLabelSize(0.05,"xy");
0014 gStyle->SetHistFillStyle(1001);
0015 gStyle->SetHistFillColor(0);
0016 gStyle->SetHistLineStyle(1);
0017 gStyle->SetHistLineWidth(1);
0018 gStyle->SetHistLineColor(1);
0019 gStyle->SetTitleXOffset(1.1);
0020 gStyle->SetTitleYOffset(1.15);
0021 gStyle->SetOptStat(1110);
0022 gStyle->SetOptStat(kFALSE);
0023 gStyle->SetOptFit(0111);
0024 gStyle->SetStatH(0.1);
0025
0026 TCanvas *Canv = new TCanvas("c1","c1",129,17,926,703);
0027 Canv->SetBorderSize(2);
0028 Canv->SetFrameFillColor(0);
0029
0030 Canv->SetGrid(1,1);
0031 Canv->cd();
0032
0033 TFile f0("../../Z/MisalignmentIdeal.root");
0034 TTree *MyTree=Tracks;
0035
0036 TFile f1("Misalignment_SurveyLASOnlyScenario_refitter_zmumu_allmuSurveyLASCosmics.root");
0037 TTree *MyTree2=Tracks;
0038
0039 TFile f2("../../Z/Misalignment10.root");
0040 TTree *MyTree3=Tracks;
0041
0042 TFile f3("../../Z/Misalignment100.root");
0043 TTree *MyTree4=Tracks;
0044
0045
0046
0047 int nbin=15;
0048 float binwidth=20./nbin;
0049 float binstart=0.,binstop=0.,binbias=7.;
0050 char cutname[128];
0051 float mean[nbin],sigma[nbin],cost[nbin],entry[nbin],meanorig[nbin],etabin[nbin],erretabin[nbin],chiq[nbin],ndf[nbin],rms[nbin],errsigma[nbin];
0052
0053 for (int i=0;i<nbin;i++){
0054 meanorig[i]=0.;
0055 mean[i]=0.;
0056 sigma[i]=0.;
0057 cost[i]=0.;
0058 entry[i]=0.;
0059 etabin[i]=0.;
0060 chiq[i]=0.;
0061 ndf[i]=0.;
0062 rms[i]=0.;
0063 errsigma[i]=0.;
0064 }
0065
0066
0067 cout << "binwidth is " << binwidth << endl;
0068
0069
0070
0071
0072
0073
0074
0075 for (int i=1;i<=nbin;i++){
0076 binstart=binwidth*(i-1)+binbias;
0077 binstop = binwidth*i+binbias;
0078 etabin[i-1]= (binstop-binstart)/2.+binstart;
0079 erretabin[i-1]=(binstop-binstart)/2.;
0080 cout << "binstart=" << binstart << " binstop is=" << binstop << " hit is " << etabin[i-1] << endl;
0081 sprintf(cutname,"recnhit>=%f && recnhit<%f && recnhit <100 && eff==1 && TrackID==13",binstart, binstop);
0082 cout << "cutname is " << cutname <<endl;
0083 TH1F *resd0= new TH1F("d0","d0",500,-0.2,0.2);
0084 MyTree->Project("d0","(respt/pt)",cutname);
0085 resd0->Fit("gaus");
0086 meanorig[i-1]=1.*resd0->GetMean();
0087 rms[i-1]=1.*resd0->GetRMS();
0088 mean[i-1]=1.*gaus->GetParameter(1);
0089 sigma[i-1]=1.*gaus->GetParameter(2);
0090 errsigma[i-1]=1.*gaus->GetParError(2);
0091 entry[i-1]=resd0->GetEntries();
0092
0093 delete resd0;
0094 }
0095
0096 for (int i=1;i<nbin;i++){
0097 binstart=binwidth*(i-1)+binbias;
0098 binstop = binwidth*(i+1)+binbias;
0099 cout << "binstart= " << binstart << " binstop= " << binstop << endl;
0100 cout << " etabin=" << etabin[i] << " Vector mean/sigma are "<< mean[i] << " +/- " << sigma[i] << endl;
0101 cout << " ErrOnSigma =" << errsigma[i] << " Mean/RMS orig =" << meanorig[i] << " +/-" << rms[i] << endl;
0102 }
0103
0104 hframe = new TH2F("hframe","SigmapT/pT_gaus",15,7.,20.,100,-0.2,1.5);
0105 hframe->SetTitle("#sigma(p_{T})/p_{T} vs n rec. hits ; #mu from CSA06 Z->#mu#mu");
0106 hframe->SetXTitle("n rec. hits");
0107 hframe->SetYTitle("#sigma(p_{T})/p_{T}");
0108 hframe->Draw();
0109 gr = new TGraphErrors(25,etabin,sigma,erretabin,errsigma);
0110 gr->SetMarkerColor(2);
0111 gr->SetMarkerStyle(20);
0112 gr->Draw("P");
0113 Canv->Update();
0114
0115 Canv->WaitPrimitive();
0116
0117
0118
0119
0120 for (int i=1;i<=nbin;i++){
0121 binstart=binwidth*(i-1)+binbias;
0122 binstop = binwidth*i+binbias;
0123 etabin[i-1]= (binstop-binstart)/2.+binstart;
0124 erretabin[i-1]=(binstop-binstart)/2.;
0125 cout << "binstart=" << binstart << " binstop is=" << binstop << " eta is " << etabin[i-1] << endl;
0126 sprintf(cutname,"recnhit>=%f && recnhit<%f && recnhit <100 && eff==1 && TrackID==13",binstart, binstop);
0127 cout << "cutname is " << cutname <<endl;
0128 TH1F *resd0= new TH1F("d0","d0",500,-0.2,0.2);
0129 MyTree2->Project("d0","(respt/pt)",cutname);
0130 resd0->Fit("gaus");
0131 meanorig[i-1]=1.*resd0->GetMean();
0132 rms[i-1]=1.*resd0->GetRMS();
0133 mean[i-1]=1.*gaus->GetParameter(1);
0134 sigma[i-1]=1.*gaus->GetParameter(2);
0135 errsigma[i-1]=1.*gaus->GetParError(2);
0136 entry[i-1]=resd0->GetEntries();
0137
0138 delete resd0;
0139 }
0140
0141 for (int i=1;i<nbin;i++){
0142 binstart=binwidth*(i-1)+binbias;
0143 binstop = binwidth*(i+1)+binbias;
0144 cout << "binstart= " << binstart << " binstop= " << binstop << endl;
0145 cout << " etabin=" << etabin[i] << " Vector mean/sigma are "<< mean[i] << " +/- " << sigma[i] << endl;
0146 cout << " ErrOnSigma =" << errsigma[i] << " Mean/RMS orig =" << meanorig[i] << " +/-" << rms[i] << endl;
0147 }
0148
0149 hframe_scen1 = new TH2F("hframe","SigmapT/pT_gaus_scen1",15,7.,20.,100,-0.2,1.5);
0150 hframe_scen1->SetTitle("#sigma(p_{T})/p_{T} vs n rec. hits; #mu from CSA06 Z->#mu#mu");
0151 hframe_scen1->SetXTitle("n rec. hits");
0152 hframe_scen1->SetYTitle("#sigma(p_{T})/p_{T}");
0153 hframe_scen1->Draw();
0154 gr_scen1 = new TGraphErrors(25,etabin,sigma,erretabin,errsigma);
0155 gr_scen1->SetMarkerColor(3);
0156 gr_scen1->SetMarkerStyle(21);
0157 gr_scen1->Draw("P");
0158 Canv->Update();
0159
0160
0161
0162
0163
0164
0165
0166 for (int i=1;i<=nbin;i++){
0167 binstart=binwidth*(i-1)+binbias;
0168 binstop = binwidth*i+binbias+binbias;
0169 etabin[i-1]= (binstop-binstart)/2.+binstart;
0170 erretabin[i-1]=(binstop-binstart)/2.;
0171 cout << "binstart=" << binstart << " binstop is=" << binstop << " eta is " << etabin[i-1] << endl;
0172 sprintf(cutname,"recnhit>=%f && recnhit<%f && recnhit <100 && eff==1 && TrackID==13",binstart, binstop);
0173 cout << "cutname is " << cutname <<endl;
0174 TH1F *resd0= new TH1F("d0","d0",500,-0.2,0.2);
0175 MyTree3->Project("d0","(respt/pt)",cutname);
0176 resd0->Fit("gaus");
0177 meanorig[i-1]=1.*resd0->GetMean();
0178 rms[i-1]=1.*resd0->GetRMS();
0179 cost[i-1]=gaus->GetParameter(0);
0180 mean[i-1]=1*gaus->GetParameter(1);
0181 sigma[i-1]=1*gaus->GetParameter(2);
0182 errsigma[i-1]=1*gaus->GetParError(2);
0183 entry[i-1]=resd0->GetEntries();
0184
0185 delete resd0;
0186 }
0187
0188 for (int i=1;i<nbin;i++){
0189 binstart=binwidth*(i-1)+binbias;
0190 binstop = binwidth*(i+1)+binbias;
0191 cout << "binstart= " << binstart << " binstop= " << binstop << endl;
0192 cout << " etabin=" << etabin[i] << " Vector mean/sigma are "<< mean[i] << " +/- " << sigma[i] << endl;
0193 cout << " ErrOnSigma =" << errsigma[i] << " Mean/RMS orig =" << meanorig[i] << " +/-" << rms[i] << endl;
0194 }
0195
0196 hframe_scen2 = new TH2F("hframe_scen2","SigmapT/pT_gaus_scen2",15,7.,20.,100,-0.2,1.5);
0197 hframe_scen2->SetTitle("#sigma(p_{T})/p_{T} vs n rec. hits; #mu from CSA06 Z->#mu#mu ");
0198 hframe_scen2->SetXTitle("n rec.hits");
0199 hframe_scen2->SetYTitle("#sigma(p_{T})/p_{T}");
0200 hframe_scen2->Draw();
0201 gr_scen2 = new TGraphErrors(25,etabin,sigma,erretabin,errsigma);
0202 gr_scen2->SetMarkerColor(4);
0203 gr_scen2->SetMarkerStyle(22);
0204 gr_scen2->Draw("P");
0205 Canv->Update();
0206
0207
0208
0209
0210
0211
0212
0213 for (int i=1;i<=nbin;i++){
0214 binstart=binwidth*(i-1)+binbias;
0215 binstop = binwidth*i+binbias+binbias;
0216 etabin[i-1]= (binstop-binstart)/2.+binstart;
0217 erretabin[i-1]=(binstop-binstart)/2.;
0218 cout << "binstart=" << binstart << " binstop is=" << binstop << " eta is " << etabin[i-1] << endl;
0219 sprintf(cutname,"recnhit>=%f && recnhit<%f && recnhit <100 && eff==1 && TrackID==13",binstart, binstop);
0220 cout << "cutname is " << cutname <<endl;
0221 TH1F *resd0= new TH1F("d0","d0",500,-0.2,0.2);
0222 MyTree4->Project("d0","(respt/pt)",cutname);
0223 resd0->Fit("gaus");
0224 meanorig[i-1]=1.*resd0->GetMean();
0225 rms[i-1]=1.*resd0->GetRMS();
0226 cost[i-1]=gaus->GetParameter(0);
0227 mean[i-1]=1*gaus->GetParameter(1);
0228 sigma[i-1]=1*gaus->GetParameter(2);
0229 errsigma[i-1]=1*gaus->GetParError(2);
0230 entry[i-1]=resd0->GetEntries();
0231
0232 delete resd0;
0233 }
0234
0235 for (int i=1;i<nbin;i++){
0236 binstart=binwidth*(i-1)+binbias;
0237 binstop = binwidth*(i+1)+binbias;
0238 cout << "binstart= " << binstart << " binstop= " << binstop << endl;
0239 cout << " etabin=" << etabin[i] << " Vector mean/sigma are "<< mean[i] << " +/- " << sigma[i] << endl;
0240 cout << " ErrOnSigma =" << errsigma[i] << " Mean/RMS orig =" << meanorig[i] << " +/-" << rms[i] << endl;
0241 }
0242
0243 hframe_scen3 = new TH2F("hframe_scen3","SigmapT/pT_gaus_scen3",15,7.,20.,100,-0.2,1.5);
0244 hframe_scen3->SetTitle("#sigma(p_{T})/p_{T} vs n rec. hits; #mu from CSA06 Z->#mu#mu ");
0245 hframe_scen3->SetXTitle("n rec.hits");
0246 hframe_scen3->SetYTitle("#sigma(p_{T})/p_{T}");
0247 hframe_scen3->Draw();
0248 gr_scen3 = new TGraphErrors(25,etabin,sigma,erretabin,errsigma);
0249 gr_scen3->SetMarkerColor(5);
0250 gr_scen3->SetMarkerStyle(23);
0251 gr_scen3->Draw("P");
0252 Canv->Update();
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276
0277
0278
0279
0280
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301 ;
0302
0303
0304
0305 gr->Draw("P");
0306 gr_scen1->Draw("Psame");
0307 gr_scen2->Draw("Psame");
0308 gr_scen3->Draw("Psame");
0309
0310 TLegend *leg1 = new TLegend(0.1,0.76,0.67,0.9);
0311 leg1->SetTextAlign(32);
0312 leg1->SetTextColor(1);
0313 leg1->SetTextSize(0.03);
0314
0315
0316 leg1->AddEntry(gr,"No Misalignment", "P");
0317 leg1->AddEntry(gr_scen1,"SurveyLASCosmics Misalignment", "P");
0318 leg1->AddEntry(gr_scen2,"10 pb-1 Misalignment", "P");
0319 leg1->AddEntry(gr_scen3,"100 pb-1 Misalignment", "P");
0320 leg1->Draw();
0321
0322 Canv->Update();
0323 Canv->SaveAs("SigmapT_nrechits_gaus_CMSSW_1_3_4_lat.eps");
0324 Canv->SaveAs("SigmapT_nrechits_gaus_CMSSW_1_3_4_lat.gif");
0325
0326 delete Canv;
0327 gROOT->Reset();
0328 gROOT->Clear();
0329
0330
0331 }
0332