void systErrCal(){ gStyle -> SetOptStat(0); const int nPt = 4; const int nPurity = 3; // double purity[nPurity] = {0.9, 1., 1.1} ;// purity*0.9 and so on.. double AvePtBin[nPt+1] = {45.0, 55.0, 70.0, 100.0}; double ptBin[nPt+1] = {40,50,60,80,9999}; double ptBinPaDraw[nPt+1] = { 40.5 ,49.5, 58.5, 76.5, 123. } ; const int nCentBinHI = 2; const int centBinHI[nCentBinHI +1] = {-1, 10030, 13099}; TH1D* hxjg10[7][10][6]; // [species][centrality][pt_dependence] TH1D* hxjg09[7][10][6]; // [species][centrality][pt_dependence] TH1D* hxjg11[7][10][6]; // [species][centrality][pt_dependence] TH1D* hJetPt10[7][10][6]; TH1D* hJetPt09[7][10][6]; TH1D* hJetPt11[7][10][6]; TH1D* meanXjg[7][10][nPurity+1]; // [Collision][centrality][purity] TH1D* meanJetPt[7][10][nPurity+1]; // [Collision][centrality] TH1D* rjg[7][5][nPurity+1]; // [Collision][centrality] for (int icoll=0 ; icoll<6 ; icoll++) { for (int icent=1 ; icent<= 10 ; icent++) { for(int ipu=0 ; ipu<nPurity ; ipu++) { meanXjg[icoll][icent][ipu] = new TH1D( Form("meanXjg_icoll%d_icent%d_ipu%d",icoll,icent,ipu), ";p_{T}^{#gamma} (GeV); <X_{J#gamma}>",nPt,ptBinPaDraw); meanJetPt[icoll][icent][ipu] = new TH1D( Form("meanJetPt_icoll%d_icent%d_ipu%d",icoll,icent,ipu), ";p_{T}^{#gamma} (GeV); <p_{T}^{Jet}>",nPt,ptBinPaDraw); rjg[icoll][icent][ipu]= new TH1D( Form("rjg_icoll%d_icent%d_ipu%d",icoll,icent,ipu), ";p_{T}^{#gamma} (GeV); R_{J#gamma}",nPt,ptBinPaDraw); for (int ipt=1 ; ipt<=nPt ; ipt++) { hxjg10[icoll][icent][ipt] = NULL; hxjg09[icoll][icent][ipt] = NULL; hxjg11[icoll][icent][ipt] = NULL; hJetPt10[icoll][icent][ipt] = NULL; hJetPt09[icoll][icent][ipt] = NULL; hJetPt11[icoll][icent][ipt] = NULL; } } } } // cout << "dlfja " << endl; TFile* histFile[7][6][nPurity+1]; // [Collision][pt] for (int ipt=1 ; ipt<=nPt ; ipt++) { for (int icoll=0 ; icoll<6 ; icoll++) { for (int ipu=0 ; ipu < nPurity ; ipu++) { TString sampleName = getSampleName( icoll ) ; char* fname = ""; if (ipu==1) {fname = Form("./ffFiles/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20130909_purity09.root",sampleName.Data(), (int)ptBin[ipt-1], (int)ptBin[ipt]); } else if (ipu==0) {fname = Form("./ffFiles/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20130909.root",sampleName.Data(), (int)ptBin[ipt-1], (int)ptBin[ipt]); } else {fname = Form("./ffFiles/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20130909_purity1.1.root",sampleName.Data(), (int)ptBin[ipt-1], (int)ptBin[ipt]); } histFile[icoll][ipt][ipu] = new TFile(fname) ; // cout << " Reading file : " << fname << endl; if ( histFile[icoll][ipt][ipu]->IsZombie() == false ) { // cout << " Success." << endl; if ( (icoll == kPPDATA) || (icoll == kPPMC) ) { // PP int icent = 7 ; if (ipu==0) { hxjg10[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("xjg_icent%d_final", icent)) ; hJetPt10[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("jetPt_icent%d_final", icent)) ; } else if (ipu==1) {hxjg09[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("xjg_icent%d_final", icent)) ; hJetPt09[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("jetPt_icent%d_final", icent)) ; } else { hxjg11[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("xjg_icent%d_final", icent)) ; hJetPt11[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("jetPt_icent%d_final", icent)) ; } // cout << " Getting histogram : " << Form("xjg_icent%d_final", icent) << endl; // cout << " Getting histogram : " << Form("jetPt_icent%d_final", icent) << endl; } if ( ( icoll == kHIDATA) || (icoll == kHIMC) ) { // PbPb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { if (ipu==0) { hxjg10[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("xjg_icent%d_final", centBinHI[icent] )) ; hJetPt10[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("jetPt_icent%d_final", centBinHI[icent] ) ); } else if (ipu==1) { hxjg09[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("xjg_icent%d_final", centBinHI[icent] )) ; hJetPt09[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("jetPt_icent%d_final", centBinHI[icent] ) ); } else { hxjg11[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("xjg_icent%d_final", centBinHI[icent] )) ; hJetPt11[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt][ipu]->Get(Form("jetPt_icent%d_final", centBinHI[icent] ) ); } // cout << " Getting histogram : " << Form("jetPt_icent%d_final", centBinHI[icent] ) << endl; // cout << " Getting histogram : " << Form("xjg_icent%d_final", centBinHI[icent] ) << endl; histFile[icoll][ipt][ipu] -> Close(); } } } else cout << " no such file " << endl; } } } for (int ipt=1 ; ipt<=nPt ; ipt++) { for (int icoll=0 ; icoll<6 ; icoll++) { for (int icent=1 ; icent<= 10 ; icent++ ) { for (int ipu=0 ; ipu< nPurity ; ipu++ ) { if ( (hxjg10[icoll][icent][ipt] == NULL) && (hxjg09[icoll][icent][ipt] == NULL) && (hxjg11[icoll][icent][ipt] == NULL) ) continue; // emtpy histogram double rVal, rErr; if (ipu==0) rVal = hxjg10[icoll][icent][ipt]->IntegralAndError(1, hxjg10[icoll][icent][ipt]->GetNbinsX(), rErr, "width"); else if (ipu==1) rVal = hxjg09[icoll][icent][ipt]->IntegralAndError(1, hxjg09[icoll][icent][ipt]->GetNbinsX(), rErr, "width"); else rVal = hxjg11[icoll][icent][ipt]->IntegralAndError(1, hxjg11[icoll][icent][ipt]->GetNbinsX(), rErr, "width"); rjg[icoll][icent][ipu]->SetBinContent( ipt, rVal ); rjg[icoll][icent][ipu]->SetBinError ( ipt, rErr ); cout << "ipt : " << ipt << " icoll : " << icoll << " icent : " << icent << " ipu : " << ipu << " rVal : " << rVal << endl; if (ipu==0){ meanXjg[icoll][icent][ipu]->SetBinContent( ipt, hxjg10[icoll][icent][ipt]->GetMean() ); meanXjg[icoll][icent][ipu]->SetBinError ( ipt, hxjg10[icoll][icent][ipt]->GetMeanError() ); meanJetPt[icoll][icent][ipu]->SetBinContent( ipt, hJetPt10[icoll][icent][ipt]->GetMean() ); meanJetPt[icoll][icent][ipu]->SetBinError ( ipt, hJetPt10[icoll][icent][ipt]->GetMeanError() ); }else if (ipu==1){ meanXjg[icoll][icent][ipu]->SetBinContent( ipt, hxjg09[icoll][icent][ipt]->GetMean() ); meanXjg[icoll][icent][ipu]->SetBinError ( ipt, hxjg09[icoll][icent][ipt]->GetMeanError() ); meanJetPt[icoll][icent][ipu]->SetBinContent( ipt, hJetPt09[icoll][icent][ipt]->GetMean() ); meanJetPt[icoll][icent][ipu]->SetBinError ( ipt, hJetPt09[icoll][icent][ipt]->GetMeanError() ); } else { meanXjg[icoll][icent][ipu]->SetBinContent( ipt, hxjg11[icoll][icent][ipt]->GetMean() ); meanXjg[icoll][icent][ipu]->SetBinError ( ipt, hxjg11[icoll][icent][ipt]->GetMeanError() ); meanJetPt[icoll][icent][ipu]->SetBinContent( ipt, hJetPt11[icoll][icent][ipt]->GetMean() ); meanJetPt[icoll][icent][ipu]->SetBinError ( ipt, hJetPt11[icoll][icent][ipt]->GetMeanError() ); } } } } } TLegend *ly = new TLegend(0.4913112,0.6561548,0.9997611,0.9431145,NULL,"brNDC"); easyLeg(ly,"2.76TeV"); ly->AddEntry(meanJetPt[kPPDATA][7][1],"pp ","p"); ly->AddEntry(meanJetPt[kHIDATA][2][1],"PbPb 0-30%","p"); TLegend *l1 = new TLegend(0.4913112,0.6561548,0.9997611,0.9431145,NULL,"brNDC"); easyLeg(l1,"2.76TeV"); l1->AddEntry(meanJetPt[kPPDATA][7][1],"pp ","p"); l1->AddEntry(meanJetPt[kHIDATA][1][1],"PbPb 30-100%","p"); l1->AddEntry(meanJetPt[kHIDATA][2][1],"PbPb 0-30%","p"); TCanvas* cJetpt = new TCanvas("c21","",500,500); for(int ipu=0; ipu<nPurity; ipu++){ handsomeTH1(meanJetPt[kPPDATA][7][ipu]); if (ipu==0){ meanJetPt[kPPDATA][7][ipu]->SetYTitle("<p_{T}^{Jet}> (>30GeV)"); // meanJetPt[kPPDATA][7][ipu]->SetAxisRange(-2,2,"X"); meanJetPt[kPPDATA][7][ipu]->SetAxisRange(30,95,"Y"); meanJetPt[kPPDATA][7][ipu]->Draw(); } else { meanJetPt[kPPDATA][7][ipu]->Draw("same"); } // meanJetPt[kPPDATA][7][ipu]->SetMarkerStyle(24); meanJetPt[kPPDATA][7][ipu]->SetMarkerColor(kTeal+ipu); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(meanJetPt[kHIDATA][icent][ipu]); if ( icent == 2 ) meanJetPt[kHIDATA][icent][ipu]->SetMarkerStyle(24); //if ( icent != 2 ) meanJetPt[kHIDATA][icent]->Draw("same"); meanJetPt[kHIDATA][icent][ipu]->Draw("same"); } } l1 ->Draw(); TCanvas* cXjg = new TCanvas("c31","",500,500); for(int ipu=0; ipu<nPurity; ipu++){ handsomeTH1(meanXjg[kPPDATA][7][ipu]); if (ipu==0){ meanXjg[kPPDATA][7][ipu]->SetYTitle("<x_{J#gamma}> (>30GeV)"); meanXjg[kPPDATA][7][ipu]->SetMarkerStyle(24); // meanXjg[kPPDATA][7]->SetAxisRange(-2,2,"X"); meanXjg[kPPDATA][7][ipu]->SetAxisRange(0.6,1.2,"Y"); meanXjg[kPPDATA][7][ipu]->Draw(); } else { meanXjg[kPPDATA][7][ipu]->Draw("same"); } for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(meanXjg[kHIDATA][icent][ipu]); if ( icent == 2 ) meanXjg[kHIDATA][icent][ipu]->SetMarkerStyle(24); //if ( icent != 2 ) meanXjg[kHIDATA][icent]->Draw("same"); meanXjg[kHIDATA][icent][ipu]->Draw("same"); } } l1->Draw(); TCanvas* cRjg = new TCanvas("c_rjg","",500,500); for(int ipu=0; ipu<nPurity; ipu++){ handsomeTH1(rjg[kPPDATA][7][ipu]); if (ipu==0){ rjg[kPPDATA][7][ipu]->SetYTitle("r_{J#gamma}"); rjg[kPPDATA][7][ipu]->SetMarkerStyle(24); // rjg[kPPDATA][7]->SetAxisRange(-2,2,"X"); rjg[kPPDATA][7][ipu]->SetAxisRange(0.0,1.1,"Y"); rjg[kPPDATA][7][ipu]->Draw(); } else { rjg[kPPDATA][7][ipu]->Draw("same"); } for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(rjg[kHIDATA][icent][ipu],kRed); if ( icent == 2 ) rjg[kHIDATA][icent][ipu]->SetMarkerStyle(24); // if ( icent != 2 ) rjg[kHIDATA][icent]->Draw("same"); rjg[kHIDATA][icent][ipu]->Draw("same"); } } ly->Draw(); }
void gammaJetHistProducer_jetEnergyScaledMinus2percent(sampleType collision = kPADATA, float photonPtThr=60, float photonPtThrUp=9999, float jetPtThr=30, int icent =1) { TH1::SetDefaultSumw2(); TString stringSampleType = getSampleName(collision); ""; TDatime* date = new TDatime(); TString outName= Form("photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr%d_%d.root",stringSampleType.Data(),(int)photonPtThr, (int)photonPtThrUp, (int)jetPtThr, date->GetDate()); delete date; int lowerCent(0), upperCent(0); TCut centCut = ""; if ( (collision ==kHIDATA) || (collision==kHIMC) ) { lowerCent = centBin1[icent-1]; upperCent = centBin1[icent]-1; if ( icent > 9999) { lowerCent = ((icent/100)%100)/2.5; upperCent = (icent%100)/2.5 -1; } centCut = Form("cBin >= %d && cBin<= %d",lowerCent,upperCent); } else if ( (collision ==kPPDATA) || (collision==kPPMC) ){ // if it's pp centCut = "(1==1)"; // icent = 7; // for pp, centrality is set as the smearing } else { // pPb centCut = Form( "hf4Sum > %f && hf4Sum <= %f", (float)centBinPa[icent-1], (float)centBinPa[icent]); } cout <<" centrality : " << centCut.GetTitle() << endl; ///////// Photon cut ////////////////////////////////////////////////////////////////////////////// cout <<" photon pt >" << photonPtThr << " GeV" << endl; TCut ptPhoCut = Form("photonEt>%.1f && photonEt<%.1f", (float)photonPtThr, (float)photonPtThrUp ); TCut caloIso; if ( (collision==kPPMC) || (collision==kPPDATA) ) caloIso = "(ecalIso < 4.2 && hcalIso < 2.2 && trackIso < 2) && hovere<0.1"; else if ( (collision==kHIMC) || (collision==kHIDATA) ) caloIso = "(sumIso<1) && hovere<0.1"; else { caloIso = "ecalIso < 4.2 && hcalIso < 2.2 && trackIso < 2 && hovere<0.1"; } TCut sbIso = "(sumIso>10) && (sumIso<20) && hovere<0.1"; // if ( (collision==kPPMC) || (collision==kPPDATA) || (collision==kPAMC) || (collision==kPADATA) ) // sbIso = "ecalIso < 4.2 && hcalIso < 2.2 && trackIso > 2 && trackIso < 5 && hovere<0.1"; TCut basicPhoCut = centCut && ptPhoCut && caloIso ; TCut sbPhoCut = centCut && ptPhoCut && sbIso ; TCut evtSeltCut = basicPhoCut; TCut sbSeltCut = sbPhoCut; TCut phoCandCut = "sigmaIetaIeta<0.010"; TCut phoDecayCut = "(sigmaIetaIeta>0.011) && (sigmaIetaIeta<0.017)"; if ( ( collision == kHIMC ) || (collision == kPPMC) || (collision == kPAMC)) phoCandCut = phoCandCut && "genIso<5 && abs(genMomId)<=22"; TString fname = ""; if ( collision == kHIDATA) fname = fnameHIDATA_Minus2percentScaled; else if ( collision == kPADATA) fname = fnamePADATA_Minus2percentScaled; else if ( collision == kPPDATA) { if ( icent == 7 ) fname = fnamePPDATA_Minus2percentScaled; } else fname = ""; multiTreeUtil* tgj = new multiTreeUtil(); multiTreeUtil* tgjMC = new multiTreeUtil(); if ( ( collision == kHIDATA) || ( collision==kPADATA) || ( collision == kPPDATA) ) { tgj->addFile(fname, "tgj", evtSeltCut, 1); } else if ( collision == kPPMC ) { tgj->addFile(fnamePPMC_AllQcdPho30to50, "tgj", evtSeltCut, wPPMC_AllQcdPho30to50 ); tgj->addFile(fnamePPMC_AllQcdPho50to80, "tgj", evtSeltCut, wPPMC_AllQcdPho50to80 ); tgj->addFile(fnamePPMC_AllQcdPho80to120, "tgj", evtSeltCut, wPPMC_AllQcdPho80to120 ); tgj->addFile(fnamePPMC_AllQcdPho120to9999, "tgj", evtSeltCut, wPPMC_AllQcdPho120to9999 ); } else if ( collision == kPAMC ) { tgj->addFile(fnamePAMC_AllQcdPho30to50, "tgj", evtSeltCut, wPAMC_AllQcdPho30to50 ); tgj->addFile(fnamePAMC_AllQcdPho50to80, "tgj", evtSeltCut, wPAMC_AllQcdPho50to80 ); tgj->addFile(fnamePAMC_AllQcdPho80to120, "tgj", evtSeltCut, wPAMC_AllQcdPho80to120 ); tgj->addFile(fnamePAMC_AllQcdPho120to9999, "tgj", evtSeltCut, wPAMC_AllQcdPho120to9999 ); } else { // kHIMC tgj->addFile(fnameHIMC_AllQcdPho30to50, "tgj", evtSeltCut, wHIMC_AllQcdPho30to50 ); tgj->addFile(fnameHIMC_AllQcdPho50to80, "tgj", evtSeltCut, wHIMC_AllQcdPho50to80 ); tgj->addFile(fnameHIMC_AllQcdPho80to9999, "tgj", evtSeltCut, wHIMC_AllQcdPho80to9999 ); } tgj->AddFriend("yJet"); // get purity with the current jet cut ! float purity(0); TString canvasName = Form("gifs/purity_%s_output_icent%d_photonPtThr%d-%d_jetPtThr%d", stringSampleType.Data(), (int)icent, (int)photonPtThr, (int)photonPtThrUp, (int)jetPtThr); // if ( (collision==kPPDATA) && (photonPtThr < 50 ) ) { // purity = 0.86 ; // cout << " !!!!!!!" << endl << endl << " purity is set as 0.86 for this bin because we don't have pp MC low pt sample " << endl; // cout << endl << endl << endl << " !!!!!!" << endl; // } if ( (collision==kHIDATA)||(collision==kPPDATA)||(collision==kPADATA) ) { fitResult fitr = getPurity(fname, collision, evtSeltCut, sbSeltCut, canvasName, photonPtThr, photonPtThrUp); purity = fitr.purity010; /* float originalP = purity; if (collision==kPPDATA) purity = purity - 0.05; else if (collision==kHIDATA) { if ( icent == 10030) purity = purity - 0.08; else if ( icent == 13099) purity = purity - 0.07; } cout << "====================================================================================" << endl << endl << endl; cout << "====================================================================================" << endl << endl << endl; cout << "================================ Purity modified!!! ================================" << endl << endl << endl; cout << "=============== "<<originalP<< " --> "<<purity<< "====================================" << endl << endl << endl; cout << "====================================================================================" << endl << endl << endl; */ } else { purity = 1; cout << " MC purity = 1" << endl; } GjSpectra* gSpec = new GjSpectra(); gSpec->init(Form("icent%d",(int)icent) ); tgj->Draw2(gSpec->hPtPhoCand, "photonEt", phoCandCut, "") ; tgj->Draw2(gSpec->hPtPhoDecay, "photonEt", phoDecayCut, "") ; // Obtain background subtracted spectra float candInt = gSpec->hPtPhoCand->Integral(); float candDecay = gSpec->hPtPhoDecay->Integral(); gSpec->hPtPhoSig->Reset(); gSpec->hPtPhoSig->Add(gSpec->hPtPhoCand); gSpec->hPtPhoSig->Add(gSpec->hPtPhoDecay, -(1. - purity) * candInt / candDecay); gSpec->hPtPhoSig->Scale(1./purity ) ; TFile outf = TFile(Form("ffFiles/%s",outName.Data()),"update"); gSpec->hPtPhoCand->Write(); gSpec->hPtPhoDecay->Write(); gSpec->hPtPhoSig->Write(); outf.Close(); // Objects multiTreeUtil* tObj[3]; tObj[kTrkRaw] = new multiTreeUtil(); tObj[kTrkBkg] = new multiTreeUtil(); if ( ( collision == kHIDATA) || ( collision==kPADATA) || ( collision == kPPDATA) ) { tObj[kTrkRaw]->addFile(fname, "yJet", evtSeltCut, 1); tObj[kTrkBkg]->addFile(fname, "mJet", evtSeltCut, 1); } else if ( collision == kHIMC ) { tObj[kTrkRaw]->addFile(fnameHIMC_AllQcdPho30to50, "yJet", evtSeltCut, wHIMC_AllQcdPho30to50 ) ; tObj[kTrkRaw]->addFile(fnameHIMC_AllQcdPho50to80, "yJet", evtSeltCut, wHIMC_AllQcdPho50to80 ) ; tObj[kTrkRaw]->addFile(fnameHIMC_AllQcdPho80to9999, "yJet", evtSeltCut, wHIMC_AllQcdPho80to9999 ) ; tObj[kTrkBkg]->addFile(fnameHIMC_AllQcdPho30to50, "mJet", evtSeltCut, wHIMC_AllQcdPho30to50 ) ; tObj[kTrkBkg]->addFile(fnameHIMC_AllQcdPho50to80, "mJet", evtSeltCut, wHIMC_AllQcdPho50to80 ) ; tObj[kTrkBkg]->addFile(fnameHIMC_AllQcdPho80to9999, "mJet", evtSeltCut, wHIMC_AllQcdPho80to9999 ) ; } else if ( collision == kPAMC ) { tObj[kTrkRaw]->addFile(fnamePAMC_AllQcdPho30to50, "yJet", evtSeltCut, wPAMC_AllQcdPho30to50 ) ; tObj[kTrkRaw]->addFile(fnamePAMC_AllQcdPho50to80, "yJet", evtSeltCut, wPAMC_AllQcdPho50to80 ) ; tObj[kTrkRaw]->addFile(fnamePAMC_AllQcdPho80to120, "yJet", evtSeltCut, wPAMC_AllQcdPho80to120 ) ; tObj[kTrkRaw]->addFile(fnamePAMC_AllQcdPho120to9999,"yJet", evtSeltCut, wPAMC_AllQcdPho120to9999 ) ; tObj[kTrkBkg]->addFile(fnamePAMC_AllQcdPho30to50, "mJet", evtSeltCut, wPAMC_AllQcdPho30to50 ) ; tObj[kTrkBkg]->addFile(fnamePAMC_AllQcdPho50to80, "mJet", evtSeltCut, wPAMC_AllQcdPho50to80 ) ; tObj[kTrkBkg]->addFile(fnamePAMC_AllQcdPho80to120, "mJet", evtSeltCut, wPAMC_AllQcdPho80to120 ) ; tObj[kTrkBkg]->addFile(fnamePAMC_AllQcdPho120to9999,"mJet", evtSeltCut, wPAMC_AllQcdPho120to9999 ) ; } else if ( collision == kPPMC ) { tObj[kTrkRaw]->addFile(fnamePPMC_AllQcdPho30to50, "yJet", evtSeltCut, wPPMC_AllQcdPho30to50 ); tObj[kTrkRaw]->addFile(fnamePPMC_AllQcdPho50to80, "yJet", evtSeltCut, wPPMC_AllQcdPho50to80 ); tObj[kTrkRaw]->addFile(fnamePPMC_AllQcdPho80to120, "yJet", evtSeltCut, wPPMC_AllQcdPho80to120 ); tObj[kTrkRaw]->addFile(fnamePPMC_AllQcdPho120to9999,"yJet", evtSeltCut, wPPMC_AllQcdPho120to9999 ); tObj[kTrkBkg]->addFile(fnamePPMC_AllQcdPho30to50, "mJet", evtSeltCut, wPPMC_AllQcdPho30to50 ); tObj[kTrkBkg]->addFile(fnamePPMC_AllQcdPho50to80, "mJet", evtSeltCut, wPPMC_AllQcdPho50to80 ); tObj[kTrkBkg]->addFile(fnamePPMC_AllQcdPho80to120, "mJet", evtSeltCut, wPPMC_AllQcdPho80to120 ); tObj[kTrkBkg]->addFile(fnamePPMC_AllQcdPho120to9999,"mJet", evtSeltCut, wPPMC_AllQcdPho120to9999 ); } tObj[kTrkRaw]->AddFriend("tgj"); tObj[kTrkBkg]->AddFriend("tgj"); TCut jetCut = Form("abs(eta)<%f && pt>%f", (float)cutjetEta, (float)jetPtThr ); TCut jetCutDphi = jetCut && (TCut)(Form("abs(dphi)>%f",(float)awayRange)); TCut genJetCut = Form("abs(jtEta)<%f && jtPt>%f", (float)cutjetEta, (float)jetPtThr ); TCut genJetCutDphi = jetCut && (TCut)(Form("abs(refDphi)>%f",(float)awayRange)); TCut jetCut2 = Form("abs(dphi)>%f && pt>%f", (float)awayRange, (float)jetPtThr ) ; TString jetWeight = ""; TH1D* hJetDphi = new TH1D(Form("jetDphi_icent%d",icent),";#Delta#phi_{Jet,#gamma} ;dN/d#Delta#phi",20,0,3.141592); corrFunctionTrk* cJetDphi = new corrFunctionTrk(); TString varJetDphi = Form("dphi"); gammaTrkSingle( gSpec, tObj, cJetDphi, purity, collision, varJetDphi, jetCut, jetWeight, phoCandCut, phoDecayCut, hJetDphi, outName); TH1D* hJetPt = new TH1D(Form("jetPt_icent%d",icent),";Jet p_{T} (GeV) ;dN/dp_{T} (GeV^{-1})",280, 20,300); corrFunctionTrk* cJetPt = new corrFunctionTrk(); TString varJetPt = Form("pt"); gammaTrkSingle( gSpec, tObj, cJetPt, purity, collision, varJetPt, jetCutDphi, jetWeight, phoCandCut, phoDecayCut, hJetPt, outName); const int nJetIaaBin = 7; double jetIaaBin[nJetIaaBin+1] = {30,40,50,60,80,100,120,200}; TH1D* hJetPtForIaa = new TH1D(Form("jetPtForIaa_icent%d",icent),";Jet p_{T} (GeV) ;dN/dp_{T} (GeV^{-1})",nJetIaaBin, jetIaaBin); corrFunctionTrk* cJetIaaPt = new corrFunctionTrk(); gammaTrkSingle( gSpec, tObj, cJetIaaPt, purity, collision, varJetPt, jetCutDphi, jetWeight, phoCandCut, phoDecayCut, hJetPtForIaa, outName); // TH1D* hDjetPt = new TH1D(Form("dpt_icent%d",icent),";p_{T}^{#gamma} - p_{T}^{Jet} (GeV) ;dN/dp_{T} (GeV^{-1})",30,-150,150); // corrFunctionTrk* cDjetPt = new corrFunctionTrk(); // TString varJetDpt = Form("pt - photonEt"); // gammaTrkSingle( gSpec, tObj, cDjetPt, purity, // collision, varJetDpt, jetCutDphi, jetWeight, // phoCandCut, phoDecayCut, hDjetPt, outName); TH1D* hJetXjg = new TH1D(Form("xjg_icent%d",icent),";p_{T}^{Jet}/p_{T}^{#gamma} ; ",400,0,5); corrFunctionTrk* cJetXjg = new corrFunctionTrk(); TString varJetXjg = Form("pt/photonEt"); gammaTrkSingle( gSpec, tObj, cJetXjg, purity, collision, varJetXjg, jetCutDphi, jetWeight, phoCandCut, phoDecayCut, hJetXjg, outName); if ( (collision == kPAMC) || (collision == kPPMC) ||(collision == kHIMC) ) { TH1D* hGenJetPt = (TH1D*)hJetPt->Clone(Form("genJetPt_icent%d",icent)); corrFunctionTrk* cGenJetPt = new corrFunctionTrk(); TString varGenJetPt = Form("refPt"); gammaTrkSingle( gSpec, tObj, cJetPt, purity, collision, varGenJetPt, genJetCutDphi, jetWeight, phoCandCut, phoDecayCut, hGenJetPt, outName); TH1D* hGenJetXjg = (TH1D*)hJetXjg->Clone(Form("xjg_genJet_icent%d",icent)); corrFunctionTrk* cGenJetXjg = new corrFunctionTrk(); TString varGenJetXjg = Form("refPt/photonEt"); gammaTrkSingle( gSpec, tObj, cGenJetXjg, purity, collision, varGenJetXjg, genJetCutDphi , jetWeight, phoCandCut, phoDecayCut, hGenJetXjg, outName); TH1D* hGenPhotonXjg = (TH1D*)hJetXjg->Clone(Form("xjg_genPho_icent%d",icent)); corrFunctionTrk* cGenPhotonXjg = new corrFunctionTrk(); TString varGenPhotonXjg = Form("pt/genPhotonEt"); gammaTrkSingle( gSpec, tObj, cGenPhotonXjg, purity, collision, varGenPhotonXjg, jetCutDphi, jetWeight, phoCandCut, phoDecayCut, hGenPhotonXjg, outName); TH1D* hGenPhoGenJetXjg = (TH1D*)hJetXjg->Clone(Form("xjg_genPho_genJet_icent%d",icent)); corrFunctionTrk* cGenPhoGenJetXjg = new corrFunctionTrk(); TString varGenPhoGenJetXjg = Form("refPt/genPhotonEt"); gammaTrkSingle( gSpec, tObj, cGenPhoGenJetXjg, purity, collision, varGenPhoGenJetXjg, genJetCutDphi, jetWeight, phoCandCut, phoDecayCut, hGenPhoGenJetXjg, outName); } bool doRapidity= false; if ( doRapidity) { // Eta distribution TH1D* hEtaJg = new TH1D(Form("etaJg_icent%d",icent),";#eta_{J,#gamma} ; ",160,-3,3); corrFunctionTrk* cEtaJg = new corrFunctionTrk(); TString varEtaJg = Form("(photonEta+eta)/2."); gammaTrkSingle( gSpec, tObj, cEtaJg, purity, collision, varEtaJg, jetCut2, jetWeight, phoCandCut, phoDecayCut, hEtaJg, outName); TH1D* hEtaJet = new TH1D(Form("etaJet_icent%d",icent),";#eta_{Jet} ; ",160,-3,3); corrFunctionTrk* cEtaJet = new corrFunctionTrk(); TString varEtaJet = Form("eta"); gammaTrkSingle( gSpec, tObj, cEtaJet, purity, collision, varEtaJet, jetCut2, jetWeight, phoCandCut, phoDecayCut, hEtaJet, outName); TH1D* hEtaPhoton = new TH1D(Form("etaPhoton_icent%d",icent),";#eta_{#gamma} ; ",160,-3,3); corrFunctionTrk* cEtaPhoton = new corrFunctionTrk(); TString varEtaPhoton = Form("photonEta"); gammaTrkSingle( gSpec, tObj, cEtaPhoton, purity, collision, varEtaPhoton, jetCut2, jetWeight, phoCandCut, phoDecayCut, hEtaPhoton, outName); } }
void drawIaa( bool saveFigures=true) { const int nPtBin = 4; int ptBin[nPtBin+1] = {40, 50,60,80,9999}; double ptBinPaDraw[nPtBin+1] = { 40.5 ,49.5, 58.5, 76.5, 123. } ; // double AvePtBin[nPtBin+1] = { 45, 54.1479, 67.4204, 99.6956, 9999}; const int nCentBinHI = 2; const int centBinHI[nCentBinHI +1] = {-1, 10030, 13099}; TH1D* hJetPt[7][10][6]; // [Collision][centrality][pt] TH1D* hIaa[10][6]; // [centrality][pt] for (int icent=1 ; icent<= 10 ; icent++) { for (int ipt=1 ; ipt<=nPtBin ; ipt++) { hIaa[icent][ipt] = NULL; for (int icoll=0 ; icoll<6 ; icoll++) { hJetPt[icoll][icent][ipt] = NULL; } } } TFile* histFile[7][6]; // [Collision][pt] for (int ipt=1 ; ipt<=nPtBin ; ipt++) { for (int icoll=0 ; icoll<6 ; icoll++) { TString sampleName = getSampleName( icoll ) ; char* fname = Form("ffFiles/jetEnergyResL2L3_smeared/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131018.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/centralValue/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/centralOct16th/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131016.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/jetEnergyResCorrectedOct16th/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131016.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/jetEnergyScaledMinus2percentOct17/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131017.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/ak5Cone/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131017.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); //char* fname = Form("ffFiles/jetEnergyResCorrected/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); //char* fname = Form("ffFiles/jetEnergyScaledPlus2percent/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/jetEnergyScaledMinus2percent/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/noElectronRejection/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); //char* fname = Form("ffFiles/leadingJetAnalysis/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/jetEnergySmearedBy10percent/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); // char* fname = Form("ffFiles/photonEnergyScaled/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20131011_photonEnergyScaledBy-0.015.root",sampleName.Data(), (int)ptBin[ipt-1], 9999); histFile[icoll][ipt] = new TFile(fname) ; cout << " Reading file : " << fname << endl; if ( histFile[icoll][ipt]->IsZombie() == false ) { cout << " Success." << endl; if ( (icoll == kPPDATA) || (icoll == kPPMC) ) { // PP int icent = 7 ; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPtForIaa_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetPt_icent%d_final", icent) << endl; // hJetPt[icoll][7][ipt]->Rebin(10); // hJetPt[icoll][7][ipt]->Scale(1./10); } if ( ( icoll == kHIDATA) || (icoll == kHIMC) ) { // PbPb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPtForIaa_icent%d_final", centBinHI[icent] ) ); cout << " Getting histogram : " << Form("jetPt_icent%d_final", centBinHI[icent] ) << endl; // hJetPt[icoll][icent][ipt]->Rebin(10); //hJetPt[icoll][icent][ipt]->Scale(1/10.); } } } else cout << " no such file " << endl; } } // Calculation of IAA for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { for (int ipt=1 ; ipt<=nPtBin ; ipt++) { hIaa[icent][ipt] = (TH1D*)hJetPt[kHIDATA][icent][ipt]->Clone(Form("iaa_%s",hJetPt[kHIDATA][icent][ipt]->GetName())); hIaa[icent][ipt]->Divide(hJetPt[kPPDATA][7][ipt]); } } TH1D* hTempPt = new TH1D("hTemp",";p_{T}^{#gamma} (GeV);",200,10,300); TCanvas* c2 = new TCanvas("c2","",1000,450); makeMultiPanelCanvas(c2,nPtBin,2,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c2->cd(ipt); // draw pp hTempPt->SetXTitle("p_{T}^{Jet} (GeV)"); hTempPt->SetYTitle("#frac{dN}{dp_{T}} #frac{1}{N^{#gamma}}"); hTempPt->SetAxisRange(30,200,"X"); // hTempPt->SetAxisRange(0,0.025,"Y"); hTempPt->SetAxisRange(0.00007,0.11,"Y"); handsomeTH1(hTempPt,0); hTempPt->DrawCopy(); gPad->SetLogy(); handsomeTH1(hJetPt[kPPDATA][7][ipt], 1); hJetPt[kPPDATA][7][ipt]->SetMarkerStyle(24); hJetPt[kPPDATA][7][ipt]->Draw("same"); // draw pbpb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hJetPt[kHIDATA][icent][ipt],kRed); if ( icent == 2 ) hJetPt[kHIDATA][icent][ipt]->SetMarkerStyle(24); hJetPt[kHIDATA][icent][ipt]->Draw("same"); } double dx1=0.15; drawText(Form("p_{T}^{#gamma} > %dGeV, ", (int)ptBin[ipt-1]), 0.12+dx1+0.25,0.85,1,15); /* if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} > %dGeV, ", (int)ptBin[ipt-1]), 0.12+dx1+0.25,0.85,1,15); else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.12+dx1,0.85,1,15); */ onSun(30,0,200,0); c2->cd(ipt + nPtBin); hTempPt->SetAxisRange(0,2.5,"Y"); hTempPt->SetYTitle("Ratio of Yield PbPb/pp"); handsomeTH1(hTempPt,0); hTempPt->DrawCopy(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hIaa[icent][ipt],kRed); if ( icent == 2 ) hIaa[icent][ipt]->SetMarkerStyle(24); // if ( icent == 1 ) hIaa[icent][ipt]->Draw("same"); jumSun(30,1,200,1); } } c2->cd(1); TLegend *l2 = new TLegend(0.5933981,0.3877892,0.9981436,0.7857262,NULL,"brNDC"); easyLeg(l2,"2.76TeV"); l2->AddEntry(hJetPt[kPPDATA][7][1],"pp", "p"); l2->AddEntry(hJetPt[kHIDATA][2][1],"PbPb 30-100%", "p"); l2->AddEntry(hJetPt[kHIDATA][1][1],"PbPb 0-30%", "p"); l2->Draw(); if (saveFigures) c2->SaveAs("figures/pT_dependence_IAA_figure1.pdf"); if (saveFigures) c2->SaveAs("figures/pT_dependence_IAA_figure1.gif"); TFile * fResults = new TFile("resultHistograms.root","update"); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { hJetPt[kPPDATA][7][ipt]->SetName(Form("dNdJetPt_forIaa_pp_ptBin%dAndHigher",ipt)); hJetPt[kPPDATA][7][ipt]->Write(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { hJetPt[kHIDATA][icent][ipt]->SetName(Form("dNdJetPt_forIaa_pbpb_centralityBin%d_ptBin%dAndHigher",icent,ipt)); hJetPt[kHIDATA][icent][ipt]->Write(); hIaa[icent][ipt]->SetName(Form("Ryaa_centralityBin%d_ptBin%dAndHigher",icent,ipt)); hIaa[icent][ipt]->Write(); } } fResults->Close(); }
void drawPtDependencePA(TString dirName, int prodDate, int jetPtCut, TString fNameSuffix, TString outNameSuffix){ bool saveFigures=true; const int nPtBin = 4; double ptBin[nPtBin+1] = {40, 50,60,80,9999}; double ptBinPaDraw[nPtBin+1] = { 40.5 ,49.5, 58.5, 76.5, 123. } ; // double AvePtBin[nPtBin+1] = { 45, 54.1479, 67.4204, 99.6956, 9999}; const int nCentBinHI = 2; const int centBinHI[nCentBinHI +1] = {-1, 10030, 13099}; TH1D* hxjg[7][10][6]; // [Collision][centrality][pt] TH1D* hJetPt[7][10][6]; // [Collision][centrality][pt] TH1D* hJetPtIaaBin[7][10][6]; // [Collision][centrality][pt] TH1D* hDphi[7][10][6]; // [Collision][centrality][pt] TH1D* meanXjg[7][10]; // [Collision][centrality] TH1D* meanJetPt[7][10]; // [Collisi on][centrality] TH1D* rjg[7][5]; // [Collision][centrality] for (int icoll=0 ; icoll<6 ; icoll++) { for (int icent=1 ; icent<= 10 ; icent++) { meanXjg[icoll][icent] = new TH1D( Form("meanXjg_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); <X_{J#gamma}>",nPtBin,ptBinPaDraw); meanJetPt[icoll][icent] = new TH1D( Form("meanJetPt_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); <p_{T}^{Jet}>",nPtBin,ptBinPaDraw); rjg[icoll][icent] = new TH1D( Form("rjg_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); R_{J#gamma}",nPtBin,ptBinPaDraw); for (int ipt=1 ; ipt<=nPtBin ; ipt++) { hxjg[icoll][icent][ipt] = NULL; hJetPt[icoll][icent][ipt] = NULL; hJetPtIaaBin[icoll][icent][ipt] = NULL; hDphi[icoll][icent][ipt] = NULL; } } } TFile* histFile[7][6]; // [Collision][pt] for (int ipt=1 ; ipt<=nPtBin ; ipt++) { for (int icoll=0 ; icoll<6 ; icoll++) { TString sampleName = getSampleName( icoll ) ; char* fname; if (fNameSuffix.EqualTo("")) { // if no explicit suffix for the input file name is specified fname = Form("ffFiles/%s/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr%d_%d.root",dirName.Data(), sampleName.Data(), (int)ptBin[ipt-1], (int)ptBin[ipt], (int)jetPtCut, prodDate); } else { fname = Form("ffFiles/%s/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr%d_%d_%s.root",dirName.Data(), sampleName.Data(), (int)ptBin[ipt-1], (int)ptBin[ipt], (int)jetPtCut, prodDate, fNameSuffix.Data()); } histFile[icoll][ipt] = new TFile(fname) ; cout << " Reading file : " << fname << endl; if ( histFile[icoll][ipt]->IsZombie() == false ) { cout << " Success." << endl; if ( (icoll == kPPDATA) || (icoll == kPPMC) ) { // PP int icent = 7 ; hxjg[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("xjg_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("xjg_icent%d_final", icent) << endl; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPt_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetPt_icent%d_final", icent) << endl; hJetPtIaaBin[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPtForIaa_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetPtForIaa_icent%d_final", icent) << endl; hDphi[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetDphi_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetDphi_icent%d_final", icent) << endl; //hEta[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("etaJg_icent%d_final", icent)) ; //cout << " Getting histogram : " << Form("etaJg_icent%d_final", icent) << endl; } if ( (icoll == kPADATA) || (icoll == kPAMC) ) { // PA int icent = 1 ; hxjg[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("xjg_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("xjg_icent%d_final", icent) << endl; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPt_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetPt_icent%d_final", icent) << endl; hJetPtIaaBin[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPtForIaa_icent%d_final", icent ) ) ; cout << " Getting histogram : " << Form("jetPtForIaa_icent%d_final", icent ) << endl; hDphi[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetDphi_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetDphi_icent%d_final", icent) << endl; //hEta[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("etaJg_icent%d_final", icent)) ; //cout << " Getting histogram : " << Form("etaJg_icent%d_final", icent) << endl; } if ( ( icoll == kHIDATA) || (icoll == kHIMC) ) { // PbPb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { hxjg[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("xjg_icent%d_final", centBinHI[icent] )) ; cout << " Getting histogram : " << Form("xjg_icent%d_final", centBinHI[icent] ) << endl; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPt_icent%d_final", centBinHI[icent] ) ); cout << " Getting histogram : " << Form("jetPt_icent%d_final", centBinHI[icent] ) << endl; hJetPtIaaBin[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPtForIaa_icent%d_final", centBinHI[icent] ) ); cout << " Getting histogram : " << Form("jetPtForIaa_icent%d_final", centBinHI[icent] ) << endl; hDphi[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetDphi_icent%d_final", centBinHI[icent] ) ) ; cout << " Getting histogram : " << Form("jetDphi_icent%d_final", centBinHI[icent])<< endl; //hEta[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("etaJg_icent%d_final", centBinHI[icent] ) ) ; //cout << " Getting histogram : " << Form("etaJg_icent%d_final", centBinHI[icent])<< endl; } } } else cout << " no such file " << endl; } } for (int ipt=1 ; ipt<=nPtBin ; ipt++) { for (int icoll=0 ; icoll<6 ; icoll++) { for (int icent=1 ; icent<= 10 ; icent++ ) { if ( hxjg[icoll][icent][ipt] == NULL ) continue; // emtpy histogram double rVal, rErr; rVal = hxjg[icoll][icent][ipt]->IntegralAndError(1, hxjg[icoll][icent][ipt]->GetNbinsX(), rErr, "width"); rjg[icoll][icent]->SetBinContent( ipt, rVal ); rjg[icoll][icent]->SetBinError ( ipt, rErr ); meanXjg[icoll][icent]->SetBinContent( ipt, hxjg[icoll][icent][ipt]->GetMean() ); meanXjg[icoll][icent]->SetBinError ( ipt, hxjg[icoll][icent][ipt]->GetMeanError() ); meanJetPt[icoll][icent]->SetBinContent( ipt, hJetPt[icoll][icent][ipt]->GetMean() ); meanJetPt[icoll][icent]->SetBinError ( ipt, hJetPt[icoll][icent][ipt]->GetMeanError() ); } } } TCanvas* c1 = new TCanvas("c1","",1200,350); makeMultiPanelCanvas(c1,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c1->cd(ipt); handsomeTH1(hDphi[kPAMC][1][ipt], 1); hDphi[kPAMC][1][ipt]->SetXTitle("#Delta#phi_{J#gamma}"); hDphi[kPAMC][1][ipt]->SetYTitle("Normalized entries"); hDphi[kPAMC][1][ipt]->SetMarkerStyle(24); hDphi[kPAMC][1][ipt]->Scale(1./hDphi[kPAMC][1][ipt]->Integral("width")); hDphi[kPAMC][1][ipt]->SetAxisRange(0,3.141592,"X"); hDphi[kPAMC][1][ipt]->SetAxisRange(0.01,30,"Y"); hDphi[kPAMC][1][ipt]->Draw(); handsomeTH1(hDphi[kPADATA][1][ipt], kRed); hDphi[kPADATA][1][ipt]->Scale(1./hDphi[kPADATA][1][ipt]->Integral("width")); hDphi[kPADATA][1][ipt]->Draw("same"); gPad->SetLogy(); double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} > %dGeV, ", (int)ptBin[ipt-1]), 0.12+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.12+dx1,0.85,1,15);//yeonju 130823 } c1->cd(1); TLegend *l1 = new TLegend(0.2199474,0.5971384,0.7283974,0.8119819,NULL,"brNDC"); easyLeg(l1,"5.02TeV"); l1->AddEntry(hDphi[kPAMC][1][1],"pA pythia+HIJING ","p"); l1->AddEntry(hDphi[kPADATA][1][1],"pA Data","p"); l1->Draw(); if (saveFigures) { if(outNameSuffix.EqualTo("")){ c1->SaveAs("figures/pT_dependence_dphi_pA_figure1.pdf"); c1->SaveAs("figures/pT_dependence_dphi_pA_figure1.gif"); } else { c1->SaveAs(Form("figures/pT_dependence_dphi_pA_figure1_%s.pdf", outNameSuffix.Data())); c1->SaveAs(Form("figures/pT_dependence_dphi_pA_figure1_%s.gif", outNameSuffix.Data())); } } TH1D* hTempPt = new TH1D("hTemp",";p_{T}^{#gamma} (GeV);",200,10,300); TCanvas* c2 = new TCanvas("c2","",1200,350); makeMultiPanelCanvas(c2,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c2->cd(ipt); hTempPt->SetXTitle("p_{T}^{Jet} (GeV)"); hTempPt->SetYTitle("#frac{dN}{dp_{T}} #frac{1}{N}"); hTempPt->SetAxisRange(10,150,"X"); // hTempPt->SetAxisRange(0,0.025,"Y"); hTempPt->SetAxisRange(0,0.08,"Y"); handsomeTH1(hTempPt,0); hTempPt->DrawCopy(); // hJetPt[kPAMC][1][ipt]->Scale(1./rjg[kPAMC][1]->GetBinContent(ipt)); // rjg normalization handsomeTH1(hJetPt[kPAMC][1][ipt], 1); hJetPt[kPAMC][1][ipt]->SetMarkerStyle(24); hJetPt[kPAMC][1][ipt]->Draw("same"); handsomeTH1(hJetPt[kPADATA][1][ipt],kRed); // hJetPt[kPADATA][1][ipt]->Scale(1./rjg[kPADATA][1]->GetBinContent(ipt)); hJetPt[kPADATA][1][ipt]->Draw("same"); double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} > %dGeV, ", (int)ptBin[ipt-1]), 0.12+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.12+dx1,0.85,1,15);//yeonju 130823 onSun(30,0,200,0); } c2->cd(1); l1->Draw(); if (saveFigures) { if(outNameSuffix.EqualTo("")){ c2->SaveAs("figures/pT_dependence_jetPt_pA_figure1.pdf"); c2->SaveAs("figures/pT_dependence_jetPt_pA_figure1.gif"); } else { c2->SaveAs(Form("figures/pT_dependence_jetPt_pA_figure1_%s.pdf", outNameSuffix.Data())); c2->SaveAs(Form("figures/pT_dependence_jetPt_pA_figure1_%s.gif", outNameSuffix.Data())); } } TLegend *l2 = new TLegend(0.2116935,0.7012712,0.6149194,0.904661,NULL,"brNDC"); easyLeg(l2,"5.02TeV"); l2->AddEntry(hDphi[kPAMC][1][1],"pPb pythia+HIJING","p"); l2->AddEntry(hDphi[kPADATA][1][1],"pPb Data","p"); TCanvas* c21 = new TCanvas("c21","",500,500); handsomeTH1(meanJetPt[kPAMC][1], 1); meanJetPt[kPAMC][1]->SetYTitle("<p_{T}^{Jet}> (>30GeV)"); meanJetPt[kPAMC][1]->SetMarkerStyle(24); // meanJetPt[kPAMC][1]->SetAxisRange(-2,2,"X"); meanJetPt[kPAMC][1]->SetAxisRange(40,115,"Y"); meanJetPt[kPAMC][1]->Draw(); handsomeTH1(meanJetPt[kPADATA][1],kRed); meanJetPt[kPADATA][1]->Draw("same"); l1 ->Draw(); if (saveFigures) { if(outNameSuffix.EqualTo("")){ c21->SaveAs("figures/pT_dependence_jetPt_pA_figure2.pdf"); c21->SaveAs("figures/pT_dependence_jetPt_pA_figure2.gif"); } else { c21->SaveAs(Form("figures/pT_dependence_jetPt_pA_figure2_%s.pdf", outNameSuffix.Data())); c21->SaveAs(Form("figures/pT_dependence_jetPt_pA_figure2_%s.gif", outNameSuffix.Data())); } } TCanvas* c3 = new TCanvas("c3","",1200,350); makeMultiPanelCanvas(c3,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c3->cd(ipt); handsomeTH1(hxjg[kPAMC][1][ipt], 1); hxjg[kPAMC][1][ipt]->SetXTitle("x_{J#gamma}"); hxjg[kPAMC][1][ipt]->SetYTitle("#frac{dN}{dp_{T}} #frac{1}{N}"); hxjg[kPAMC][1][ipt]->SetMarkerStyle(24); // hxjg[kPAMC][1][ipt]->Scale(1./rjg[kPAMC][1]->GetBinContent(ipt)); // rjg normalization hxjg[kPAMC][1][ipt]->SetAxisRange(0,2,"X"); hxjg[kPAMC][1][ipt]->Draw(); handsomeTH1(hxjg[kPADATA][1][ipt],kRed); // hxjg[kPADATA][1][ipt]->Scale(1./rjg[kPADATA][1]->GetBinContent(ipt)); // rjg normalization hxjg[kPADATA][1][ipt]->Draw("same"); double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} > %dGeV, ", (int)ptBin[ipt-1]), 0.12+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.12+dx1,0.85,1,15);//yeonju 130823 onSun(30,0,200,0); } c3->cd(1); l1->Draw(); if (saveFigures) { if(outNameSuffix.EqualTo("")){ c3->SaveAs("figures/pT_dependence_xjg_pA_figure1.pdf"); c3->SaveAs("figures/pT_dependence_xjg_pA_figure1.gif"); } else { c3->SaveAs(Form("figures/pT_dependence_xjg_pA_figure1_%s.pdf", outNameSuffix.Data())); c3->SaveAs(Form("figures/pT_dependence_xjg_pA_figure1_%s.gif", outNameSuffix.Data())); } } TCanvas* c31 = new TCanvas("c31","",500,500); handsomeTH1(meanXjg[kPAMC][1], 1); meanXjg[kPAMC][1]->SetYTitle("<x_{J#gamma}> (>30GeV)"); meanXjg[kPAMC][1]->SetMarkerStyle(24); // meanXjg[kPAMC][1]->SetAxisRange(-2,2,"X"); meanXjg[kPAMC][1]->SetAxisRange(0.6,1.2,"Y"); meanXjg[kPAMC][1]->Draw(); handsomeTH1(meanXjg[kPADATA][1],kRed); meanXjg[kPADATA][1]->Draw("same"); l1->Draw(); if (saveFigures) { if(outNameSuffix.EqualTo("")){ c31->SaveAs("figures/pT_dependence_xjg_pA_figure2.pdf"); c31->SaveAs("figures/pT_dependence_xjg_pA_figure2.gif"); } else { c31->SaveAs(Form("figures/pT_dependence_xjg_pA_figure2_%s.pdf", outNameSuffix.Data())); c31->SaveAs(Form("figures/pT_dependence_xjg_pA_figure2_%s.gif", outNameSuffix.Data())); } } TCanvas* c_rjg = new TCanvas("c_rjg","",500,500); handsomeTH1(rjg[kPAMC][1], 1); rjg[kPAMC][1]->SetYTitle("R_{J#gamma}"); rjg[kPAMC][1]->SetMarkerStyle(24); // rjg[kPAMC][1]->SetAxisRange(-2,2,"X"); rjg[kPAMC][1]->SetAxisRange(0.0,1.1,"Y"); rjg[kPAMC][1]->Draw(); handsomeTH1(rjg[kPADATA][1],kRed); rjg[kPADATA][1]->Draw("same"); l1->Draw(); if (saveFigures) { if(outNameSuffix.EqualTo("")){ c_rjg->SaveAs("figures/pT_dependence_rjg_pA_figure1.pdf"); c_rjg->SaveAs("figures/pT_dependence_rjg_pA_figure1.gif"); } else { c_rjg->SaveAs(Form("figures/pT_dependence_rjg_pA_figure1_%s.pdf", outNameSuffix.Data())); c_rjg->SaveAs(Form("figures/pT_dependence_rjg_pA_figure1_%s.gif", outNameSuffix.Data())); } } // Save the final root histogram files TFile* fResults; if(outNameSuffix.EqualTo("")){ fResults = new TFile("resultHistograms.root", "update"); } else { fResults = new TFile(Form("resultHistograms_%s.root", outNameSuffix.Data()), "update"); } // TFile * fResults = new TFile("resultHistograms_ppb_photonEnergy_ScaledBy0.015.root","update"); meanJetPt[kPADATA][1]->SetName(Form("meanJetPt_ppb")); meanJetPt[kPADATA][1]->Write(); meanXjg[kPADATA][1]->SetName(Form("meanXjg_ppb")); meanXjg[kPADATA][1]->Write(); rjg[kPADATA][1]->SetName(Form("meanRjg_ppb")); rjg[kPADATA][1]->Write(); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { hJetPt[kPADATA][1][ipt]->SetName(Form("dNdJetPt_ppb_ptBin%d",ipt)); hJetPt[kPADATA][1][ipt]->Write(); hJetPtIaaBin[kPADATA][1][ipt]->SetName(Form("dNdJetPt_IaaBin_ppb_ptBin%d",ipt)); hJetPtIaaBin[kPADATA][1][ipt]->Write(); hxjg[kPADATA][1][ipt]->SetName(Form("dNdXjg_ppb_ptBin%d",ipt)); hxjg[kPADATA][1][ipt]->Write(); hDphi[kPADATA][1][ipt]->SetName(Form("dNdphi_ppb_ptBin%d",ipt)); hDphi[kPADATA][1][ipt]->Write(); } fResults->Close(); }
void drawPtDependencePPSmeared(int centBin = 10030, TString dirName="nominal", int prodDate=20131021, int jetPtCut=30) { TH1::SetDefaultSumw2(); const int nPtBin = 4; double ptBin[nPtBin+1] = {40, 50,60,80,9999}; double ptBinPaDraw[nPtBin+1] = { 40.5 ,49.5, 58.5, 76.5, 123. } ; // double AvePtBin[nPtBin+1] = { 45, 54.1479, 67.4204, 99.6956, 9999}; const int nCentBinHI = 2; const int centBinHI[nCentBinHI +1] = {-1, 10030, 13099}; TH1D* hxjg[7][10][6]; // [Collision][centrality][pt] TH1D* hJetPt[7][10][6]; // [Collision][centrality][pt] TH1D* hJetPtIaaBin[7][10][6]; // [Collision][centrality][pt] TH1D* hDphi[7][10][6]; // [Collision][centrality][pt] TH1D* hEta[7][10][6]; // [Collision][centrality][pt] TH1D* meanXjg[7][10]; // [Collision][centrality] TH1D* meanJetPt[7][10]; // [Collisi on][centrality] TH1D* rjg[7][10]; // [Collision][centrality] for (int icoll=0 ; icoll<6 ; icoll++) { for (int icent=1 ; icent<= 10 ; icent++) { meanXjg[icoll][icent] = new TH1D( Form("meanXjg_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); <X_{J#gamma}>",nPtBin,ptBinPaDraw); meanJetPt[icoll][icent] = new TH1D( Form("meanJetPt_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); <p_{T}^{Jet}>",nPtBin,ptBinPaDraw); rjg[icoll][icent] = new TH1D( Form("rjg_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); R_{J#gamma}",nPtBin,ptBinPaDraw); for (int ipt=1 ; ipt<=nPtBin ; ipt++) { hxjg[icoll][icent][ipt] = NULL; hJetPt[icoll][icent][ipt] = NULL; hJetPtIaaBin[icoll][icent][ipt] = NULL; hDphi[icoll][icent][ipt] = NULL; hEta[icoll][icent][ipt] = NULL; } } } TFile* histFile[7][6]; // [Collision][pt] for (int ipt=1 ; ipt<=nPtBin ; ipt++) { for (int icoll=0 ; icoll<6 ; icoll++) { TString sampleName = getSampleName( icoll ) ; char* fname = Form("ffFiles/%s/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr%d_%d.root",dirName.Data(), sampleName.Data(), (int)ptBin[ipt-1], (int)ptBin[ipt], (int)jetPtCut, prodDate); histFile[icoll][ipt] = new TFile(fname) ; cout << " Reading file : " << fname << endl; if ( histFile[icoll][ipt]->IsZombie() == false ) { cout << " Success." << endl; if ( (icoll == kPPDATA) || (icoll == kPPMC) ) { // PP int icent = 7 ; hxjg[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("xjg_icent%d_final", centBin)); cout << " Getting histogram : " << Form("xjg_icent%d_final", icent) << endl; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPt_icent%d_final", centBin)); cout << " Getting histogram : " << Form("jetPt_icent%d_final", icent) << endl; hJetPtIaaBin[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPtForIaa_icent%d_final", centBin)); cout << " Getting histogram : " << Form("jetPtForIaa_icent%d_final", icent) << endl; hDphi[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetDphi_icent%d_final", centBin)); cout << " Getting histogram : " << Form("jetDphi_icent%d_final", icent) << endl; hEta[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("etaJg_icent%d_final", centBin)) ; cout << " Getting histogram : " << Form("etaJg_icent%d_final", centBin) << endl; } if ( ( icoll == kHIDATA) || (icoll == kHIMC) ) { // PbPb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { hxjg[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("xjg_icent%d_final", centBinHI[icent] )) ; cout << " Getting histogram : " << Form("xjg_icent%d_final", centBinHI[icent] ) << endl; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPt_icent%d_final", centBinHI[icent] ) ); cout << " Getting histogram : " << Form("jetPt_icent%d_final", centBinHI[icent] ) << endl; hJetPtIaaBin[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPtForIaa_icent%d_final", centBinHI[icent] ) ); cout << " Getting histogram : " << Form("jetPtForIaa_icent%d_final", centBinHI[icent] ) << endl; hDphi[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetDphi_icent%d_final", centBinHI[icent] ) ) ; cout << " Getting histogram : " << Form("jetDphi_icent%d_final", icent)<< endl; hEta[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("etaJg_icent%d_final", centBinHI[icent] ) ) ; cout << " Getting histogram : " << Form("etaJg_icent%d_final", icent)<< endl; } } } else cout << " no such file " << endl; } } for (int ipt=1 ; ipt<=nPtBin ; ipt++) { for (int icoll=0 ; icoll<6 ; icoll++) { for (int icent=1 ; icent<= 10 ; icent++ ) { if ( hxjg[icoll][icent][ipt] == NULL ) continue; // emtpy histogram double rVal, rErr; rVal = hxjg[icoll][icent][ipt]->IntegralAndError(1, hxjg[icoll][icent][ipt]->GetNbinsX(), rErr, "width"); printf("icoll: %d icent: %d ipt: %d rval: %lf\n",icoll, icent, ipt, rVal); rjg[icoll][icent]->SetBinContent( ipt, rVal ); rjg[icoll][icent]->SetBinError ( ipt, rErr ); meanXjg[icoll][icent]->SetBinContent( ipt, hxjg[icoll][icent][ipt]->GetMean() ); meanXjg[icoll][icent]->SetBinError ( ipt, hxjg[icoll][icent][ipt]->GetMeanError() ); meanJetPt[icoll][icent]->SetBinContent( ipt, hJetPt[icoll][icent][ipt]->GetMean() ); meanJetPt[icoll][icent]->SetBinError ( ipt, hJetPt[icoll][icent][ipt]->GetMeanError() ); } } } TCanvas* c1 = new TCanvas("c1","",1200,350); makeMultiPanelCanvas(c1,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c1->cd(ipt); // draw pp handsomeTH1(hDphi[kPPDATA][7][ipt], 1); hDphi[kPPDATA][7][ipt]->SetXTitle("#Delta#phi_{J#gamma}"); hDphi[kPPDATA][7][ipt]->SetYTitle("Normalized entries"); hDphi[kPPDATA][7][ipt]->SetMarkerStyle(24); hDphi[kPPDATA][7][ipt]->Scale(1./hDphi[kPPDATA][7][ipt]->Integral("width")); hDphi[kPPDATA][7][ipt]->SetAxisRange(0,3.141592,"X"); hDphi[kPPDATA][7][ipt]->SetAxisRange(0.01,30,"Y"); hDphi[kPPDATA][7][ipt]->Draw(); // draw pbpb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hDphi[kHIDATA][icent][ipt],kRed); if ( icent == 2 ) hDphi[kHIDATA][icent][ipt]->SetMarkerStyle(24); hDphi[kHIDATA][icent][ipt]->Scale(1./hDphi[kHIDATA][icent][ipt]->Integral("width")); hDphi[kHIDATA][icent][ipt]->Draw("same"); } gPad->SetLogy(); // onSun(30,0,200,0); } c1->cd(1); TLegend *ly = new TLegend(0.4913112,0.6561548,0.9997611,0.9431145,NULL,"brNDC"); easyLeg(ly,"2.76TeV"); ly->AddEntry(hDphi[kPPDATA][7][1],"pp ","p"); ly->AddEntry(hDphi[kHIDATA][2][1],"PbPb 0-30%","p"); TLegend *l1 = new TLegend(0.1995968,0.7097458,0.7076613,0.9237288,NULL,"brNDC"); easyLeg(l1,"2.76TeV"); l1->AddEntry(hDphi[kPPDATA][7][1],"pp ","p"); l1->AddEntry(hDphi[kHIDATA][2][1],"PbPb 30-100%","p"); l1->AddEntry(hDphi[kHIDATA][1][1],"PbPb 0-30%","p"); l1->Draw(); // c1->SaveAs("figures/pT_dependence_dphi_pp_pbpb_figure1.pdf"); // c1->SaveAs("figures/pT_dependence_dphi_pp_pbpb_figure1.gif"); TH1D* hTempPt = new TH1D("hTemp",";p_{T}^{#gamma} (GeV);",200,10,300); TCanvas* c2 = new TCanvas("c2","",1200,350); makeMultiPanelCanvas(c2,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c2->cd(ipt); // draw pp hTempPt->SetXTitle("p_{T}^{Jet} (GeV)"); hTempPt->SetYTitle("#frac{dN}{dp_{T}} #frac{1}{N}"); hTempPt->SetAxisRange(10,150,"X"); // hTempPt->SetAxisRange(0,0.025,"Y"); hTempPt->SetAxisRange(0,0.08,"Y"); handsomeTH1(hTempPt,0); hTempPt->DrawCopy(); // hJetPt[kPPDATA][7][ipt]->Scale(1./rjg[kPPDATA][7]->GetBinContent(ipt)); // rjg normalization handsomeTH1(hJetPt[kPPDATA][7][ipt], 1); hJetPt[kPPDATA][7][ipt]->SetMarkerStyle(24); hJetPt[kPPDATA][7][ipt]->Draw("same"); // draw pbpb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hJetPt[kHIDATA][icent][ipt],kRed); // hJetPt[kHIDATA][icent][ipt]->Scale(1./rjg[kHIDATA][icent]->GetBinContent(ipt)); // rjg normalization // hJetPt[kHIDATA][icent][ipt]->Rebin(10); // hJetPt[kHIDATA][icent][ipt]->Scale(1/10.); if ( icent == 2 ) hJetPt[kHIDATA][icent][ipt]->SetMarkerStyle(24); if ( icent == 2 ) hJetPt[kHIDATA][icent][ipt]->Draw("same"); if ( icent == 1 ) hJetPt[kHIDATA][icent][ipt]->Draw("same"); } double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} > %dGeV, ", (int)ptBin[ipt-1]), 0.12+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.12+dx1,0.85,1,15);//yeonju 130823 onSun(30,0,200,0); } c2->cd(1); l1->Draw(); c2->SaveAs("figures/pT_dependence_jetPt_pp_pbpb_figure1.pdf"); c2->SaveAs("figures/pT_dependence_jetPt_pp_pbpb_figure1.gif"); TLegend *l2 = new TLegend(0.2116935,0.7012712,0.6149194,0.904661,NULL,"brNDC"); easyLeg(l2,"2.76TeV"); l2->AddEntry(hDphi[kPPDATA][7][1],"pp ","p"); l2->AddEntry(hDphi[kHIDATA][1][1],"PbPb 30-100%","p"); l2->AddEntry(hDphi[kHIDATA][2][1],"PbPb 0-30%","p"); TCanvas* c21 = new TCanvas("c21","",500,500); handsomeTH1(meanJetPt[kPPDATA][7], 1); meanJetPt[kPPDATA][7]->SetYTitle("<p_{T}^{Jet}> (>30GeV)"); meanJetPt[kPPDATA][7]->SetMarkerStyle(24); // meanJetPt[kPPDATA][7]->SetAxisRange(-2,2,"X"); meanJetPt[kPPDATA][7]->SetAxisRange(40,90,"Y"); meanJetPt[kPPDATA][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(meanJetPt[kHIDATA][icent],kRed); if ( icent == 2 ) meanJetPt[kHIDATA][icent]->SetMarkerStyle(24); //if ( icent == 2 ) meanJetPt[kHIDATA][icent]->Draw("same"); meanJetPt[kHIDATA][icent]->Draw("same"); } l1 ->Draw(); c21->SaveAs("figures/pT_dependence_jetPt_pp_pbpb_figure2.pdf"); c21->SaveAs("figures/pT_dependence_jetPt_pp_pbpb_figure2.gif"); TCanvas* c3 = new TCanvas("c3","",1200,350); makeMultiPanelCanvas(c3,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c3->cd(ipt); // draw pp handsomeTH1(hxjg[kPPDATA][7][ipt], 1); hxjg[kPPDATA][7][ipt]->SetXTitle("x_{J#gamma}"); hxjg[kPPDATA][7][ipt]->SetYTitle("#frac{dN}{dp_{T}} #frac{1}{N}"); hxjg[kPPDATA][7][ipt]->SetMarkerStyle(24); // hxjg[kPPDATA][7][ipt]->Scale(1./rjg[kPPDATA][7]->GetBinContent(ipt)); // rjg normalization // hxjg[kPPDATA][7][ipt]->Rebin(10); // hxjg[kPPDATA][7][ipt]->Scale(1./10); hxjg[kPPDATA][7][ipt]->SetAxisRange(0,2.5,"X"); hxjg[kPPDATA][7][ipt]->SetAxisRange(0,3,"Y"); hxjg[kPPDATA][7][ipt]->Draw(); // draw pbpb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hxjg[kHIDATA][icent][ipt],kRed); // hxjg[kHIDATA][icent][ipt]->Scale(1./rjg[kHIDATA][icent]->GetBinContent(ipt)); // rjg normalization // hxjg[kHIDATA][icent][ipt]->Rebin(10); // hxjg[kHIDATA][icent][ipt]->Scale(1./10); if ( icent == 2 ) hxjg[kHIDATA][icent][ipt]->SetMarkerStyle(24); if ( icent == 2 ) hxjg[kHIDATA][icent][ipt]->Draw("same"); if ( icent == 1 ) hxjg[kHIDATA][icent][ipt]->Draw("same"); } double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} > %dGeV, ", (int)ptBin[ipt-1]), 0.12+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.12+dx1,0.85,1,15);//yeonju 130823 onSun(30,0,200,0); } c3->cd(1); l1->Draw(); c3->SaveAs("figures/pT_dependence_xjg_pp_pbpb_figure1.pdf"); c3->SaveAs("figures/pT_dependence_xjg_pp_pbpb_figure1.gif"); TCanvas* c31 = new TCanvas("c31","",500,500); handsomeTH1(meanXjg[kPPDATA][7], 1); meanXjg[kPPDATA][7]->SetYTitle("<x_{J#gamma}> (>30GeV)"); meanXjg[kPPDATA][7]->SetMarkerStyle(24); // meanXjg[kPPDATA][7]->SetAxisRange(-2,2,"X"); meanXjg[kPPDATA][7]->SetAxisRange(0.6,1.2,"Y"); meanXjg[kPPDATA][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(meanXjg[kHIDATA][icent],kRed); if ( icent == 2 ) meanXjg[kHIDATA][icent]->SetMarkerStyle(24); //if ( icent != 2 ) meanXjg[kHIDATA][icent]->Draw("same"); meanXjg[kHIDATA][icent]->Draw("same"); } l1->Draw(); c31->SaveAs("figures/pT_dependence_xjg_pp_pbpb_figure1.pdf"); c31->SaveAs("figures/pT_dependence_xjg_pp_pbpb_figure1.gif"); TCanvas* c_rjg = new TCanvas("c_rjg","",500,500); handsomeTH1(rjg[kPPDATA][7], 1); rjg[kPPDATA][7]->SetYTitle("r_{J#gamma}"); rjg[kPPDATA][7]->SetMarkerStyle(24); // rjg[kPPDATA][7]->SetAxisRange(-2,2,"X"); rjg[kPPDATA][7]->SetAxisRange(0.0,1.1,"Y"); rjg[kPPDATA][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(rjg[kHIDATA][icent],kRed); if ( icent == 2 ) rjg[kHIDATA][icent]->SetMarkerStyle(24); // if ( icent != 2 ) rjg[kHIDATA][icent]->Draw("same"); rjg[kHIDATA][icent]->Draw("same"); } l1->Draw(); c_rjg->SaveAs("figures/pT_dependence_rjg_pp_pbpb_figure1.pdf"); c_rjg->SaveAs("figures/pT_dependence_rjg_pp_pbpb_figure1.gif"); // Save the final root histogram files TFile * fResults = new TFile(Form("resultHistograms_ppSmeared%d.root",centBin),"update"); // pp meanJetPt[kPPDATA][7]->SetName(Form("meanJetPt_pp")); meanJetPt[kPPDATA][7]->Write(); meanXjg[kPPDATA][7]->SetName(Form("meanXjg_pp")); meanXjg[kPPDATA][7]->Write(); rjg[kPPDATA][7]->SetName(Form("meanRjg_pp")); rjg[kPPDATA][7]->Write(); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { hJetPt[kPPDATA][7][ipt]->SetName(Form("dNdJetPt_pp_ptBin%d",ipt)); hJetPt[kPPDATA][7][ipt]->Write(); hJetPtIaaBin[kPPDATA][7][ipt]->SetName(Form("dNdJetPt_IaaBin_pp_ptBin%d",ipt)); hJetPtIaaBin[kPPDATA][7][ipt]->Write(); hxjg[kPPDATA][7][ipt]->SetName(Form("dNdXjg_pp_ptBin%d",ipt)); hxjg[kPPDATA][7][ipt]->Write(); hDphi[kPPDATA][7][ipt]->SetName(Form("dNdphi_pp_ptBin%d",ipt)); hDphi[kPPDATA][7][ipt]->Write(); } // PbPb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { hJetPt[kHIDATA][icent][ipt]->SetName(Form("dNdJetPt_pbpb_centralityBin%d_ptBin%d",icent,ipt)); hJetPt[kHIDATA][icent][ipt]->Write(); hJetPtIaaBin[kHIDATA][icent][ipt]->SetName(Form("dNdJetPt_IaaBin_pbpb_centralityBin%d_ptBin%d",icent,ipt)); hJetPtIaaBin[kHIDATA][icent][ipt]->Write(); hxjg[kHIDATA][icent][ipt]->SetName(Form("dNdXjg_pbpb_centralityBin%d_ptBin%d",icent,ipt)); hxjg[kHIDATA][icent][ipt]->Write(); hDphi[kHIDATA][icent][ipt]->SetName(Form("dNdphi_pbpb_centralityBin%d_ptBin%d",icent,ipt)); hDphi[kHIDATA][icent][ipt]->Write(); } meanJetPt[kHIDATA][icent]->SetName(Form("meanJetPt_pbpb_centralityBin%d",icent)); meanJetPt[kHIDATA][icent]->Write(); meanXjg[kHIDATA][icent]->SetName(Form("meanXjg_pbpb_centralityBin%d",icent)); meanXjg[kHIDATA][icent]->Write(); rjg[kHIDATA][icent]->SetName(Form("meanRjg_pbpb_centralityBin%d",icent)); rjg[kHIDATA][icent]->Write(); } fResults->Close(); }
void gammaTrkHistProducer(sampleType collision = kPPDATA, float photonPtThr=20, float photonPtThrUp=9999, int icent =7){ TH1::SetDefaultSumw2(); TString stringSampleType = getSampleName(collision); ""; TDatime* date = new TDatime(); TString outName= Form("photonTrackCorr_%s_output_photonPtThr%d_to_%d_%d.root",stringSampleType.Data(),(int)photonPtThr, (int)photonPtThrUp, date->GetDate()); delete date; int lowerCent(0), upperCent(0); TCut centCut = ""; if ( (collision ==kHIDATA) || (collision ==kHIMC) ) { lowerCent = ((icent/100)%100) *2 ; upperCent = (icent%100)*2 -1 ; centCut = Form("cBin >= %d && cBin<= %d",lowerCent,upperCent); } else if ( (collision ==kPPDATA) || (collision==kPPMC) ){ // if it's pp centCut = "(1==1)"; // icent = 7; // for pp, centrality is set as the smearing } else { // pPb centCut = Form( "hf4Sum > %f && hf4Sum <= %f", (float)centBinPa[icent-1], (float)centBinPa[icent]); } cout <<" centrality : " << centCut.GetTitle() << endl; ///////// Photon cut ////////////////////////////////////////////////////////////////////////////// cout <<" photon pt >" << photonPtThr << " GeV" << endl; TCut ptPhoCut = Form("photonEt>%.1f && photonEt<%.1f", (float)photonPtThr, (float)photonPtThrUp ); TCut caloIso; if ( (collision==kPPMC) || (collision==kPPDATA) ) caloIso = "(ecalIso < 4.2 && hcalIso < 2.2 && trackIso < 2) && hovere<0.1"; else if ( (collision==kHIMC) || (collision==kHIDATA) ) caloIso = "(sumIso<5) && hovere<0.1"; else { caloIso = "ecalIso < 4.2 && hcalIso < 2.2 && trackIso < 2 && hovere<0.1"; } TCut sbIso = "(sumIso>5) && (sumIso<20) && hovere<0.1"; // if ( (collision==kPPMC) || (collision==kPPDATA) || (collision==kPAMC) || (collision==kPADATA) ) // sbIso = "ecalIso < 4.2 && hcalIso < 2.2 && trackIso > 2 && trackIso < 5 && hovere<0.1"; TCut basicPhoCut = centCut && ptPhoCut && caloIso ; TCut sbPhoCut = centCut && ptPhoCut && sbIso ; TCut evtSeltCut = basicPhoCut; TCut sbSeltCut = sbPhoCut; TCut phoCandCut = "sigmaIetaIeta<0.010"; TCut phoDecayCut = "(sigmaIetaIeta>0.011) && (sigmaIetaIeta<0.017)"; if ( ( collision == kHIMC ) || (collision == kPPMC) || (collision == kPAMC)) phoCandCut = phoCandCut && "genIso<5 && abs(genMomId)<=22"; TString fname = ""; if ( collision == kHIDATA) fname = fnameHIDATA; // else if ( collision == kPADATA) fname = fnamePADATA; else if ( collision == kPPDATA) { if ( icent == 7 ) fname = fnamePPDATA; else if ( icent == 10010 ) fname = fnamePPDATA0010; else if ( icent == 11030 ) fname = fnamePPDATA1030; else if ( icent == 13050 ) fname = fnamePPDATA3050; else if ( icent == 15099 ) fname = fnamePPDATA5099; else if ( icent == 10030 ) fname = fnamePPDATA0030; else if ( icent == 13099 ) fname = fnamePPDATA30100; } else fname = ""; multiTreeUtil* tgj = new multiTreeUtil(); tgj->addFile(fname, "tgj", evtSeltCut, 1); tgj->AddFriend("yTrk"); float purity(0); TString canvasName = Form("gifs/purity_%s_output_icent%d_photonPtThr%d-%d", stringSampleType.Data(), (int)icent, (int)photonPtThr, (int)photonPtThrUp); if ( collision == kPPDATA) { purity = 0.85; } else { fitResult fitr = getPurity(fname, collision, evtSeltCut, sbSeltCut, canvasName, photonPtThr, photonPtThrUp); purity = fitr.purity010; } GjSpectra* gSpec = new GjSpectra(); gSpec->init(Form("icent%d",(int)icent) ); tgj->Draw2(gSpec->hPtPhoCand, "photonEt", phoCandCut, ""); tgj->Draw2(gSpec->hPtPhoDecay, "photonEt", phoDecayCut, ""); // Obtain background subtracted spectra float candInt = gSpec->hPtPhoCand->Integral(); float decayInt = gSpec->hPtPhoDecay->Integral(); gSpec->hPtPhoSig->Reset(); gSpec->hPtPhoSig->Add(gSpec->hPtPhoCand); gSpec->hPtPhoSig->Add(gSpec->hPtPhoDecay, -(1. - purity) * candInt / decayInt); gSpec->hPtPhoSig->Scale(1./purity ) ; TFile outf = TFile(Form("ffFiles/%s",outName.Data()),"update"); gSpec->hPtPhoCand->Write(); gSpec->hPtPhoDecay->Write(); gSpec->hPtPhoSig->Write(); outf.Close(); // Objects multiTreeUtil* tObj[3]; tObj[kTrkRaw] = new multiTreeUtil(); tObj[kTrkBkg] = new multiTreeUtil(); tObj[kTrkRaw]->addFile(fname, "yTrk", evtSeltCut, 1); tObj[kTrkBkg]->addFile(fname, "mTrk", evtSeltCut, 1); tObj[kTrkRaw]->AddFriend("tgj"); tObj[kTrkBkg]->AddFriend("tgj"); TCut trkCut = Form("abs(eta)<%f && pt>%f", (float)cuttrkEta, (float)cuttrkPt ); TString varTrkDphi = Form("dphi"); corrFunctionTrk* cTrkDphi = new corrFunctionTrk(); TH1D* hTrkDphi = new TH1D(Form("dphi_icent%d",icent),";#Delta#phi_{Jet,#gamma} ;dN/d#Delta#phi",20,0,3.141592); gammaTrkSingle( gSpec, tObj, cTrkDphi, purity, collision, varTrkDphi, trkCut, "pt", phoCandCut, phoDecayCut, hTrkDphi, outName); TH1D* hTrkDphi1to2GeV = new TH1D(Form("dphi_icent%d_pt1to2GeV",icent),";#Delta#phi_{Jet,#gamma} ;dN/d#Delta#phi",20,0,3.141592); corrFunctionTrk* cTrkDphi1to2GeV = new corrFunctionTrk(); gammaTrkSingle( gSpec, tObj, cTrkDphi1to2GeV, purity, collision, varTrkDphi, trkCut && "pt > 1 && pt <=2", "pt", phoCandCut, phoDecayCut, hTrkDphi, outName); TH1D* hTrkDphi2to4GeV = new TH1D(Form("dphi_icent%d_pt2to4GeV",icent),";#Delta#phi_{Jet,#gamma} ;dN/d#Delta#phi",20,0,3.141592); corrFunctionTrk* cTrkDphi2to4GeV = new corrFunctionTrk(); gammaTrkSingle( gSpec, tObj, cTrkDphi2to4GeV, purity, collision, varTrkDphi, trkCut && "pt > 2 && pt <=4", "pt", phoCandCut, phoDecayCut, hTrkDphi, outName); TH1D* hTrkDphi4to8GeV = new TH1D(Form("dphi_icent%d_pt4to8GeV",icent),";#Delta#phi_{Jet,#gamma} ;dN/d#Delta#phi",20,0,3.141592); corrFunctionTrk* cTrkDphi4to8GeV = new corrFunctionTrk(); gammaTrkSingle( gSpec, tObj, cTrkDphi4to8GeV, purity, collision, varTrkDphi, trkCut && "pt > 4 && pt <=8", "pt", phoCandCut, phoDecayCut, hTrkDphi, outName); TH1D* hTrkDphi8andHighGeV = new TH1D(Form("dphi_icent%d_pt8andHighGeV",icent),";#Delta#phi_{Jet,#gamma} ;dN/d#Delta#phi",20,0,3.141592); corrFunctionTrk* cTrkDphi8andHighGeV = new corrFunctionTrk(); gammaTrkSingle( gSpec, tObj, cTrkDphi8andHighGeV, purity, collision, varTrkDphi, trkCut && "pt > 8", "pt", phoCandCut, phoDecayCut, hTrkDphi, outName); }
void drawPbPb_pp_subEnergy( bool saveFigures=true) { const int nPtBin = 4; double ptBin[nPtBin+1] = {40, 50,60,80,9999}; double ptBinPaDraw[nPtBin+1] = { 40.5 ,49.5, 58.5, 76.5, 123. } ; // double AvePtBin[nPtBin+1] = { 45, 54.1479, 67.4204, 99.6956, 9999}; const int nCentBinHI = 2; const int centBinHI[nCentBinHI +1] = {-1, 10030, 13099}; TH1D* hxjg[7][10][6]; // [Collision][centrality][pt] TH1D* hJetPt[7][10][6]; // [Collision][centrality][pt] TH1D* hGenJetPt[7][10][6]; // [Collision][centrality][pt] TH1D* hIaa[7][10][6]; // [Collision][centrality][pt] TH1D* hDphi[7][10][6]; // [Collision][centrality][pt] TH1D* hEta[7][10][6]; // [Collision][centrality][pt] TH1D* meanXjg[7][10]; // [Collision][centrality] TH1D* meanJetPt[7][10]; // [Collisi on][centrality] TH1D* meanGenJetPt[7][10]; // [Collisi on][centrality] TH1D* rjg[7][5]; // [Collision][centrality] TH1D* rGenjg[7][5]; // [Collision][centrality] for (int icoll=0 ; icoll<4 ; icoll++) { // only pp and PbPb for (int icent=1 ; icent<= 10 ; icent++) { meanXjg[icoll][icent] = new TH1D( Form("meanXjg_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); <X_{J#gamma}>",nPtBin,ptBinPaDraw); meanJetPt[icoll][icent] = new TH1D( Form("meanJetPt_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); <p_{T}^{Jet}>",nPtBin,ptBinPaDraw); meanGenJetPt[icoll][icent] = new TH1D( Form("meanGenJetPt_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); <p_{T}^{Jet}>",nPtBin,ptBinPaDraw); rjg[icoll][icent] = new TH1D( Form("rjg_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); R_{J#gamma}",nPtBin,ptBinPaDraw); rGenjg[icoll][icent] = new TH1D( Form("rGenjg_icoll%d_icent%d",icoll,icent), ";p_{T}^{#gamma} (GeV); R_{J#gamma}",nPtBin,ptBinPaDraw); for (int ipt=1 ; ipt<=nPtBin ; ipt++) { hxjg[icoll][icent][ipt] = NULL; hJetPt[icoll][icent][ipt] = NULL; hGenJetPt[icoll][icent][ipt] = NULL; hIaa[icoll][icent][ipt] = NULL; hDphi[icoll][icent][ipt] = NULL; hEta[icoll][icent][ipt] = NULL; } } } TFile* histFile[7][6]; // [Collision][pt] for (int ipt=1 ; ipt<=nPtBin ; ipt++) { for (int icoll=0 ; icoll<4 ; icoll++) { TString sampleName = getSampleName( icoll ) ; char* fname = Form("ffFilesEnergySub/photonTrackCorr_%s_output_photonPtThr%d_to_%d_jetPtThr30_20130917.root",sampleName.Data(), (int)ptBin[ipt-1], (int)ptBin[ipt]); histFile[icoll][ipt] = new TFile(fname) ; cout << " Reading file : " << fname << endl; if ( histFile[icoll][ipt]->IsZombie() == false ) { cout << " Success." << endl; if ( (icoll == kPPDATA) || (icoll == kPPMC) ) { // PP int icent = 7 ; hxjg[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("xjg_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("xjg_icent%d_final", icent) << endl; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPt_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetPt_icent%d_final", icent) << endl; hDphi[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetDphi_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("jetDphi_icent%d_final", icent) << endl; hEta[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("etaJg_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("etaJg_icent%d_final", icent) << endl; if ( icoll%2 == 1) { // if it is MC hGenJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("genJetPt_icent%d_final", icent)) ; cout << " Getting histogram : " << Form("genJetPt_icent%d_final", icent) << endl; } } if ( ( icoll == kHIDATA) || (icoll == kHIMC) ) { // PbPb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { hxjg[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("xjg_icent%d_final", centBinHI[icent] )) ; cout << " Getting histogram : " << Form("xjg_icent%d_final", centBinHI[icent] ) << endl; hJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetPt_icent%d_final", centBinHI[icent] ) ); cout << " Getting histogram : " << Form("jetPt_icent%d_final", centBinHI[icent] ) << endl; hDphi[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("jetDphi_icent%d_final", centBinHI[icent] ) ) ; cout << " Getting histogram : " << Form("jetDphi_icent%d_final", icent)<< endl; hEta[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("etaJg_icent%d_final", centBinHI[icent] ) ) ; cout << " Getting histogram : " << Form("etaJg_icent%d_final", icent)<< endl; if ( icoll%2 == 1) { // if it is MC hGenJetPt[icoll][icent][ipt] = (TH1D*)histFile[icoll][ipt]->Get(Form("genJetPt_icent%d_final",centBinHI[icent])); cout << " Getting histogram : " << Form("genJetPt_icent%d_final", centBinHI[icent] ) << endl; } } } } else cout << " no such file " << endl; } } for (int ipt=1 ; ipt<=nPtBin ; ipt++) { for (int icoll=0 ; icoll<4 ; icoll++) { for (int icent=1 ; icent<= 10 ; icent++ ) { if ( hxjg[icoll][icent][ipt] == NULL ) continue; // emtpy histogram double rVal, rErr; rVal = hxjg[icoll][icent][ipt]->IntegralAndError(1, hxjg[icoll][icent][ipt]->GetNbinsX(), rErr, "width"); rjg[icoll][icent]->SetBinContent( ipt, rVal ); rjg[icoll][icent]->SetBinError ( ipt, rErr ); meanXjg[icoll][icent]->SetBinContent( ipt, hxjg[icoll][icent][ipt]->GetMean() ); meanXjg[icoll][icent]->SetBinError ( ipt, hxjg[icoll][icent][ipt]->GetMeanError() ); meanJetPt[icoll][icent]->SetBinContent( ipt, hJetPt[icoll][icent][ipt]->GetMean() ); meanJetPt[icoll][icent]->SetBinError ( ipt, hJetPt[icoll][icent][ipt]->GetMeanError() ); if ( icoll%2 == 1) { // if it is MC meanGenJetPt[icoll][icent]->SetBinContent( ipt, hGenJetPt[icoll][icent][ipt]->GetMean() ); meanGenJetPt[icoll][icent]->SetBinError ( ipt, hGenJetPt[icoll][icent][ipt]->GetMeanError() ); rVal = hGenJetPt[icoll][icent][ipt]->IntegralAndError(1, hGenJetPt[icoll][icent][ipt]->GetNbinsX(), rErr, "width"); rGenjg[icoll][icent]->SetBinContent( ipt, rVal ); rGenjg[icoll][icent]->SetBinError ( ipt, rErr ); } } } } TH1D* hTempPt = new TH1D("hTemp",";p_{T}^{Jet} (GeV);#frac{dN}{dp_{T}} #frac{1}{N}",200,10,150); hTempPt->SetAxisRange(30,150,"X"); hTempPt->SetAxisRange(0,0.05,"Y"); hTempPt->GetYaxis()->SetTitleOffset(1.35); handsomeTH1(hTempPt,0); TCanvas* c2 = new TCanvas("c2_jetPt","",1200,350); makeMultiPanelCanvas(c2,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c2->cd(ipt); // draw pp hTempPt->DrawCopy(); hJetPt[kPPMC][7][ipt]->Scale(1./rjg[kPPMC][7]->GetBinContent(ipt)); // rjg normalization handsomeTH1(hJetPt[kPPMC][7][ipt], 1); hJetPt[kPPMC][7][ipt]->SetMarkerStyle(24); hJetPt[kPPMC][7][ipt]->Draw("same hist"); // draw pbpb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hJetPt[kHIMC][icent][ipt],kRed); hJetPt[kHIMC][icent][ipt]->Scale(1./rjg[kHIMC][icent]->GetBinContent(ipt)); // rjg normalization if ( icent == 2 ) hJetPt[kHIMC][icent][ipt]->SetMarkerStyle(24); if ( icent == 2 ) hJetPt[kHIMC][icent][ipt]->Draw("same hist"); if ( icent == 1 ) hJetPt[kHIMC][icent][ipt]->Draw("same"); } double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1]), 0.15+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.15+dx1,0.85,1,15);//yeonju 130823 if ( ipt == nPtBin ) { TLegend *l0 = new TLegend(0.1542202,0.4928762,0.9769094,0.7803873,NULL,"brNDC"); easyLeg(l0,"MC 2.76TeV"); l0->AddEntry(hJetPt[kPPMC][7][ipt],"PYTHIA pp ","l"); l0->AddEntry(hJetPt[kHIMC][2][ipt],"PYTHIA+HYDJET 30-100%","l"); l0->AddEntry(hJetPt[kHIMC][1][ipt],"PYTHIA+HYDJET 0-30%","p"); l0->Draw(); } onSun(30,0,200,0); } TCanvas* c3 = new TCanvas("c3_GenjetPt","",1200,350); makeMultiPanelCanvas(c3,nPtBin,1,0.0,0.0,0.2,0.15,0.02); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c3->cd(ipt); // draw pp hTempPt->DrawCopy(); hGenJetPt[kPPMC][7][ipt]->Scale(1./rGenjg[kPPMC][7]->GetBinContent(ipt)); // rjg normalization handsomeTH1(hGenJetPt[kPPMC][7][ipt], 1); hGenJetPt[kPPMC][7][ipt]->SetMarkerStyle(24); hGenJetPt[kPPMC][7][ipt]->Draw("same hist"); // draw pbpb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hGenJetPt[kHIMC][icent][ipt],kRed); hGenJetPt[kHIMC][icent][ipt]->Scale(1./rGenjg[kHIMC][icent]->GetBinContent(ipt)); // rjg normalization if ( icent == 2 ) hGenJetPt[kHIMC][icent][ipt]->SetMarkerStyle(24); if ( icent == 2 ) hGenJetPt[kHIMC][icent][ipt]->Draw("same hist"); if ( icent == 1 ) hGenJetPt[kHIMC][icent][ipt]->Draw("same"); } double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1]), 0.15+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.15+dx1,0.85,1,15);//yeonju 130823 if ( ipt == nPtBin ) { TLegend *l0 = new TLegend(0.1542202,0.4928762,0.9769094,0.7803873,NULL,"brNDC"); easyLeg(l0,"Gen Jet Used"); l0->AddEntry(hGenJetPt[kPPMC][7][ipt],"PYTHIA pp ","l"); l0->AddEntry(hGenJetPt[kHIMC][2][ipt],"PYTHIA+HYDJET 30-100%","l"); l0->AddEntry(hGenJetPt[kHIMC][1][ipt],"PYTHIA+HYDJET 0-30%","p"); l0->Draw(); } onSun(30,0,200,0); } TCanvas* c101 = new TCanvas("c101_xjg","",1200,350); makeMultiPanelCanvas(c101,nPtBin,1,0.0,0.0,0.2,0.15,0.02); TH1D* hTempXjg = new TH1D("htempxjg",";x_{J#gamma};#frac{dN}{dp_{T}} #frac{1}{N}",200,0,2); hTempXjg->SetAxisRange(0,2,"X"); hTempXjg->SetAxisRange(0,3,"Y"); hTempXjg->GetYaxis()->SetTitleOffset(1.35); handsomeTH1(hTempXjg,0); for ( int ipt = 1 ; ipt<=nPtBin ; ipt++) { c101->cd(ipt); // draw pp hTempXjg->DrawCopy(); hxjg[kPPMC][7][ipt]->Scale(1./rjg[kPPMC][7]->GetBinContent(ipt)); // rjg normalization handsomeTH1(hxjg[kPPMC][7][ipt], 1); hxjg[kPPMC][7][ipt]->SetMarkerStyle(24); hxjg[kPPMC][7][ipt]->Draw("same hist"); // draw pbpb for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(hxjg[kHIMC][icent][ipt],kRed); hxjg[kHIMC][icent][ipt]->Scale(1./rjg[kHIMC][icent]->GetBinContent(ipt)); // rjg normalization if ( icent == 2 ) hxjg[kHIMC][icent][ipt]->SetMarkerStyle(24); if ( icent == 2 ) hxjg[kHIMC][icent][ipt]->Draw("same hist"); if ( icent == 1 ) hxjg[kHIMC][icent][ipt]->Draw("same"); } double dx1=0.15; if ( ipt == nPtBin ) drawText(Form("p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1]), 0.15+dx1+0.25,0.85,1,15);//yeonju 130823 else drawText(Form("%dGeV < p_{T}^{#gamma} < %dGeV, ", (int)ptBin[ipt-1], (int)ptBin[ipt]), 0.15+dx1,0.85,1,15);//yeonju 130823 if ( ipt == nPtBin ) { TLegend *l0 = new TLegend(-0.0007607977,0.6729655,0.8215427,0.9383604,NULL,"brNDC"); easyLeg(l0,"MC 2.76TeV"); l0->AddEntry(hxjg[kPPMC][7][ipt],"PYTHIA pp ","l"); l0->AddEntry(hxjg[kHIMC][2][ipt],"PYTHIA+HYDJET 30-100%","l"); l0->AddEntry(hxjg[kHIMC][1][ipt],"PYTHIA+HYDJET 0-30%","p"); l0->Draw(); } onSun(30,0,200,0); } TCanvas* c32 = new TCanvas("c32","",500,500); handsomeTH1(meanXjg[kPPMC][7], 1); meanXjg[kPPMC][7]->SetYTitle("<x_{J#gamma}> (>30GeV)"); meanXjg[kPPMC][7]->SetMarkerStyle(24); // meanXjg[kPPMC][7]->SetAxisRange(-2,2,"X"); meanXjg[kPPMC][7]->SetAxisRange(0.8,1.05,"Y"); meanXjg[kPPMC][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(meanXjg[kHIMC][icent],kRed); if ( icent == 2 ) meanXjg[kHIMC][icent]->SetMarkerStyle(24); meanXjg[kHIMC][icent]->Draw("same"); } if (1 == 1) { TLegend *l1mc = new TLegend(0.3387097,0.6864407,0.8729839,0.9004237,NULL,"brNDC"); easyLeg(l1mc,"MC 2.76TeV"); l1mc->AddEntry(meanXjg[kPPMC][7],"PYTHIA pp ","l"); l1mc->AddEntry(meanXjg[kHIMC][2],"PYTHIA+HYDJET 30-100%","l"); l1mc->AddEntry(meanXjg[kHIMC][1],"PYTHIA+HYDJET 0-30%","p"); l1mc->Draw(); } TCanvas* c33 = new TCanvas("c33","",500,500); handsomeTH1(meanJetPt[kPPMC][7], 1); meanJetPt[kPPMC][7]->SetYTitle("<p_{T}^{Jet}> (>30GeV)"); meanJetPt[kPPMC][7]->SetMarkerStyle(24); // meanJetPt[kPPMC][7]->SetAxisRange(-2,2,"X"); meanJetPt[kPPMC][7]->SetAxisRange(40,80,"Y"); meanJetPt[kPPMC][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(meanJetPt[kHIMC][icent],kRed); if ( icent == 2 ) meanJetPt[kHIMC][icent]->SetMarkerStyle(24); meanJetPt[kHIMC][icent]->Draw("same"); } if (1 == 1) { TLegend *l1mc = new TLegend(0.3810484,0.1864407,0.891129,0.4004237,NULL,"brNDC"); easyLeg(l1mc,"MC 2.76TeV"); l1mc->AddEntry(meanJetPt[kPPMC][7],"PYTHIA pp ","p"); l1mc->AddEntry(meanJetPt[kHIMC][2],"PYTHIA+HYDJET 30-100%","p"); l1mc->AddEntry(meanJetPt[kHIMC][1],"PYTHIA+HYDJET 0-30%","p"); l1mc->Draw(); } TCanvas* c33_genJet = new TCanvas("c33_genJet","",500,500); handsomeTH1(meanGenJetPt[kPPMC][7], 1); meanGenJetPt[kPPMC][7]->SetYTitle("<p_{T}^{Jet}> (>30GeV)"); meanGenJetPt[kPPMC][7]->SetMarkerStyle(24); // meanGenJetPt[kPPMC][7]->SetAxisRange(-2,2,"X"); meanGenJetPt[kPPMC][7]->SetAxisRange(40,80,"Y"); meanGenJetPt[kPPMC][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(meanGenJetPt[kHIMC][icent],kRed); if ( icent == 2 ) meanGenJetPt[kHIMC][icent]->SetMarkerStyle(24); meanGenJetPt[kHIMC][icent]->Draw("same"); } if (1 == 1) { TLegend *l1mc = new TLegend(0.3810484,0.1864407,0.891129,0.4004237,NULL,"brNDC"); easyLeg(l1mc,"Gen Jet Used"); l1mc->AddEntry(meanGenJetPt[kPPMC][7],"PYTHIA pp ","p"); l1mc->AddEntry(meanGenJetPt[kHIMC][2],"PYTHIA+HYDJET 30-100%","p"); l1mc->AddEntry(meanGenJetPt[kHIMC][1],"PYTHIA+HYDJET 0-30%","p"); l1mc->Draw(); } TCanvas* c34 = new TCanvas("c34","",500,500); handsomeTH1(rjg[kPPMC][7], 1); rjg[kPPMC][7]->SetYTitle("r_{j#gamma} (>30GeV)"); rjg[kPPMC][7]->SetMarkerStyle(24); // rjg[kPPMC][7]->SetAxisRange(-2,2,"X"); rjg[kPPMC][7]->SetAxisRange(.2,1,"Y"); rjg[kPPMC][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(rjg[kHIMC][icent],kRed); if ( icent == 2 ) rjg[kHIMC][icent]->SetMarkerStyle(24); rjg[kHIMC][icent]->Draw("same"); } if (1 == 1) { TLegend *l1mc = new TLegend(0.3810484,0.1864407,0.891129,0.4004237,NULL,"brNDC"); easyLeg(l1mc,"MC 2.76TeV"); l1mc->AddEntry(rjg[kPPMC][7],"PYTHIA pp ","p"); l1mc->AddEntry(rjg[kHIMC][2],"PYTHIA+HYDJET 30-100%","p"); l1mc->AddEntry(rjg[kHIMC][1],"PYTHIA+HYDJET 0-30%","p"); l1mc->Draw(); } TCanvas* c34_genJet = new TCanvas("c34_genJet","",500,500); handsomeTH1(rGenjg[kPPMC][7], 1); rGenjg[kPPMC][7]->SetYTitle("r_{j#gamma} (>30GeV)"); rGenjg[kPPMC][7]->SetMarkerStyle(24); // rGenjg[kPPMC][7]->SetAxisRange(-2,2,"X"); rGenjg[kPPMC][7]->SetAxisRange(.2,1,"Y"); rGenjg[kPPMC][7]->Draw(); for ( int icent = 1; icent <= nCentBinHI ; icent++ ) { handsomeTH1(rGenjg[kHIMC][icent],kRed); if ( icent == 2 ) rGenjg[kHIMC][icent]->SetMarkerStyle(24); rGenjg[kHIMC][icent]->Draw("same"); } if (1 == 1) { TLegend *l1mc = new TLegend(0.3810484,0.1864407,0.891129,0.4004237,NULL,"brNDC"); easyLeg(l1mc,"Gen Jet Used"); l1mc->AddEntry(rGenjg[kPPMC][7],"PYTHIA pp ","p"); l1mc->AddEntry(rGenjg[kHIMC][2],"PYTHIA+HYDJET 30-100%","p"); l1mc->AddEntry(rGenjg[kHIMC][1],"PYTHIA+HYDJET 0-30%","p"); l1mc->Draw(); } }