From c965fa95538d5e6b61ae347df1734131d45ae83b Mon Sep 17 00:00:00 2001 From: miweber Date: Sun, 27 Apr 2014 18:00:32 +0200 Subject: [PATCH] use per-trigger averaging (before per-evt averaging) --- PWGCF/EBYE/BalanceFunctions/AliBalancePsi.cxx | 89 ++++++------------- PWGCF/EBYE/BalanceFunctions/AliBalancePsi.h | 3 +- PWGCF/EBYE/macros/drawBalanceFunction2DPsi.C | 2 +- .../EBYE/macros/drawCorrelationFunctionPsi.C | 30 +------ 4 files changed, 32 insertions(+), 92 deletions(-) diff --git a/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.cxx b/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.cxx index dea98f0d762..7c03c3d7e32 100644 --- a/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.cxx +++ b/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.cxx @@ -1894,8 +1894,7 @@ TH2D *AliBalancePsi::GetCorrelationFunction(TString type, Double_t ptAssociatedMax, AliBalancePsi *bMixed, Bool_t normToTrig, - Double_t normalizationRangePhi, - TH2D *hVertexCentrality) { + Double_t normalizationRangePhi) { // Returns the 2D correlation function for "type"(PN,NP,PP,NN) pairs, // does the division by event mixing inside, @@ -1910,10 +1909,6 @@ TH2D *AliBalancePsi::GetCorrelationFunction(TString type, AliError("No Event Mixing AliTHn"); return NULL; } - if(normToTrig && !hVertexCentrality){ - AliError("Per-trigger yield option chosen, but QA histogram for event statistics not available"); - return NULL; - } TH2D *gHist = NULL; TH2D *fSame = NULL; @@ -1998,29 +1993,15 @@ TH2D *AliBalancePsi::GetCorrelationFunction(TString type, // then get the correlation function (divide fSame/fmixed) fSame->Divide(fMixed); - // // averaging with number of triggers: - // // average over number of triggers in each sub-bin - // Double_t NTrigSubBin = 0; - // if(type=="PN" || type=="PP") - // NTrigSubBin = (Double_t)(fHistP->Project(0,1)->Integral()); - // else if(type=="NP" || type=="NN") - // NTrigSubBin = (Double_t)(fHistN->Project(0,1)->Integral()); - // fSame->Scale(NTrigSubBin); - - // averaging with number of events: - // average over number of events in each sub-bin - Int_t binStatsVertexLowEdge = hVertexCentrality->GetXaxis()->FindBin(binVertexLowEdge + 0.00001) + 0.00001; - Int_t binStatsVertexUpEdge = hVertexCentrality->GetXaxis()->FindBin(binVertexUpEdge - 0.00001) - 0.00001; - Int_t binStatsPsiLowEdge = hVertexCentrality->GetYaxis()->FindBin(binPsiLowEdge + 0.00001) + 0.00001; - Int_t binStatsPsiUpEdge = hVertexCentrality->GetYaxis()->FindBin(binPsiUpEdge - 0.00001) - 0.00001; - - Double_t NEventsSubBin = (Double_t)hVertexCentrality->Integral(binStatsVertexLowEdge,binStatsVertexUpEdge,binStatsPsiLowEdge,binStatsPsiUpEdge); - - //Printf("Averaging from %d < z < %d and %d < cent < %d ",binStatsVertexLowEdge,binStatsVertexUpEdge,binStatsPsiLowEdge,binStatsPsiUpEdge); - //Printf("Averaging from %.2f < z < %.2f and %.2f < cent < %.2f --> %.2f ",binVertexLowEdge,binVertexUpEdge,binPsiLowEdge,binPsiUpEdge,NEventsSubBin); - fSame->Scale(NEventsSubBin); + // averaging with number of triggers: + // average over number of triggers in each sub-bin + Double_t NTrigSubBin = 0; + if(type=="PN" || type=="PP") + NTrigSubBin = (Double_t)(fHistP->Project(0,1)->Integral()); + else if(type=="NP" || type=="NN") + NTrigSubBin = (Double_t)(fHistN->Project(0,1)->Integral()); + fSame->Scale(NTrigSubBin); - // OLD and NEW averaging: // for the first: clone if( (iBinPsi == binPsiMin && iBinVertex == binVertexMin) || !gHist ){ gHist = (TH2D*)fSame->Clone(); @@ -2034,41 +2015,23 @@ TH2D *AliBalancePsi::GetCorrelationFunction(TString type, if(gHist){ - //// OLD averaging: - //// average over number of bins nbinsVertex * nbinsPsi - // gHist->Scale(1./((Double_t)(binPsiMax-binPsiMin+1)*(binVertexMax-binVertexMin+1))); - - // // averaging with number of triggers: - // // first set to full range and then obtain number of all triggers - // Double_t NTrigAll = 0; - // if(type=="PN" || type=="PP"){ - // fHistP->GetGrid(0)->GetGrid()->GetAxis(0)->SetRangeUser(psiMin,psiMax-0.00001); - // fHistP->GetGrid(0)->GetGrid()->GetAxis(2)->SetRangeUser(vertexZMin,vertexZMax-0.00001); - // fHistP->GetGrid(0)->GetGrid()->GetAxis(1)->SetRangeUser(ptTriggerMin,ptTriggerMax-0.00001); - // NTrigAll = (Double_t)(fHistP->Project(0,1)->Integral()); - // } - // else if(type=="NP" || type=="NN"){ - // fHistN->GetGrid(0)->GetGrid()->GetAxis(0)->SetRangeUser(psiMin,psiMax-0.00001); - // fHistN->GetGrid(0)->GetGrid()->GetAxis(2)->SetRangeUser(vertexZMin,vertexZMax-0.00001); - // fHistN->GetGrid(0)->GetGrid()->GetAxis(1)->SetRangeUser(ptTriggerMin,ptTriggerMax-0.00001); - // NTrigAll = (Double_t)(fHistN->Project(0,1)->Integral()); - // } - // gHist->Scale(1./NTrigAll); - - // averaging with number of events: - // first set to full range and then obtain number of all events - Int_t binStatsAllVertexLowEdge = hVertexCentrality->GetXaxis()->FindBin(vertexZMin + 0.00001) + 0.00001; - Int_t binStatsAllVertexUpEdge = hVertexCentrality->GetXaxis()->FindBin(vertexZMax - 0.00001) - 0.00001; - Int_t binStatsAllPsiLowEdge = hVertexCentrality->GetYaxis()->FindBin(psiMin + 0.00001) + 0.00001; - Int_t binStatsAllPsiUpEdge = hVertexCentrality->GetYaxis()->FindBin(psiMax - 0.00001) - 0.00001; - - Double_t NEventsAll = (Double_t)hVertexCentrality->Integral(binStatsAllVertexLowEdge,binStatsAllVertexUpEdge,binStatsAllPsiLowEdge,binStatsAllPsiUpEdge); - - //Printf("All from %d < z < %d and %d < cent < %d ",binStatsAllVertexLowEdge,binStatsAllVertexUpEdge,binStatsAllPsiLowEdge,binStatsAllPsiUpEdge); - //Printf("All from %.2f < z < %.2f and %.2f < cent < %.2f --> %.2f ",vertexZMin,vertexZMax,psiMin,psiMax,NEventsAll); - - gHist->Scale(1./NEventsAll); - + // averaging with number of triggers: + // first set to full range and then obtain number of all triggers + Double_t NTrigAll = 0; + if(type=="PN" || type=="PP"){ + fHistP->GetGrid(0)->GetGrid()->GetAxis(0)->SetRangeUser(psiMin,psiMax-0.00001); + fHistP->GetGrid(0)->GetGrid()->GetAxis(2)->SetRangeUser(vertexZMin,vertexZMax-0.00001); + fHistP->GetGrid(0)->GetGrid()->GetAxis(1)->SetRangeUser(ptTriggerMin,ptTriggerMax-0.00001); + NTrigAll = (Double_t)(fHistP->Project(0,1)->Integral()); + } + else if(type=="NP" || type=="NN"){ + fHistN->GetGrid(0)->GetGrid()->GetAxis(0)->SetRangeUser(psiMin,psiMax-0.00001); + fHistN->GetGrid(0)->GetGrid()->GetAxis(2)->SetRangeUser(vertexZMin,vertexZMax-0.00001); + fHistN->GetGrid(0)->GetGrid()->GetAxis(1)->SetRangeUser(ptTriggerMin,ptTriggerMax-0.00001); + NTrigAll = (Double_t)(fHistN->Project(0,1)->Integral()); + } + gHist->Scale(1./NTrigAll); + } return gHist; diff --git a/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.h b/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.h index a8cc5f033fd..dcd7683f0d1 100644 --- a/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.h +++ b/PWGCF/EBYE/BalanceFunctions/AliBalancePsi.h @@ -83,8 +83,7 @@ class AliBalancePsi : public TObject { Double_t ptAssociatedMax=-1, AliBalancePsi *bMixed=NULL, Bool_t normToTrig = kFALSE, - Double_t normalizationRangePhi = TMath::Pi()/6., - TH2D *hVertexCentrality = NULL); + Double_t normalizationRangePhi = TMath::Pi()/6.); TH2D *GetCorrelationFunctionPN(Double_t psiMin, Double_t psiMax, Double_t vertexZMin=-1, Double_t vertexZMax=-1, diff --git a/PWGCF/EBYE/macros/drawBalanceFunction2DPsi.C b/PWGCF/EBYE/macros/drawBalanceFunction2DPsi.C index 9917e591a39..d8a37294044 100644 --- a/PWGCF/EBYE/macros/drawBalanceFunction2DPsi.C +++ b/PWGCF/EBYE/macros/drawBalanceFunction2DPsi.C @@ -1105,7 +1105,7 @@ void drawProjections(TH2D *gHistBalanceFunction2D = 0x0, //for 310){ - rangeReduced = 0.4; + rangeReduced = 0.3; } cout<<"Use reduced range = "<GetNbinsX(); iX++){ - for(Int_t iY = 0; iY < hVertexCentrality->GetNbinsY(); iY++){ - hVertexCentrality->SetBinContent(iX+1,iY+1,1); - } - } - } - else{ - hVertexCentrality = (TH2D*)listQA->FindObject("fHistVz"); - if(!hVertexCentrality){ - Printf("per-trigger yield option chosen, but QA histogram for event statistics not available"); - return; - } - } - // if no mixing then divide by convoluted histograms if(!listBFMixed && listQA){ @@ -607,7 +585,7 @@ void draw(TList *list, TList *listBFShuffled, TList *listBFMixed, //cPN[2]->SaveAs(pngName.Data()); //Correlation function (+-) - gHistPN[3] = b->GetCorrelationFunction("PN",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi,hVertexCentrality); + gHistPN[3] = b->GetCorrelationFunction("PN",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi); gHistPN[3]->GetXaxis()->SetRangeUser(-1.5,1.5); if(normToTrig) gHistPN[3]->GetZaxis()->SetTitle("#frac{1}{N_{trig}}#frac{d^{2}N_{assoc}}{d#Delta#eta#Delta#varphi} (rad^{-1})"); @@ -821,7 +799,7 @@ void draw(TList *list, TList *listBFShuffled, TList *listBFMixed, //cNP[2]->SaveAs(pngName.Data()); //Correlation function (-+) - gHistNP[3] = b->GetCorrelationFunction("NP",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi,hVertexCentrality); + gHistNP[3] = b->GetCorrelationFunction("NP",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi); gHistNP[3]->GetXaxis()->SetRangeUser(-1.5,1.5); if(normToTrig) gHistNP[3]->GetZaxis()->SetTitle("#frac{1}{N_{trig}}#frac{d^{2}N_{assoc}}{d#Delta#eta#Delta#varphi} (rad^{-1})"); @@ -1036,7 +1014,7 @@ void draw(TList *list, TList *listBFShuffled, TList *listBFMixed, //cPP[2]->SaveAs(pngName.Data()); //Correlation function (++) - gHistPP[3] = b->GetCorrelationFunction("PP",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi,hVertexCentrality); + gHistPP[3] = b->GetCorrelationFunction("PP",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi); gHistPP[3]->GetXaxis()->SetRangeUser(-1.5,1.5); if(normToTrig) gHistPP[3]->GetZaxis()->SetTitle("#frac{1}{N_{trig}}#frac{d^{2}N_{assoc}}{d#Delta#eta#Delta#varphi} (rad^{-1})"); @@ -1249,7 +1227,7 @@ void draw(TList *list, TList *listBFShuffled, TList *listBFMixed, //cNN[2]->SaveAs(pngName.Data()); //Correlation function (--) - gHistNN[3] = b->GetCorrelationFunction("NN",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi,hVertexCentrality); + gHistNN[3] = b->GetCorrelationFunction("NN",psiMin,psiMax,vertexZMin,vertexZMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax,bMixed,normToTrig,normalizationRangePhi); gHistNN[3]->GetXaxis()->SetRangeUser(-1.5,1.5); if(normToTrig) gHistNN[3]->GetZaxis()->SetTitle("#frac{1}{N_{trig}}#frac{d^{2}N_{assoc}}{d#Delta#eta#Delta#varphi} (rad^{-1})"); -- 2.43.0