예제 #1
0
 Toolbox (IFrameWindow *f) :                                                                                                                       
         ISetCanvas (10, f, f),                                                                                                                    
         // System-Iconen werden benutzt                                                                                                           
         Frage (10, this,                                                                                                                          
                 ISystemPointerHandle                                                                                                              
                        (ISystemPointerHandle::question)),                                                                                         
         Antwort (20, this,                                                                                                                        
                 ISystemPointerHandle                                                                                                              
                        (ISystemPointerHandle::information))                                                                                       
 // einstellungen des Layouts                                                                                                                      
 { setMargin (ISize ()); setPad (ISize (3, 0)); }                                                                                                  
void PlotPASFigFourAllSysErrorV2(bool save=false){

   bool lowpT = false;
   bool atlas = false;

   float pt_min, pt_max;
   float ymin, ymax;
   float ymin_r, ymax_r;

   //57.38
   //double sigma_nsd = 57.38;
   //double sigma_nsd = 71.3;
   //double sigma_nsd = 57.38; // M6RR
   double sigma_nsd =  56.47; // M6RR + PR9
   

   if(lowpT){
      pt_min = 0.5, pt_max = 7;
      ymin = 6E-6, ymax = 5E+1;
      ymin_r = 0.7, ymax_r = 1.3;
   }else{
     //pt_min = 0.4, pt_max = 365;
     pt_min = 0.4, pt_max = 220; 
      ymin = 2E-18, ymax = 5E+1;
      //ymin_r = 0.24, ymax_r = 1.56;
      ymin_r = 0.44, ymax_r = 1.56;
   }
   
   setSysErrorFunction();
   
   // file loading -----------------------------------------
   file1 = (TFile*) loadFile(file1,
			     "./../rootOutput_postApp_3rd/feb072011/MergedAll_MBproc0710_Jet15Uproc0111_Jet50Uproc0111_eta2.4_feb07011_V2.root");
			     //"./../rootOutput_postApp_3rd/feb072011/MergedAll_MBproc0710_Jet15Uproc0111_Jet50Uproc0111_eta1.0_feb07011_V2.root"); 
   //"./../rootOutput_postApp_3rd/feb072011/MergedAll_MBproc0710_Jet15Uproc0111_Jet50Uproc0111_eta2.4_feb07011_V2.root");
			     //"./../rootOutput_postApp_3rd/feb072011/MergedAll_MBproc0710_Jet15Uproc0111_Jet50Uproc0111_eta1.0_feb07011.root");
   //"./../rootOutput_postApp_2nd/jan122011/MergedAll_MBproc0710_Jet15Uproc0111_Jet50Uproc0111_eta2.4_jan122011.root");
			     //"./../rootOutput_postApp_2nd/dec222010/MergedAll_MBproc0710_Jet15Uproc0710_Jet50Uproc1022_eta2.4_dec222010_scen_v2.root");
			     //"./../rootOutput_postApp_2nd/dec222010/MergedAll_MBproc0710_Jet15Uproc0710_Jet50Uproc1022_eta2.4_dec222010.root");
			     //"./../rootOutput_postApp_2nd/dec222010/MergedAll_MBproc0710_Jet15Uproc0710_Jet50Uproc1022_eta1.0_dec222010.root");
			     //"./../rootOutput_postApp_2nd/dec172010/MergedAll_MBproc0710_Jet15Uproc0710_Jet50Uproc1022_eta1.0_dec172010.root");
			     //"../corrections/rootOutput_aug3/CORR_TEST1_MB-C10-PR9-M6RR-JTMskim_Merged_0to2.4_proc0710.root"); // this has a shorter name because it's merged files
			     //"./rootOutput/CORR_All_Merged_witScale.root");
   
   hdndpt1 = (TH1D*) file1->Get("corrTypeTwo/hInvCorrTwoLev2R");
   TH1D *hdndpt1_temp = 0;
   hdndpt1_temp = (TH1D*) hdndpt1->Clone("hdndpt1_temp");
   hdndpt1_temp = (TH1D*) resetSysStatError(hdndpt1_temp);
   tasydndpt1 =  (TGraphAsymmErrors*) TGraphAsyErrIt(hdndpt1_temp);
   //tdndpt1 = (TGraphErrors*) TgraphIt(hdndpt1_temp, true);
   //tdndpt1 = (TGraphErrors*) file1->Get("corrTypeTwo/tInvCorrTwoLev2R");

   if(hdndpt1==0) {
      Error("[HistLoading]","could not get histogram");
      return;
   }

   // D6T
   file2 = (TFile*) loadFile(file2,
     "./../rootOutput_postApp_2nd/dec222010_gen/GEN_TrkHistGEN_7TeV_dec14_qcdNSD_D6T_Pt0to20_eta_0.0to2.4_jet_0.0to2400.0_preTrackAna_varBin1_rebin4.root");
     //"./../rootOutput_postApp_2nd/dec222010_gen/GEN_TrkHistGEN_7TeV_dec14_qcdNSD_D6T_Pt0to20_eta_0.0to1.0_jet_0.0to2400.0_preTrackAna_varBin1_rebin4.root");
			     //"../corrections//rootOutput/GEN_TrkHistGEN_july28_d6tv2_qcdPt0to20V2_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
                             //"./rootOutput/GEN_TrkHistGEN_july19_qcdPt0to15_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
			     
   hdndpt2 = (TH1D*) file2->Get("corrTypeTwoGEN/hInvCorrR");
   tdndpt2 = (TGraphErrors*) file2->Get("corrTypeTwoGEN/tInvCorr");
   if(hdndpt2==0 || tdndpt2==0) {
     Error("[HistLoading]","could not get histogram");
     return;
   }

   // P0
   file3 = (TFile*) loadFile(file3,
    "./../rootOutput_postApp_2nd/dec222010_gen/GEN_TrkHistGEN_7TeV_dec14_qcdNSD_P0_Pt0to20_eta_0.0to2.4_jet_0.0to2400.0_preTrackAna_varBin1_rebin4.root");
   //"./../rootOutput_postApp_2nd/dec222010_gen/GEN_TrkHistGEN_7TeV_dec14_qcdNSD_P0_Pt0to20_eta_0.0to1.0_jet_0.0to2400.0_preTrackAna_varBin1_rebin4.root");
			     //"../corrections/rootOutput/GEN_TrkHistGEN_july28_p0_qcdPt0to20V2_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
			     //"./rootOutput/GEN_TrkHistGEN_july19_p0_qcdPt0to15_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
			     //"./rootOutput/GEN_TrkHistGEN_july19_p0v2_qcdPt0to15V2_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
			     //"./rootOutput/GEN_TrkHistGEN_july19_p0v3_qcdPt0to15_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");

   hdndpt3 = (TH1D*) file3->Get("corrTypeTwoGEN/hInvCorrR");
   tdndpt3 = (TGraphErrors*) file3->Get("corrTypeTwoGEN/tInvCorr");
   if(hdndpt3==0 || tdndpt3==0) {
     Error("[HistLoading]","could not get histogram");
     return;
   }

   // PYTHIA 8
   file4 = (TFile*) loadFile(file4,
	  "./../rootOutput_postApp_2nd/dec222010_gen/GEN_TrkHistGEN_7TeV_dec14_qcdNSD_PY8_Pt0to30_eta_0.0to2.4_jet_0.0to2400.0_preTrackAna_varBin1_rebin4.root");
   //"../corrections/rootOutput/GEN_TrkHistGEN_july28_py8v3_qcdPt0to20V3_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
   //"./rootOutput/GEN_TrkHistGEN_july28_proq20_qcdPt0to20V2_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
   //"./rootOutput/GEN_TrkHistGEN_july19_atlas_qcdPt0to15_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");

   hdndpt4 = (TH1D*) file4->Get("corrTypeTwoGEN/hInvCorrR");
   tdndpt4 = (TGraphErrors*) file4->Get("corrTypeTwoGEN/tInvCorr");
   if(hdndpt4==0 || tdndpt4==0) {
     Error("[HistLoading]","could not get histogram");
     return;
   }

   // X1 -> ProQ 20
   file5 = (TFile*) loadFile(file5,
      "./../rootOutput_postApp_2nd/dec222010_gen/GEN_TrkHistGEN_7TeV_dec14_qcdNSD_ProQ20_Pt0to20_eta_0.0to2.4_jet_0.0to2400.0_preTrackAna_varBin1_rebin4.root");
			     //"../corrections/rootOutput/GEN_TrkHistGEN_july28_proq20_qcdPt0to20V2_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
			     //"./rootOutput/GEN_TrkHistGEN_july28_py8v3_qcdPt0to20V3_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
                             //"./rootOutput/GEN_TrkHistGEN_july19_x1_qcdPt0to15_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");

   hdndpt5 = (TH1D*) file5->Get("corrTypeTwoGEN/hInvCorrR");
   tdndpt5 = (TGraphErrors*) file5->Get("corrTypeTwoGEN/tInvCorr");
   if(hdndpt5==0 || tdndpt5==0) {
     Error("[HistLoading]","could not get histogram");
     return;
   }

   // Atlas
   if(atlas){
     file6 = (TFile*) loadFile(file6,
			       "../corrections/rootOutput/GEN_TrkHistGEN_july28_atlas_qcdPt0to20_eta_0.0to2.4_jet_0.0to2000.0_preTrackAna_varBin1_rebin4.root");
     hdndpt6 = (TH1D*) file6->Get("corrTypeTwoGEN/hInvCorrR");
     tdndpt6 = (TGraphErrors*) file6->Get("corrTypeTwoGEN/tInvCorr");
     if(hdndpt6==0 || tdndpt6==0) {
       Error("[HistLoading]","could not get histogram");
       return;
     }
   }


   
   // Normalization 
   //float N_evt = 1.13643e+07;
   //hdndpt1->Scale(sigma_nsd);

   //--------------------------- CMS measurement ---------------------------
   cms_7000GeV = (TGraphErrors*) CMS_7TEV(1);

   
   //---------------------------- fits --------------------------------------
   TF1 *f2 = new TF1("fitTsallis","[0]*(1+(sqrt(0.1396**2+x**2)-0.1396)/([1]*[2]))**(-[2])",0.5,200);                                                                            
   f2->SetParameters(1.82045e+01,1.53540e-01,7.06942e+00); // fit the fit (used in paper)                                                                                        
   f2->SetLineColor(2), f2->SetLineWidth(2);

   // Basic canvas and dummy histogram
   TCanvas *call = new TCanvas("call","call",510,670);
   setPad(call);

   // ----- pad 1 
   pp1->cd();
   pp1->SetLogy();
   pp1->SetLogx();

   dum1 = GetDummyHist(pt_min,pt_max,ymin,ymax,"p_{T} [GeV/c]","Ed^{3}N/dp^{3} [GeV^{-2}c^{3}]",false);
   dum1->Draw("");
   dum1->GetXaxis()->SetNdivisions(908);
   dum1->GetYaxis()->SetNdivisions(407);

   int fillsty = 3001;

   th1Style2(tdndpt2,2,20,1.0,2,2,1,2,true);
   th1Style2(tdndpt3,4,20,1.0,4,2,2,2,false);
   //th1Style2(tdndpt4,6,20,1.0,6,2,9,2,false);
   th1Style2(tdndpt4,6,20,1.0,6,2,4,2,false);     
   //th1Style2(tdndpt5,19,20,1.0,19,2,3,3,false);
   th1Style2(tdndpt5,20,20,1.0,20,2,9,3,false); 
   if(atlas) th1Style2(tdndpt6,20,20,1.0,20,2,4,3,false);
   //th1Style1(hdndpt2,1,20,1.0,1,1.5,1,1); 

   tasydndpt1->SetMarkerSize(1.0); tasydndpt1->SetFillStyle(fillsty), tasydndpt1->SetFillColor(kGray);
   tasydndpt1->Draw("2");

   th1Style1(hdndpt1,1,20,1.0,1,1.5,1,1);  // draw the measurement on top of everything


   //TLegend *leg1 = new TLegend(0.37,0.47,0.74,0.85);
   TLegend *leg1 = new TLegend(0.22,0.09,0.59,0.47);
   leg1->SetMargin(0.3), leg1->SetBorderSize(0);
   leg1->SetFillColor(kWhite), leg1->SetFillStyle(0);
   leg1->SetTextSize(0.039), leg1->SetMargin(0.3);
   leg1->SetHeader("    #sqrt{s} = 7 TeV,   |#eta|<2.4");
   leg1->AddEntry(tasydndpt1,"CMS    #scale[0.7]{#int}Ldt = 2.96 pb^{-1}","plf");
   leg1->AddEntry(tdndpt2,"PYTHIA D6T","l");
   leg1->AddEntry(tdndpt3,"PYTHIA Perugia0","l");
   leg1->AddEntry(tdndpt5,"PYTHIA ProQ20","l");
   leg1->AddEntry(tdndpt4,"PYTHIA 8","l");
   if(atlas) leg1->AddEntry(tdndpt6,"PYTHIA Atlas","l");
   leg1->Draw();

   //putCMSPrel();
   //putIntLum();
   putB();

   // ----- pad 2 
   pp1_1->cd();
   pp1_1->SetLogx();
   
   dum1_1 = GetDummyHist(pt_min,pt_max,ymin_r,ymax_r,"p_{T} [GeV/c]","DATA / MC",false);
   setLowerPad(dum1_1);
   dum1_1->Draw("");

   TLine *line = new TLine(0,1,pt_max,1);
   line->SetLineStyle(2);
   line->SetLineWidth(2);
   line->Draw();

   hdndpt1_2_cln = (TH1D*) hdndpt1->Clone("hdndpt1_2_cln");
   hdndpt1_3_cln = (TH1D*) hdndpt1->Clone("hdndpt1_3_cln");
   hdndpt1_4_cln = (TH1D*) hdndpt1->Clone("hdndpt1_4_cln");
   hdndpt1_5_cln = (TH1D*) hdndpt1->Clone("hdndpt1_5_cln");

   hdndpt2_cln = (TH1D*) hdndpt2->Clone("hdndpt2_cln");
   hdndpt3_cln = (TH1D*) hdndpt3->Clone("hdndpt3_cln");
   hdndpt4_cln = (TH1D*) hdndpt4->Clone("hdndpt4_cln");
   hdndpt5_cln = (TH1D*) hdndpt5->Clone("hdndpt5_cln");

   hdndpt1_2_cln->Divide(hdndpt2_cln);
   hdndpt1_3_cln->Divide(hdndpt3_cln);
   hdndpt1_4_cln->Divide(hdndpt4_cln);
   hdndpt1_5_cln->Divide(hdndpt5_cln);


   if(atlas){
     hdndpt1_6_cln = (TH1D*) hdndpt1->Clone("hdndpt1_6_cln");
     hdndpt6_cln = (TH1D*) hdndpt6->Clone("hdndpt6_cln");
     hdndpt1_6_cln->Divide(hdndpt6_cln);
   }
   
   // Draw sys + stat combined error   
   createSysStatErrorHist(hdndpt1);
   tsyserr = (TGraphErrors*) TgraphIt(hsyserr);
   tsyserr->SetFillColor(kGray);
   tsyserr->SetFillStyle(fillsty);

   tsyserr->Draw("3");
   //hsyserr->Draw("pzsame");          

   //th1Style1(cms_7000GeV_div,13,30,1.0,13,1,1,1);
   th1Style1(hdndpt1_2_cln,2,20,1.0,2,2.0,1,3);
   th1Style1(hdndpt1_3_cln,4,20,1.0,4,2.0,2,3);
   //th1Style1(hdndpt1_4_cln,6,20,1.0,6,2.0,9,3);
   //th1Style1(hdndpt1_5_cln,19,20,1.0,19,2.0,3,3);
   th1Style1(hdndpt1_4_cln,6,20,1.0,6,2.0,4,3);
   th1Style1(hdndpt1_5_cln,20,20,1.0,20,2.0,9,3);
   if(atlas)  th1Style1(hdndpt1_6_cln,20,20,1.0,20,2.0,5,3);


   // print Xsection 
   PrintXsection(hdndpt1,1.);
   //PrintXsection(hdndpt1,1.);

   // save canvas 
   if(save){
     if(atlas) printCanvases(call, "spectra_inv_cms_vs_pythia_all_v3",0);
     else printCanvases(call, "spectra_inv_cms_vs_pythia_v3",0);
   }

}