From 764ab1f400f5940f6d3378fc947a055c20377a90 Mon Sep 17 00:00:00 2001 From: gconesab Date: Fri, 20 Jul 2012 13:48:14 +0000 Subject: [PATCH] Reduce the number of histograms in case of SS plotting option is on, if it is requested Add some new MC related histograms in several classes Electron analysis produces now electron or calorimeter hadron AOD to be used in isolation and correlation --- .../CaloTrackCorrelations/AliAnaElectron.cxx | 326 ++++----- PWGGA/CaloTrackCorrelations/AliAnaElectron.h | 19 +- .../AliAnaGeneratorKine.h | 2 +- .../AliAnaParticleHadronCorrelation.cxx | 88 ++- .../AliAnaParticleHadronCorrelation.h | 8 +- .../AliAnaParticleIsolation.cxx | 412 ++++++++---- .../AliAnaParticleIsolation.h | 45 +- PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx | 624 +++++++++--------- PWGGA/CaloTrackCorrelations/AliAnaPhoton.h | 6 +- PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx | 250 +++---- PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h | 35 +- 11 files changed, 1035 insertions(+), 780 deletions(-) diff --git a/PWGGA/CaloTrackCorrelations/AliAnaElectron.cxx b/PWGGA/CaloTrackCorrelations/AliAnaElectron.cxx index 155db1b86ec..532d439dd34 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaElectron.cxx +++ b/PWGGA/CaloTrackCorrelations/AliAnaElectron.cxx @@ -50,13 +50,14 @@ ClassImp(AliAnaElectron) //________________________________ AliAnaElectron::AliAnaElectron() : - AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""), + AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""), fMinDist(0.), fMinDist2(0.), fMinDist3(0.), fTimeCutMin(-1), fTimeCutMax(999999), - fNCellsCut(0), fFillSSHistograms(kFALSE), + fNCellsCut(0), fFillSSHistograms(kFALSE), fFillOnlySimpleSSHisto(1), fFillWeightHistograms(kFALSE), fNOriginHistograms(8), fdEdxMin(0.), fdEdxMax (200.), fEOverPMin(0), fEOverPMax (2), + fAODParticle(0), // Histograms fhdEdxvsE(0), fhdEdxvsP(0), fhEOverPvsE(0), fhEOverPvsP(0), @@ -225,6 +226,10 @@ void AliAnaElectron::FillShowerShapeHistograms(AliVCluster* cluster, const Int_ Float_t lambda1 = cluster->GetM20(); Float_t disp = cluster->GetDispersion()*cluster->GetDispersion(); + Float_t l0 = 0., l1 = 0.; + Float_t dispp= 0., dEta = 0., dPhi = 0.; + Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; + TLorentzVector mom; if(GetReader()->GetDataType() != AliCaloTrackReader::kMC) { @@ -249,40 +254,40 @@ void AliAnaElectron::FillShowerShapeHistograms(AliVCluster* cluster, const Int_ fhDispETRD[pidIndex]->Fill(energy,disp); } - if(energy < 2) + if(!fFillOnlySimpleSSHisto) { - fhNCellsLam0LowE[pidIndex] ->Fill(ncells,lambda0); - fhEtaLam0LowE[pidIndex] ->Fill(eta, lambda0); - fhPhiLam0LowE[pidIndex] ->Fill(phi, lambda0); - } - else - { - fhNCellsLam0HighE[pidIndex]->Fill(ncells,lambda0); - fhEtaLam0HighE[pidIndex] ->Fill(eta, lambda0); - fhPhiLam0HighE[pidIndex] ->Fill(phi, lambda0); - } - - Float_t l0 = 0., l1 = 0.; - Float_t dispp= 0., dEta = 0., dPhi = 0.; - Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; - if(fCalorimeter == "EMCAL") - { - GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster, - l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi); - fhDispEtaE [pidIndex]-> Fill(energy,dEta); - fhDispPhiE [pidIndex]-> Fill(energy,dPhi); - fhSumEtaE [pidIndex]-> Fill(energy,sEta); - fhSumPhiE [pidIndex]-> Fill(energy,sPhi); - fhSumEtaPhiE [pidIndex]-> Fill(energy,sEtaPhi); - fhDispEtaPhiDiffE [pidIndex]-> Fill(energy,dPhi-dEta); - if(dEta+dPhi>0)fhSphericityE [pidIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi)); - - if (energy < 2 ) fhDispEtaDispPhiEBin[pidIndex][0]->Fill(dEta,dPhi); - else if (energy < 4 ) fhDispEtaDispPhiEBin[pidIndex][1]->Fill(dEta,dPhi); - else if (energy < 6 ) fhDispEtaDispPhiEBin[pidIndex][2]->Fill(dEta,dPhi); - else if (energy < 10) fhDispEtaDispPhiEBin[pidIndex][3]->Fill(dEta,dPhi); - else fhDispEtaDispPhiEBin[pidIndex][4]->Fill(dEta,dPhi); + if(energy < 2) + { + fhNCellsLam0LowE[pidIndex] ->Fill(ncells,lambda0); + fhEtaLam0LowE[pidIndex] ->Fill(eta, lambda0); + fhPhiLam0LowE[pidIndex] ->Fill(phi, lambda0); + } + else + { + fhNCellsLam0HighE[pidIndex]->Fill(ncells,lambda0); + fhEtaLam0HighE[pidIndex] ->Fill(eta, lambda0); + fhPhiLam0HighE[pidIndex] ->Fill(phi, lambda0); + } + if(fCalorimeter == "EMCAL") + { + GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster, + l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi); + fhDispEtaE [pidIndex]-> Fill(energy,dEta); + fhDispPhiE [pidIndex]-> Fill(energy,dPhi); + fhSumEtaE [pidIndex]-> Fill(energy,sEta); + fhSumPhiE [pidIndex]-> Fill(energy,sPhi); + fhSumEtaPhiE [pidIndex]-> Fill(energy,sEtaPhi); + fhDispEtaPhiDiffE [pidIndex]-> Fill(energy,dPhi-dEta); + if(dEta+dPhi>0)fhSphericityE [pidIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi)); + + if (energy < 2 ) fhDispEtaDispPhiEBin[pidIndex][0]->Fill(dEta,dPhi); + else if (energy < 4 ) fhDispEtaDispPhiEBin[pidIndex][1]->Fill(dEta,dPhi); + else if (energy < 6 ) fhDispEtaDispPhiEBin[pidIndex][2]->Fill(dEta,dPhi); + else if (energy < 10) fhDispEtaDispPhiEBin[pidIndex][3]->Fill(dEta,dPhi); + else fhDispEtaDispPhiEBin[pidIndex][4]->Fill(dEta,dPhi); + + } } if(IsDataMC()) @@ -401,7 +406,7 @@ void AliAnaElectron::FillShowerShapeHistograms(AliVCluster* cluster, const Int_ fhMCELambda0[pidIndex][index] ->Fill(energy, lambda0); - if(fCalorimeter == "EMCAL") + if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto) { fhMCEDispEta [pidIndex][index]-> Fill(energy,dEta); fhMCEDispPhi [pidIndex][index]-> Fill(energy,dPhi); @@ -585,112 +590,115 @@ TList * AliAnaElectron::GetCreateOutputObjects() outputContainer->Add(fhDispETRD[pidIndex]); } - fhNCellsLam0LowE[pidIndex] = new TH2F (Form("h%sNCellsLam0LowE",pidParticle[pidIndex].Data()), - Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), - nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsLam0LowE[pidIndex]->SetXTitle("N_{cells}"); - fhNCellsLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); - outputContainer->Add(fhNCellsLam0LowE[pidIndex]); - - fhNCellsLam0HighE[pidIndex] = new TH2F (Form("h%sNCellsLam0HighE",pidParticle[pidIndex].Data()), - Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), - nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsLam0HighE[pidIndex]->SetXTitle("N_{cells}"); - fhNCellsLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); - outputContainer->Add(fhNCellsLam0HighE[pidIndex]); - - - fhEtaLam0LowE[pidIndex] = new TH2F (Form("h%sEtaLam0LowE",pidParticle[pidIndex].Data()), - Form("%s: #eta vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), - netabins,etamin,etamax, ssbins,ssmin,ssmax); - fhEtaLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); - fhEtaLam0LowE[pidIndex]->SetXTitle("#eta"); - outputContainer->Add(fhEtaLam0LowE[pidIndex]); - - fhPhiLam0LowE[pidIndex] = new TH2F (Form("h%sPhiLam0LowE",pidParticle[pidIndex].Data()), - Form("%s: #phi vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), - nphibins,phimin,phimax, ssbins,ssmin,ssmax); - fhPhiLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); - fhPhiLam0LowE[pidIndex]->SetXTitle("#phi"); - outputContainer->Add(fhPhiLam0LowE[pidIndex]); - - fhEtaLam0HighE[pidIndex] = new TH2F (Form("h%sEtaLam0HighE",pidParticle[pidIndex].Data()), - Form("%s: #eta vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), - netabins,etamin,etamax, ssbins,ssmin,ssmax); - fhEtaLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); - fhEtaLam0HighE[pidIndex]->SetXTitle("#eta"); - outputContainer->Add(fhEtaLam0HighE[pidIndex]); - - fhPhiLam0HighE[pidIndex] = new TH2F (Form("h%sPhiLam0HighE",pidParticle[pidIndex].Data()), - Form("%s: #phi vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), - nphibins,phimin,phimax, ssbins,ssmin,ssmax); - fhPhiLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); - fhPhiLam0HighE[pidIndex]->SetXTitle("#phi"); - outputContainer->Add(fhPhiLam0HighE[pidIndex]); - - if(fCalorimeter == "EMCAL") + if(!fFillOnlySimpleSSHisto) { - fhDispEtaE[pidIndex] = new TH2F (Form("h%sDispEtaE",pidParticle[pidIndex].Data()), - Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",pidParticle[pidIndex].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhDispEtaE[pidIndex]->SetXTitle("E (GeV)"); - fhDispEtaE[pidIndex]->SetYTitle("#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhDispEtaE[pidIndex]); - fhDispPhiE[pidIndex] = new TH2F (Form("h%sDispPhiE",pidParticle[pidIndex].Data()), - Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",pidParticle[pidIndex].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhDispPhiE[pidIndex]->SetXTitle("E (GeV)"); - fhDispPhiE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhDispPhiE[pidIndex]); + fhNCellsLam0LowE[pidIndex] = new TH2F (Form("h%sNCellsLam0LowE",pidParticle[pidIndex].Data()), + Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), + nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsLam0LowE[pidIndex]->SetXTitle("N_{cells}"); + fhNCellsLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); + outputContainer->Add(fhNCellsLam0LowE[pidIndex]); + + fhNCellsLam0HighE[pidIndex] = new TH2F (Form("h%sNCellsLam0HighE",pidParticle[pidIndex].Data()), + Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), + nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsLam0HighE[pidIndex]->SetXTitle("N_{cells}"); + fhNCellsLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); + outputContainer->Add(fhNCellsLam0HighE[pidIndex]); - fhSumEtaE[pidIndex] = new TH2F (Form("h%sSumEtaE",pidParticle[pidIndex].Data()), - Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",pidParticle[pidIndex].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhSumEtaE[pidIndex]->SetXTitle("E (GeV)"); - fhSumEtaE[pidIndex]->SetYTitle("#delta^{2}_{#eta #eta}"); - outputContainer->Add(fhSumEtaE[pidIndex]); - fhSumPhiE[pidIndex] = new TH2F (Form("h%sSumPhiE",pidParticle[pidIndex].Data()), - Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",pidParticle[pidIndex].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhSumPhiE[pidIndex]->SetXTitle("E (GeV)"); - fhSumPhiE[pidIndex]->SetYTitle("#delta^{2}_{#phi #phi}"); - outputContainer->Add(fhSumPhiE[pidIndex]); + fhEtaLam0LowE[pidIndex] = new TH2F (Form("h%sEtaLam0LowE",pidParticle[pidIndex].Data()), + Form("%s: #eta vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), + netabins,etamin,etamax, ssbins,ssmin,ssmax); + fhEtaLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); + fhEtaLam0LowE[pidIndex]->SetXTitle("#eta"); + outputContainer->Add(fhEtaLam0LowE[pidIndex]); - fhSumEtaPhiE[pidIndex] = new TH2F (Form("h%sSumEtaPhiE",pidParticle[pidIndex].Data()), - Form("%s: #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",pidParticle[pidIndex].Data()), - nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); - fhSumEtaPhiE[pidIndex]->SetXTitle("E (GeV)"); - fhSumEtaPhiE[pidIndex]->SetYTitle("#delta^{2}_{#eta #phi}"); - outputContainer->Add(fhSumEtaPhiE[pidIndex]); + fhPhiLam0LowE[pidIndex] = new TH2F (Form("h%sPhiLam0LowE",pidParticle[pidIndex].Data()), + Form("%s: #phi vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), + nphibins,phimin,phimax, ssbins,ssmin,ssmax); + fhPhiLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); + fhPhiLam0LowE[pidIndex]->SetXTitle("#phi"); + outputContainer->Add(fhPhiLam0LowE[pidIndex]); - fhDispEtaPhiDiffE[pidIndex] = new TH2F (Form("h%sDispEtaPhiDiffE",pidParticle[pidIndex].Data()), - Form("%s: #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",pidParticle[pidIndex].Data()), - nptbins,ptmin,ptmax,200, -10,10); - fhDispEtaPhiDiffE[pidIndex]->SetXTitle("E (GeV)"); - fhDispEtaPhiDiffE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhDispEtaPhiDiffE[pidIndex]); + fhEtaLam0HighE[pidIndex] = new TH2F (Form("h%sEtaLam0HighE",pidParticle[pidIndex].Data()), + Form("%s: #eta vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), + netabins,etamin,etamax, ssbins,ssmin,ssmax); + fhEtaLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); + fhEtaLam0HighE[pidIndex]->SetXTitle("#eta"); + outputContainer->Add(fhEtaLam0HighE[pidIndex]); - fhSphericityE[pidIndex] = new TH2F (Form("h%sSphericityE",pidParticle[pidIndex].Data()), - Form("%s: (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",pidParticle[pidIndex].Data()), - nptbins,ptmin,ptmax, 200, -1,1); - fhSphericityE[pidIndex]->SetXTitle("E (GeV)"); - fhSphericityE[pidIndex]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); - outputContainer->Add(fhSphericityE[pidIndex]); + fhPhiLam0HighE[pidIndex] = new TH2F (Form("h%sPhiLam0HighE",pidParticle[pidIndex].Data()), + Form("%s: #phi vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), + nphibins,phimin,phimax, ssbins,ssmin,ssmax); + fhPhiLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}"); + fhPhiLam0HighE[pidIndex]->SetXTitle("#phi"); + outputContainer->Add(fhPhiLam0HighE[pidIndex]); - Int_t bin[] = {0,2,4,6,10,1000}; - for(Int_t i = 0; i < 5; i++) + if(fCalorimeter == "EMCAL") { - fhDispEtaDispPhiEBin[pidIndex][i] = new TH2F (Form("h%sDispEtaDispPhi_EBin%d",pidParticle[pidIndex].Data(),i), - Form("%s: #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pidParticle[pidIndex].Data(),bin[i],bin[i+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhDispEtaDispPhiEBin[pidIndex][i]->SetXTitle("#sigma^{2}_{#eta #eta}"); - fhDispEtaDispPhiEBin[pidIndex][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhDispEtaDispPhiEBin[pidIndex][i]); + fhDispEtaE[pidIndex] = new TH2F (Form("h%sDispEtaE",pidParticle[pidIndex].Data()), + Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",pidParticle[pidIndex].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhDispEtaE[pidIndex]->SetXTitle("E (GeV)"); + fhDispEtaE[pidIndex]->SetYTitle("#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhDispEtaE[pidIndex]); + + fhDispPhiE[pidIndex] = new TH2F (Form("h%sDispPhiE",pidParticle[pidIndex].Data()), + Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",pidParticle[pidIndex].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhDispPhiE[pidIndex]->SetXTitle("E (GeV)"); + fhDispPhiE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhDispPhiE[pidIndex]); + + fhSumEtaE[pidIndex] = new TH2F (Form("h%sSumEtaE",pidParticle[pidIndex].Data()), + Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",pidParticle[pidIndex].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhSumEtaE[pidIndex]->SetXTitle("E (GeV)"); + fhSumEtaE[pidIndex]->SetYTitle("#delta^{2}_{#eta #eta}"); + outputContainer->Add(fhSumEtaE[pidIndex]); + + fhSumPhiE[pidIndex] = new TH2F (Form("h%sSumPhiE",pidParticle[pidIndex].Data()), + Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",pidParticle[pidIndex].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhSumPhiE[pidIndex]->SetXTitle("E (GeV)"); + fhSumPhiE[pidIndex]->SetYTitle("#delta^{2}_{#phi #phi}"); + outputContainer->Add(fhSumPhiE[pidIndex]); + + fhSumEtaPhiE[pidIndex] = new TH2F (Form("h%sSumEtaPhiE",pidParticle[pidIndex].Data()), + Form("%s: #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",pidParticle[pidIndex].Data()), + nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); + fhSumEtaPhiE[pidIndex]->SetXTitle("E (GeV)"); + fhSumEtaPhiE[pidIndex]->SetYTitle("#delta^{2}_{#eta #phi}"); + outputContainer->Add(fhSumEtaPhiE[pidIndex]); + + fhDispEtaPhiDiffE[pidIndex] = new TH2F (Form("h%sDispEtaPhiDiffE",pidParticle[pidIndex].Data()), + Form("%s: #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",pidParticle[pidIndex].Data()), + nptbins,ptmin,ptmax,200, -10,10); + fhDispEtaPhiDiffE[pidIndex]->SetXTitle("E (GeV)"); + fhDispEtaPhiDiffE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhDispEtaPhiDiffE[pidIndex]); + + fhSphericityE[pidIndex] = new TH2F (Form("h%sSphericityE",pidParticle[pidIndex].Data()), + Form("%s: (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",pidParticle[pidIndex].Data()), + nptbins,ptmin,ptmax, 200, -1,1); + fhSphericityE[pidIndex]->SetXTitle("E (GeV)"); + fhSphericityE[pidIndex]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); + outputContainer->Add(fhSphericityE[pidIndex]); + + Int_t bin[] = {0,2,4,6,10,1000}; + for(Int_t i = 0; i < 5; i++) + { + fhDispEtaDispPhiEBin[pidIndex][i] = new TH2F (Form("h%sDispEtaDispPhi_EBin%d",pidParticle[pidIndex].Data(),i), + Form("%s: #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pidParticle[pidIndex].Data(),bin[i],bin[i+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhDispEtaDispPhiEBin[pidIndex][i]->SetXTitle("#sigma^{2}_{#eta #eta}"); + fhDispEtaDispPhiEBin[pidIndex][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhDispEtaDispPhiEBin[pidIndex][i]); + } } } - } // Shower shape if(IsDataMC()) @@ -711,7 +719,7 @@ TList * AliAnaElectron::GetCreateOutputObjects() fhMCELambda0[pidIndex][i]->SetXTitle("E (GeV)"); outputContainer->Add(fhMCELambda0[pidIndex][i]) ; - if(fCalorimeter=="EMCAL") + if(fCalorimeter=="EMCAL" && !fFillOnlySimpleSSHisto) { fhMCEDispEta[pidIndex][i] = new TH2F (Form("h%sEDispEtaE_MC%s",pidParticle[pidIndex].Data(),pnamess[i].Data()), Form("cluster from %s : %s like, #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data(),pidParticle[pidIndex].Data()), @@ -747,14 +755,13 @@ TList * AliAnaElectron::GetCreateOutputObjects() fhMCESphericity[pidIndex][i]->SetXTitle("E (GeV)"); fhMCESphericity[pidIndex][i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); outputContainer->Add(fhMCESphericity[pidIndex][i]); - } }// loop } } - if(IsCaloPIDOn() && pidIndex > 0) continue; + //if(IsCaloPIDOn() && pidIndex > 0) continue; fhNCellsE[pidIndex] = new TH2F (Form("h%sNCellsE",pidParticle[pidIndex].Data()), Form("N cells in %s cluster vs E ",pidParticle[pidIndex].Data()), @@ -1059,34 +1066,35 @@ void AliAnaElectron::MakeAnalysisFillAOD() //---------------------------- //Create AOD for analysis //---------------------------- - AliAODPWG4Particle aodph = AliAODPWG4Particle(mom); + AliAODPWG4Particle aodpart = AliAODPWG4Particle(mom); //............................................... //Set the indeces of the original caloclusters (MC, ID), and calorimeter Int_t label = calo->GetLabel(); - aodph.SetLabel(label); - aodph.SetCaloLabel(calo->GetID(),-1); - aodph.SetDetector(fCalorimeter); + aodpart.SetLabel(label); + aodpart.SetCaloLabel(calo->GetID(),-1); + aodpart.SetDetector(fCalorimeter); //printf("Index %d, Id %d, iaod %d\n",icalo, calo->GetID(),GetOutputAODBranch()->GetEntriesFast()); //............................................... //Set bad channel distance bit Double_t distBad=calo->GetDistanceToBadChannel() ; //Distance to bad channel - if (distBad > fMinDist3) aodph.SetDistToBad(2) ; - else if(distBad > fMinDist2) aodph.SetDistToBad(1) ; - else aodph.SetDistToBad(0) ; - //printf("DistBad %f Bit %d\n",distBad, aodph.DistToBad()); + if (distBad > fMinDist3) aodpart.SetDistToBad(2) ; + else if(distBad > fMinDist2) aodpart.SetDistToBad(1) ; + else aodpart.SetDistToBad(0) ; + //printf("DistBad %f Bit %d\n",distBad, aodpart.DistToBad()); //-------------------------------------------------------------------------------------- //Play with the MC stack if available //-------------------------------------------------------------------------------------- //Check origin of the candidates - if(IsDataMC()){ - aodph.SetTag(GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(), aodph.GetInputFileIndex())); + if(IsDataMC()) + { + aodpart.SetTag(GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(), aodpart.GetInputFileIndex())); if(GetDebug() > 0) - printf("AliAnaElectron::MakeAnalysisFillAOD() - Origin of candidate, bit map %d\n",aodph.GetTag()); + printf("AliAnaElectron::MakeAnalysisFillAOD() - Origin of candidate, bit map %d\n",aodpart.GetTag()); }//Work with stack also @@ -1120,7 +1128,7 @@ void AliAnaElectron::MakeAnalysisFillAOD() }// dEdx - aodph.SetIdentifiedParticleType(pid); + aodpart.SetIdentifiedParticleType(pid); Int_t pidIndex = 0;// Electron if(pid == AliCaloPID::kChargedHadron) pidIndex = 1; @@ -1129,7 +1137,7 @@ void AliAnaElectron::MakeAnalysisFillAOD() //Fill some shower shape histograms //--------------------------------- - FillShowerShapeHistograms(calo,aodph.GetTag(),pid); + FillShowerShapeHistograms(calo,aodpart.GetTag(),pid); if(pid == AliCaloPID::kElectron) WeightHistograms(calo); @@ -1144,14 +1152,16 @@ void AliAnaElectron::MakeAnalysisFillAOD() // Get most probable PID, 2 options check bayesian PID weights or redo PID // By default, redo PID - if(GetCaloPID()->GetIdentifiedParticleType(calo)!=AliCaloPID::kPhoton) continue; - - if(GetDebug() > 1) printf("AliAnaPhoton::MakeAnalysisFillAOD() - PDG of identified particle %d\n",aodph.GetIdentifiedParticleType()); + if(GetCaloPID()->GetIdentifiedParticleType(calo)!=AliCaloPID::kPhoton) + { + continue; + } + if(GetDebug() > 1) printf("AliAnaPhoton::MakeAnalysisFillAOD() - PDG of identified particle %d\n",aodpart.GetIdentifiedParticleType()); } if(GetDebug() > 1) printf("AliAnaElectron::MakeAnalysisFillAOD() - Photon selection cuts passed: pT %3.2f, pdg %d\n", - aodph.Pt(), aodph.GetIdentifiedParticleType()); + aodpart.Pt(), aodpart.GetIdentifiedParticleType()); //FIXME, this to MakeAnalysisFillHistograms ... Int_t absID = 0; @@ -1162,14 +1172,16 @@ void AliAnaElectron::MakeAnalysisFillAOD() else cells = GetPHOSCells(); absID = GetCaloUtils()->GetMaxEnergyCell(cells, calo,maxCellFraction); - - fhMaxCellDiffClusterE[pidIndex]->Fill(aodph.E(),maxCellFraction); - fhNCellsE[pidIndex] ->Fill(aodph.E(),calo->GetNCells()); - fhTimeE[pidIndex] ->Fill(aodph.E(),calo->GetTOF()*1.e9); + fhMaxCellDiffClusterE[pidIndex]->Fill(aodpart.E(),maxCellFraction); + fhNCellsE[pidIndex] ->Fill(aodpart.E(),calo->GetNCells()); + fhTimeE[pidIndex] ->Fill(aodpart.E(),calo->GetTOF()*1.e9); + + //Add AOD with electron/hadron object to aod branch + if ( pid == fAODParticle || fAODParticle == 0 ) + { + AddAODParticle(aodpart); + } - //Add AOD with photon object to aod branch - AddAODParticle(aodph); - }//loop if(GetDebug() > 1) printf("AliAnaElectron::MakeAnalysisFillAOD() End fill AODs, with %d entries \n",GetOutputAODBranch()->GetEntriesFast()); diff --git a/PWGGA/CaloTrackCorrelations/AliAnaElectron.h b/PWGGA/CaloTrackCorrelations/AliAnaElectron.h index b118c12e15c..c7bced46b60 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaElectron.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaElectron.h @@ -96,8 +96,16 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass { Double_t GetNCellCut() const { return fNCellsCut ; } void FillNOriginHistograms(Int_t n) { fNOriginHistograms = n ; - if(n > 10) fNOriginHistograms = 10; } + if(n > 10) fNOriginHistograms = 10; } + + void FillAODWithElectrons() { fAODParticle = AliCaloPID::kElectron ; } + void FillAODWithHadrons() { fAODParticle = AliCaloPID::kChargedHadron ; } + void FillAODWithAny() { fAODParticle = 0 ; } + + void SwitchOnOnlySimpleSSHistoFill() { fFillOnlySimpleSSHisto = kTRUE ; } + void SwitchOffOnlySimpleHistoFill() { fFillOnlySimpleSSHisto = kFALSE ; } + // For histograms in arrays, index in the array, corresponding to a particle enum mcTypes { kmcPhoton = 0, kmcPi0Decay = 1, kmcOtherDecay = 2, kmcPi0 = 3, kmcEta = 4, kmcElectron = 5, @@ -117,6 +125,7 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass { Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns Int_t fNCellsCut ; // Accept for the analysis clusters with more than fNCellsCut cells Bool_t fFillSSHistograms ; // Fill shower shape histograms + Bool_t fFillOnlySimpleSSHisto; // Fill selected cluster histograms, selected SS histograms Bool_t fFillWeightHistograms ; // Fill weigth histograms Int_t fNOriginHistograms; // Fill only NOriginHistograms of the 14 defined types @@ -125,6 +134,8 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass { Float_t fEOverPMin; // Max E/p for electrons, after dEdx cut Float_t fEOverPMax; // Min E/p for electrons, after dEdx cut + Int_t fAODParticle; // Select the type of particle to put in AODs for other analysis + //Histograms TH2F * fhdEdxvsE; //! matched track dEdx vs cluster E TH2F * fhdEdxvsP; //! matched track dEdx vs track P @@ -210,10 +221,10 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass { TH2F * fhEmbedElectronELambda0MostlyBkg ; //! Lambda0 vs E for embedded electrons with 50%Fill(ptTrig , pout) ; fhPtTrigCharged ->Fill(ptTrig , ptAssoc) ; + if(IsDataMC()) + { + if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) || + GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhXEChargedMC[0]->Fill(ptTrig , xE); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhXEChargedMC[1]->Fill(ptTrig , xE); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhXEChargedMC[2]->Fill(ptTrig , xE); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhXEChargedMC[3]->Fill(ptTrig , xE); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhXEChargedMC[4]->Fill(ptTrig , xE); + else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhXEChargedMC[5]->Fill(ptTrig , xE); + } + if(fDecayTrigger && decay) { fhXEDecayCharged->Fill(ptTrig,xE); @@ -910,33 +931,48 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() Int_t nMixBins = GetNCentrBin()*GetNZvertBin()*GetNRPBin(); + TString nameMC[] = {"Photon","Pi0","Pi0Decay","EtaDecay","OtherDecay","Hadron"}; + + // For vz dependent histograms, if option ON Int_t nz = 1 ; if(fCorrelVzBin) nz = GetNZvertBin(); TString sz = "" ; TString tz = "" ; - fhPtInput = new TH1F("hPtInput","p_T distribution of input trigger particles", nptbins,ptmin,ptmax); + fhPtInput = new TH1F("hPtInput","p_{T} distribution of input trigger particles", nptbins,ptmin,ptmax); fhPtInput->SetXTitle("p_{T}^{trig} (GeV/c)"); outputContainer->Add(fhPtInput); - fhPtFidCut = new TH1F("hPtFidCut","p_T distribution of input trigger particles after fiducial cut", nptbins,ptmin,ptmax); + fhPtFidCut = new TH1F("hPtFidCut","p_{T} distribution of input trigger particles after fiducial cut", nptbins,ptmin,ptmax); fhPtFidCut->SetXTitle("p_{T}^{trig} (GeV/c)"); outputContainer->Add(fhPtFidCut); - fhPtLeading = new TH1F("hPtLeading","p_T distribution of leading particles", nptbins,ptmin,ptmax); + fhPtLeading = new TH1F("hPtLeading","p_{T} distribution of leading particles", nptbins,ptmin,ptmax); fhPtLeading->SetXTitle("p_{T}^{trig} (GeV/c)"); outputContainer->Add(fhPtLeading); + if(IsDataMC()) + { + for(Int_t i=0; i < 6; i++) + { + fhPtLeadingMC[i] = new TH1F(Form("hPtLeading_MC%s",nameMC[i].Data()), + Form("p_{T} distribution of leading particles, trigger origin is %s",nameMC[i].Data()), + nptbins,ptmin,ptmax); + fhPtLeadingMC[i]->SetXTitle("p_{T}^{trig} (GeV/c)"); + outputContainer->Add(fhPtLeadingMC[i]); + } + } + if(fCorrelVzBin) { - fhPtLeadingVzBin = new TH2F("hPtLeadingVzBin","p_T distribution of leading particles vs vz bin", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); + fhPtLeadingVzBin = new TH2F("hPtLeadingVzBin","p_{T} distribution of leading particles vs vz bin", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); fhPtLeadingVzBin->SetXTitle("p_{T}^{trig} (GeV/c)"); fhPtLeadingVzBin->SetYTitle("v_{z} bin"); outputContainer->Add(fhPtLeadingVzBin); } - fhPtLeadingBin = new TH2F ("hPtLeadingBin","p_T distribution of leading particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); + fhPtLeadingBin = new TH2F ("hPtLeadingBin","p_{T} distribution of leading particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); fhPtLeadingBin->SetXTitle("p_{T}^{trig} (GeV/c)"); fhPtLeadingBin->SetYTitle("Bin"); outputContainer->Add(fhPtLeadingBin); @@ -1109,6 +1145,20 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() outputContainer->Add(fhUePart); outputContainer->Add(fhXECharged) ; + + if(IsDataMC()) + { + for(Int_t i=0; i < 6; i++) + { + fhXEChargedMC[i] = new TH2F(Form("hXECharged_MC%s",nameMC[i].Data()), + Form("x_{E} for charged tracks, trigger origin is %s",nameMC[i].Data()), + nptbins,ptmin,ptmax,200,0.,2.); + fhXEChargedMC[i]->SetYTitle("x_{E}"); + fhXEChargedMC[i]->SetXTitle("p_{T trigger}"); + outputContainer->Add(fhXEChargedMC[i]) ; + } + } + outputContainer->Add(fhXEPosCharged) ; outputContainer->Add(fhXENegCharged) ; outputContainer->Add(fhXEUeCharged) ; @@ -1337,7 +1387,7 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() if(fPi0Trigger) { fhPtPi0DecayRatio = new TH2F - ("hPtPi0DecayRatio","p_T of #pi^{0} and the ratio of pt for two decay", + ("hPtPi0DecayRatio","p_{T} of #pi^{0} and the ratio of pt for two decay", nptbins,ptmin,ptmax, 100,0.,2.); fhPtPi0DecayRatio->SetXTitle("p_{T}^{#pi^{0}} (GeV/c)"); fhPtPi0DecayRatio->SetYTitle("p_{T}^{Decay}/p_{T}^{#pi^{0}}"); @@ -1716,7 +1766,7 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() fh2phiLeadingParticle->GetXaxis()->SetTitle("p_{T gen Leading} (GeV/c)"); fh2phiLeadingParticle->GetYaxis()->SetTitle("(#phi_{rec}-#phi_{gen})/#phi_{gen}"); - fhMCPtLeading = new TH1F ("hMCPtLeading","MC : p_T distribution of leading particles", nptbins,ptmin,ptmax); + fhMCPtLeading = new TH1F ("hMCPtLeading","MC : p_{T} distribution of leading particles", nptbins,ptmin,ptmax); fhMCPtLeading->SetXTitle("p_{T}^{trig} (GeV/c)"); fhMCPhiLeading = new TH2F ("hMCPhiLeading","MC : #phi distribution of leading Particles",nptbins,ptmin,ptmax, nphibins,phimin,phimax); @@ -1868,18 +1918,18 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() } } - fhPtLeadingMixed = new TH1F ("hPtLeadingMixed","p_T distribution of leading particles, used for mixing", nptbins,ptmin,ptmax); + fhPtLeadingMixed = new TH1F ("hPtLeadingMixed","p_{T} distribution of leading particles, used for mixing", nptbins,ptmin,ptmax); fhPtLeadingMixed->SetXTitle("p_{T}^{trig} (GeV/c)"); if(fCorrelVzBin) { - fhPtLeadingMixedVzBin = new TH2F ("hPtLeadingMixedVzBin","p_T distribution of leading particles, used for mixing", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); + fhPtLeadingMixedVzBin = new TH2F ("hPtLeadingMixedVzBin","p_{T} distribution of leading particles, used for mixing", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); fhPtLeadingMixedVzBin->SetXTitle("p_{T}^{trig} (GeV/c)"); fhPtLeadingMixedVzBin->SetYTitle("v_{z} bin"); outputContainer->Add(fhPtLeadingMixedVzBin); } - fhPtLeadingMixedBin = new TH2F ("hPtLeadingMixedBin","p_T distribution of leading particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); + fhPtLeadingMixedBin = new TH2F ("hPtLeadingMixedBin","p_{T} distribution of leading particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); fhPtLeadingMixedBin->SetXTitle("p_{T}^{trig} (GeV/c)"); fhPtLeadingMixedBin->SetYTitle("Bin"); @@ -2350,6 +2400,18 @@ void AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms() fhEtaLeading->Fill(pt, particle->Eta()); //printf("AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms() - Leading particle : pt %f, eta %f, phi %f\n",particle->Pt(),particle->Eta(),phi); + if(IsDataMC()) + { + Int_t mcTag = particle->GetTag(); + if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) || + GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhPtLeadingMC[0]->Fill(pt); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhPtLeadingMC[1]->Fill(pt); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtLeadingMC[2]->Fill(pt); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtLeadingMC[3]->Fill(pt); + else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtLeadingMC[4]->Fill(pt); + else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhPtLeadingMC[5]->Fill(pt); + } + Float_t cen = GetEventCentrality(); Float_t ep = GetEventPlaneAngle(); @@ -2513,7 +2575,7 @@ Bool_t AliAnaParticleHadronCorrelation::MakeChargedCorrelation(AliAODPWG4Partic { FillChargedMomentumImbalanceHistograms(ptTrig, pt, xE, hbpXE, zT, hbpZT, pout, deltaPhi, - nTracks, track->Charge(), bin, decay); + nTracks, track->Charge(), bin, decay,aodParticle->GetTag()); } if ( (deltaPhi > fUeDeltaPhiMinCut) && (deltaPhi < fUeDeltaPhiMaxCut) ) diff --git a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h index fd548956a1d..1ea7bd0af2c 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h @@ -73,7 +73,7 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { const Float_t zT, const Float_t hbpZT, const Float_t pout, const Float_t deltaPhi, const Int_t nTracks, const Int_t charge, - const Int_t assocBin, const Bool_t decay ); + const Int_t assocBin, const Bool_t decay, const Int_t mcTag ); void FillChargedUnderlyingEventHistograms (const Float_t ptTrig, const Float_t ptAssoc, const Float_t deltaPhi, const Int_t nTracks); @@ -216,6 +216,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { TH2F * fhPhiLeading; //! phi distribution vs pT of leading particles TH2F * fhEtaLeading; //! eta distribution vs pT of leading particles + TH1F * fhPtLeadingMC[6]; //! pT distribution of leading particles, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR) + TH2F * fhPtLeadingCentrality; //! pT distribution of leading particles vs centrality TH2F * fhPtLeadingEventPlane; //! pT distribution of leading particles vs centrality TH2F * fhLeadingEventPlaneCentrality; //! event plane vs centrality for leading particles @@ -248,6 +250,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { TH2F * fhPtHbpZTCharged ; //! Trigger particle -charged hadron momentum HBP histogram TH2F * fhPtHbpZTUeCharged ; //! Trigger particle -underlying charged hadron momentum HBP histogram + TH2F * fhXEChargedMC[6] ; //! Trigger particle -charged hadron momentum imbalance histogram, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR) + //if several UE calculation is on, most useful for jet-jet events contribution TH2F * fhDeltaPhiUeLeftCharged ; //! Difference of charged particle from underlying events phi and trigger particle phi as function of charged particle pT TH2F * fhDeltaPhiUeRightCharged ; //! Difference of charged particle from underlying events phi and trigger particle phi @@ -376,7 +380,7 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { AliAnaParticleHadronCorrelation( const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ; // cpy assignment - ClassDef(AliAnaParticleHadronCorrelation,23) + ClassDef(AliAnaParticleHadronCorrelation,24) } ; diff --git a/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx b/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx index 01273d9e79c..5a980d0c809 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx +++ b/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx @@ -69,21 +69,26 @@ fhPtIsoPrompt(0), fhPhiIsoPrompt(0), fhEtaIsoPromp fhPtThresIsolatedPrompt(), fhPtFracIsolatedPrompt(), fhPtSumIsolatedPrompt(), fhPtIsoFragmentation(0), fhPhiIsoFragmentation(0), fhEtaIsoFragmentation(0), fhPtThresIsolatedFragmentation(), fhPtFracIsolatedFragmentation(), fhPtSumIsolatedFragmentation(), +fhPtIsoPi0(0), fhPhiIsoPi0(0), fhEtaIsoPi0(0), +fhPtThresIsolatedPi0(), fhPtFracIsolatedPi0(), fhPtSumIsolatedPi0(), fhPtIsoPi0Decay(0), fhPhiIsoPi0Decay(0), fhEtaIsoPi0Decay(0), fhPtThresIsolatedPi0Decay(), fhPtFracIsolatedPi0Decay(), fhPtSumIsolatedPi0Decay(), fhPtIsoEtaDecay(0), fhPhiIsoEtaDecay(0), fhEtaIsoEtaDecay(0), fhPtThresIsolatedEtaDecay(), fhPtFracIsolatedEtaDecay(), fhPtSumIsolatedEtaDecay(), fhPtIsoOtherDecay(0), fhPhiIsoOtherDecay(0), fhEtaIsoOtherDecay(0), fhPtThresIsolatedOtherDecay(), fhPtFracIsolatedOtherDecay(), fhPtSumIsolatedOtherDecay(), -fhPtIsoConversion(0), fhPhiIsoConversion(0), fhEtaIsoConversion(0), -fhPtThresIsolatedConversion(), fhPtFracIsolatedConversion(), fhPtSumIsolatedConversion(), -fhPtIsoUnknown(0), fhPhiIsoUnknown(0), fhEtaIsoUnknown(0), -fhPtThresIsolatedUnknown(), fhPtFracIsolatedUnknown(), fhPtSumIsolatedUnknown(), -fhPtNoIsoPi0Decay(0), fhPtNoIsoEtaDecay(0), fhPtNoIsoOtherDecay(0), +//fhPtIsoConversion(0), fhPhiIsoConversion(0), fhEtaIsoConversion(0), +//fhPtThresIsolatedConversion(), fhPtFracIsolatedConversion(), fhPtSumIsolatedConversion(), +fhPtIsoHadron(0), fhPhiIsoHadron(0), fhEtaIsoHadron(0), +fhPtThresIsolatedHadron(), fhPtFracIsolatedHadron(), fhPtSumIsolatedHadron(), +fhPtNoIsoPi0(0), fhPtNoIsoPi0Decay(0), +fhPtNoIsoEtaDecay(0), fhPtNoIsoOtherDecay(0), fhPtNoIsoPrompt(0), fhPtIsoMCPhoton(0), fhPtNoIsoMCPhoton(0), -fhPtNoIsoConversion(0), fhPtNoIsoFragmentation(0), fhPtNoIsoUnknown(0), +//fhPtNoIsoConversion(0), +fhPtNoIsoFragmentation(0), fhPtNoIsoHadron(0), // Hist several IC -fhSumPtLeadingPt(),fhPtLeadingPt(),fhFRSumPtLeadingPt(),fhFRPtLeadingPt(), +fhSumPtLeadingPt(), fhPtLeadingPt(), +fhFRSumPtLeadingPt(), fhFRPtLeadingPt(), fhPtThresIsolated(), fhPtFracIsolated(), fhPtSumIsolated(), fhEtaPhiPtThresIso(), fhEtaPhiPtThresDecayIso(), fhPtPtThresDecayIso(), fhEtaPhiPtFracIso(), fhEtaPhiPtFracDecayIso(), fhPtPtFracDecayIso(), @@ -96,7 +101,8 @@ fhTrackMatchedDEta(), fhTrackMatchedDPhi(), fhTrackMatched fhdEdx(), fhEOverP(), fhTrackMatchedMCParticle(), fhELambda0() , fhELambda1(), fhELambda0SSBkg(), fhELambda0TRD(), fhELambda1TRD(), - +fhELambda0MCPhoton(), fhELambda0MCPi0(), fhELambda0MCPi0Decay(), +fhELambda0MCEtaDecay(), fhELambda0MCOtherDecay(), fhELambda0MCHadron(), // Number of local maxima in cluster fhNLocMax(), fhELambda0LocMax1(), fhELambda1LocMax1(), @@ -118,10 +124,11 @@ fHistoNPtInConeBins(0), fHistoPtInConeMax(0.), fHistoPtInCon fhPtSumIsolatedPrompt [i] = 0 ; fhPtSumIsolatedFragmentation[i] = 0 ; fhPtSumIsolatedPi0Decay [i] = 0 ; + fhPtSumIsolatedPi0 [i] = 0 ; fhPtSumIsolatedEtaDecay [i] = 0 ; fhPtSumIsolatedOtherDecay [i] = 0 ; - fhPtSumIsolatedConversion [i] = 0 ; - fhPtSumIsolatedUnknown [i] = 0 ; +// fhPtSumIsolatedConversion [i] = 0 ; + fhPtSumIsolatedHadron [i] = 0 ; for(Int_t j = 0; j < 5 ; j++) { @@ -149,18 +156,20 @@ fHistoNPtInConeBins(0), fHistoPtInConeMax(0.), fHistoPtInCon fhPtThresIsolatedPrompt [i][j] = 0 ; fhPtThresIsolatedFragmentation[i][j] = 0 ; fhPtThresIsolatedPi0Decay [i][j] = 0 ; - fhPtThresIsolatedEtaDecay [i][j] = 0 ; + fhPtThresIsolatedPi0 [i][j] = 0 ; + fhPtThresIsolatedEtaDecay [i][j] = 0 ; fhPtThresIsolatedOtherDecay [i][j] = 0 ; - fhPtThresIsolatedConversion [i][j] = 0 ; - fhPtThresIsolatedUnknown [i][j] = 0 ; +// fhPtThresIsolatedConversion [i][j] = 0 ; + fhPtThresIsolatedHadron [i][j] = 0 ; fhPtFracIsolatedPrompt [i][j] = 0 ; fhPtFracIsolatedFragmentation [i][j] = 0 ; + fhPtFracIsolatedPi0 [i][j] = 0 ; fhPtFracIsolatedPi0Decay [i][j] = 0 ; fhPtFracIsolatedEtaDecay [i][j] = 0 ; fhPtFracIsolatedOtherDecay [i][j] = 0 ; - fhPtFracIsolatedConversion [i][j] = 0 ; - fhPtFracIsolatedUnknown [i][j] = 0 ; +// fhPtFracIsolatedConversion [i][j] = 0 ; + fhPtFracIsolatedHadron [i][j] = 0 ; } } @@ -180,6 +189,10 @@ fHistoNPtInConeBins(0), fHistoPtInConeMax(0.), fHistoPtInCon fhELambda0 [i] = 0 ; fhELambda1 [i] = 0 ; fhELambda0TRD [i] = 0 ; fhELambda1TRD [i] = 0 ; + fhELambda0MCPhoton [i] = 0 ; fhELambda0MCPi0 [i] = 0 ; fhELambda0MCPi0Decay[i] = 0 ; + fhELambda0MCEtaDecay[i] = 0 ; fhELambda0MCOtherDecay[i] = 0 ; fhELambda0MCHadron [i] = 0 ; + + // Number of local maxima in cluster fhNLocMax [i] = 0 ; fhELambda0LocMax1[i] = 0 ; fhELambda1LocMax1[i] = 0 ; @@ -195,10 +208,10 @@ void AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(cons const Int_t clusterID, const Int_t nMaxima, const Int_t mcTag, - const TObjArray * plCTS, - const TObjArray * plNe, - AliAODPWG4ParticleCorrelation *pCandidate, - const AliCaloTrackReader * reader, + const TObjArray * plCTS, + const TObjArray * plNe, + AliAODPWG4ParticleCorrelation *pCandidate, + const AliCaloTrackReader * reader, const AliCaloPID * pid) { // Fill Track matching and Shower Shape control histograms @@ -226,6 +239,20 @@ void AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(cons fhELambda0[isolated]->Fill(energy, cluster->GetM02() ); fhELambda1[isolated]->Fill(energy, cluster->GetM20() ); + if(IsDataMC()) + { + if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) || + GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhELambda0MCPhoton [isolated]->Fill(energy, cluster->GetM02()); + else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhELambda0MCPi0 [isolated]->Fill(energy, cluster->GetM02()); + else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhELambda0MCPi0Decay [isolated]->Fill(energy, cluster->GetM02()); + else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhELambda0MCEtaDecay [isolated]->Fill(energy, cluster->GetM02()); + else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhELambda0MCOtherDecay[isolated]->Fill(energy, cluster->GetM02()); + + // else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(energy); + else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhELambda0MCHadron [isolated]->Fill(energy); + + } + if(fCalorimeter == "EMCAL" && GetModuleNumber(cluster) > 5) // TO DO: CHANGE FOR 2012 { fhELambda0TRD[isolated]->Fill(energy, cluster->GetM02() ); @@ -437,14 +464,15 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() { TString hName [] = {"NoIso",""}; TString hTitle[] = {"Not isolated" ,"isolated"}; - if(fFillSSHisto) - { + if(fFillSSHisto) + { fhELambda0SSBkg = new TH2F - ("hELambda0SSBkg","Non isolated clusters : E vs #lambda_{0}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); - fhELambda0SSBkg->SetYTitle("#lambda_{0}^{2}"); - fhELambda0SSBkg->SetXTitle("E (GeV)"); - outputContainer->Add(fhELambda0SSBkg) ; - } + ("hELambda0SSBkg","Non isolated clusters : E vs #lambda_{0}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); + fhELambda0SSBkg->SetYTitle("#lambda_{0}^{2}"); + fhELambda0SSBkg->SetXTitle("E (GeV)"); + outputContainer->Add(fhELambda0SSBkg) ; + } + for(Int_t iso = 0; iso < 2; iso++) { if(fFillTMHisto) @@ -521,6 +549,51 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhELambda0[iso]->SetXTitle("E (GeV)"); outputContainer->Add(fhELambda0[iso]) ; + if(IsDataMC()) + { + fhELambda0MCPhoton[iso] = new TH2F + (Form("hELambda0%s_MCPhoton",hName[iso].Data()), + Form("%s cluster : E vs #lambda_{0}: Origin is final state photon",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); + fhELambda0MCPhoton[iso]->SetYTitle("#lambda_{0}^{2}"); + fhELambda0MCPhoton[iso]->SetXTitle("E (GeV)"); + outputContainer->Add(fhELambda0MCPhoton[iso]) ; + + fhELambda0MCPi0[iso] = new TH2F + (Form("hELambda0%s_MCPi0",hName[iso].Data()), + Form("%s cluster : E vs #lambda_{0}: Origin is pi0 (2 #gamma)",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); + fhELambda0MCPi0[iso]->SetYTitle("#lambda_{0}^{2}"); + fhELambda0MCPi0[iso]->SetXTitle("E (GeV)"); + outputContainer->Add(fhELambda0MCPi0[iso]) ; + + fhELambda0MCPi0Decay[iso] = new TH2F + (Form("hELambda0%s_MCPi0Decay",hName[iso].Data()), + Form("%s cluster : E vs #lambda_{0}: Origin is pi0 decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); + fhELambda0MCPi0Decay[iso]->SetYTitle("#lambda_{0}^{2}"); + fhELambda0MCPi0Decay[iso]->SetXTitle("E (GeV)"); + outputContainer->Add(fhELambda0MCPi0Decay[iso]) ; + + fhELambda0MCEtaDecay[iso] = new TH2F + (Form("hELambda0%s_MCEtaDecay",hName[iso].Data()), + Form("%s cluster : E vs #lambda_{0}: Origin is eta decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); + fhELambda0MCEtaDecay[iso]->SetYTitle("#lambda_{0}^{2}"); + fhELambda0MCEtaDecay[iso]->SetXTitle("E (GeV)"); + outputContainer->Add(fhELambda0MCEtaDecay[iso]) ; + + fhELambda0MCOtherDecay[iso] = new TH2F + (Form("hELambda0%s_MCOtherDecay",hName[iso].Data()), + Form("%s cluster : E vs #lambda_{0}: Origin is other decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); + fhELambda0MCOtherDecay[iso]->SetYTitle("#lambda_{0}^{2}"); + fhELambda0MCOtherDecay[iso]->SetXTitle("E (GeV)"); + outputContainer->Add(fhELambda0MCOtherDecay[iso]) ; + + fhELambda0MCHadron[iso] = new TH2F + (Form("hELambda0%s_MCHadron",hName[iso].Data()), + Form("%s cluster : E vs #lambda_{0}: Origin is hadron",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); + fhELambda0MCHadron[iso]->SetYTitle("#lambda_{0}^{2}"); + fhELambda0MCHadron[iso]->SetXTitle("E (GeV)"); + outputContainer->Add(fhELambda0MCHadron[iso]) ; + } + fhELambda1[iso] = new TH2F (Form("hELambda1%s",hName[iso].Data()), Form("%s cluster: E vs #lambda_{1}",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); @@ -597,7 +670,7 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() } } // control histograms for isolated and non isolated objects - + fhConeSumPt = new TH2F("hConePtSum", Form("#Sigma p_{T} in isolation cone for R = %2.2f",r), nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); @@ -611,10 +684,10 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtInCone->SetYTitle("p_{T in cone} (GeV/c)"); fhPtInCone->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtInCone) ; - + fhPtInConeCent = new TH2F("hPtInConeCent", - Form("p_{T} in isolation cone for R = %2.2f",r), - 100,0,100,nptinconebins,ptinconemin,ptinconemax); + Form("p_{T} in isolation cone for R = %2.2f",r), + 100,0,100,nptinconebins,ptinconemin,ptinconemax); fhPtInConeCent->SetYTitle("p_{T in cone} (GeV/c)"); fhPtInConeCent->SetXTitle("centrality"); outputContainer->Add(fhPtInConeCent) ; @@ -632,49 +705,49 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtInFRCone->SetYTitle("p_{T in cone} (GeV/c)"); fhPtInFRCone->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtInFRCone) ; - + fhPhiUEConeSumPt = new TH2F("hPhiUEConeSumPt", - Form("p_{T} in phi band around isolation cone for R = %2.2f",r), - nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax); + Form("p_{T} in phi band around isolation cone for R = %2.2f",r), + nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax); fhPhiUEConeSumPt->SetYTitle("p_{T in band} (GeV/c)"); fhPhiUEConeSumPt->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPhiUEConeSumPt) ; - + fhEtaUEConeSumPt = new TH2F("hEtaUEConeSumPt", - Form("p_{T} in eta band around isolation cone for R = %2.2f",r), - nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax); + Form("p_{T} in eta band around isolation cone for R = %2.2f",r), + nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax); fhEtaUEConeSumPt->SetYTitle("p_{T in band} (GeV/c)"); fhEtaUEConeSumPt->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhEtaUEConeSumPt) ; - + fhEtaBand = new TH2F("fhEtaBand", - Form("Eta/Phi of particle in Eta band isolation cone for R = %2.2f",r), - netabins,etamin,etamax,nphibins,phimin,phimax); + Form("Eta/Phi of particle in Eta band isolation cone for R = %2.2f",r), + netabins,etamin,etamax,nphibins,phimin,phimax); fhEtaBand->SetXTitle("#eta"); fhEtaBand->SetYTitle("#phi"); outputContainer->Add(fhEtaBand) ; - + fhPhiBand = new TH2F("fhPhiBand", - Form("Eta/Phi of particle in Phi band isolation cone for R = %2.2f",r), - netabins,etamin,etamax,nphibins,phimin,phimax); + Form("Eta/Phi of particle in Phi band isolation cone for R = %2.2f",r), + netabins,etamin,etamax,nphibins,phimin,phimax); fhPhiBand->SetXTitle("#eta"); fhPhiBand->SetYTitle("#phi"); outputContainer->Add(fhPhiBand) ; - + fhConeSumPtEtaUESub = new TH2F("hConeSumPtEtaUESub", - Form("#Sigma p_{T} after bkg subtraction from eta band in the isolation cone for R = %2.2f",r), - nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax); + Form("#Sigma p_{T} after bkg subtraction from eta band in the isolation cone for R = %2.2f",r), + nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax); fhConeSumPtEtaUESub->SetYTitle("#Sigma p_{T}"); fhConeSumPtEtaUESub->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhConeSumPtEtaUESub) ; - + fhConeSumPtPhiUESub = new TH2F("hConeSumPtPhiUESub", - Form("#Sigma p_{T} after bkg subtraction from phi band in the isolation cone for R = %2.2f",r), - nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax); + Form("#Sigma p_{T} after bkg subtraction from phi band in the isolation cone for R = %2.2f",r), + nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax); fhConeSumPtPhiUESub->SetYTitle("#Sigma p_{T}"); fhConeSumPtPhiUESub->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhConeSumPtPhiUESub) ; - + fhEIso = new TH1F("hE", Form("Number of isolated particles vs E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac), nptbins,ptmin,ptmax); @@ -760,6 +833,23 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhEtaIsoFragmentation->SetXTitle("p_{T #gamma} (GeV/c)"); outputContainer->Add(fhEtaIsoFragmentation) ; + fhPtIsoPi0 = new TH1F("hPtMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax); + fhPtIsoPi0->SetYTitle("N"); + fhPtIsoPi0->SetXTitle("p_{T #gamma}(GeV/c)"); + outputContainer->Add(fhPtIsoPi0) ; + + fhPhiIsoPi0 = new TH2F + ("hPhiMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax,nphibins,phimin,phimax); + fhPhiIsoPi0->SetYTitle("#phi"); + fhPhiIsoPi0->SetXTitle("p_{T #gamma} (GeV/c)"); + outputContainer->Add(fhPhiIsoPi0) ; + + fhEtaIsoPi0 = new TH2F + ("hEtaMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax,netabins,etamin,etamax); + fhEtaIsoPi0->SetYTitle("#eta"); + fhEtaIsoPi0->SetXTitle("p_{T #gamma} (GeV/c)"); + outputContainer->Add(fhEtaIsoPi0) ; + fhPtIsoPi0Decay = new TH1F("hPtMCPi0Decay","Number of isolated #gamma from #pi^{0} decay",nptbins,ptmin,ptmax); fhPtIsoPi0Decay->SetYTitle("N"); fhPtIsoPi0Decay->SetXTitle("p_{T #gamma}(GeV/c)"); @@ -811,39 +901,39 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhEtaIsoOtherDecay->SetXTitle("p_{T #gamma} (GeV/c)"); outputContainer->Add(fhEtaIsoOtherDecay) ; - fhPtIsoConversion = new TH1F("hPtMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax); - fhPtIsoConversion->SetYTitle("N"); - fhPtIsoConversion->SetXTitle("p_{T #gamma}(GeV/c)"); - outputContainer->Add(fhPtIsoConversion) ; - - fhPhiIsoConversion = new TH2F - ("hPhiMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax); - fhPhiIsoConversion->SetYTitle("#phi"); - fhPhiIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)"); - outputContainer->Add(fhPhiIsoConversion) ; + // fhPtIsoConversion = new TH1F("hPtMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax); + // fhPtIsoConversion->SetYTitle("N"); + // fhPtIsoConversion->SetXTitle("p_{T #gamma}(GeV/c)"); + // outputContainer->Add(fhPtIsoConversion) ; + // + // fhPhiIsoConversion = new TH2F + // ("hPhiMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax); + // fhPhiIsoConversion->SetYTitle("#phi"); + // fhPhiIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)"); + // outputContainer->Add(fhPhiIsoConversion) ; + // + // fhEtaIsoConversion = new TH2F + // ("hEtaMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax); + // fhEtaIsoConversion->SetYTitle("#eta"); + // fhEtaIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)"); + // outputContainer->Add(fhEtaIsoConversion) ; - fhEtaIsoConversion = new TH2F - ("hEtaMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax); - fhEtaIsoConversion->SetYTitle("#eta"); - fhEtaIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)"); - outputContainer->Add(fhEtaIsoConversion) ; + fhPtIsoHadron = new TH1F("hPtMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax); + fhPtIsoHadron->SetYTitle("N"); + fhPtIsoHadron->SetXTitle("p_{T}(GeV/c)"); + outputContainer->Add(fhPtIsoHadron) ; - fhPtIsoUnknown = new TH1F("hPtMCUnknown","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax); - fhPtIsoUnknown->SetYTitle("N"); - fhPtIsoUnknown->SetXTitle("p_{T}(GeV/c)"); - outputContainer->Add(fhPtIsoUnknown) ; + fhPhiIsoHadron = new TH2F + ("hPhiMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,nphibins,phimin,phimax); + fhPhiIsoHadron->SetYTitle("#phi"); + fhPhiIsoHadron->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPhiIsoHadron) ; - fhPhiIsoUnknown = new TH2F - ("hPhiMCUnknown","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,nphibins,phimin,phimax); - fhPhiIsoUnknown->SetYTitle("#phi"); - fhPhiIsoUnknown->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPhiIsoUnknown) ; - - fhEtaIsoUnknown = new TH2F - ("hEtaMCUnknown","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,netabins,etamin,etamax); - fhEtaIsoUnknown->SetYTitle("#eta"); - fhEtaIsoUnknown->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhEtaIsoUnknown) ; + fhEtaIsoHadron = new TH2F + ("hEtaMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,netabins,etamin,etamax); + fhEtaIsoHadron->SetYTitle("#eta"); + fhEtaIsoHadron->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhEtaIsoHadron) ; }//Histos with MC @@ -884,6 +974,12 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() if(IsDataMC()) { + fhPtNoIsoPi0 = new TH1F + ("hPtNoIsoPi0","Number of not isolated leading #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax); + fhPtNoIsoPi0->SetYTitle("N"); + fhPtNoIsoPi0->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtNoIsoPi0) ; + fhPtNoIsoPi0Decay = new TH1F ("hPtNoIsoPi0Decay","Number of not isolated leading #gamma from #pi^{0} decay",nptbins,ptmin,ptmax); fhPtNoIsoPi0Decay->SetYTitle("N"); @@ -920,11 +1016,11 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtNoIsoMCPhoton->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtNoIsoMCPhoton) ; - fhPtNoIsoConversion = new TH1F - ("hPtNoIsoConversion","Number of not isolated leading conversion #gamma",nptbins,ptmin,ptmax); - fhPtNoIsoConversion->SetYTitle("N"); - fhPtNoIsoConversion->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtNoIsoConversion) ; +// fhPtNoIsoConversion = new TH1F +// ("hPtNoIsoConversion","Number of not isolated leading conversion #gamma",nptbins,ptmin,ptmax); +// fhPtNoIsoConversion->SetYTitle("N"); +// fhPtNoIsoConversion->SetXTitle("p_{T} (GeV/c)"); +// outputContainer->Add(fhPtNoIsoConversion) ; fhPtNoIsoFragmentation = new TH1F ("hPtNoIsoFragmentation","Number of not isolated leading fragmentation #gamma",nptbins,ptmin,ptmax); @@ -932,11 +1028,11 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtNoIsoFragmentation->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtNoIsoFragmentation) ; - fhPtNoIsoUnknown = new TH1F - ("hPtNoIsoUnknown","Number of not isolated leading hadrons",nptbins,ptmin,ptmax); - fhPtNoIsoUnknown->SetYTitle("N"); - fhPtNoIsoUnknown->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtNoIsoUnknown) ; + fhPtNoIsoHadron = new TH1F + ("hPtNoIsoHadron","Number of not isolated leading hadrons",nptbins,ptmin,ptmax); + fhPtNoIsoHadron->SetYTitle("N"); + fhPtNoIsoHadron->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtNoIsoHadron) ; }//Histos with MC @@ -997,6 +1093,13 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtSumIsolatedFragmentation[icone]->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtSumIsolatedFragmentation[icone]) ; + snprintf(name, buffersize,"hPtSumPi0_Cone_%d",icone); + snprintf(title, buffersize,"Candidate Pi0 cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]); + fhPtSumIsolatedPi0[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); + fhPtSumIsolatedPi0[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); + fhPtSumIsolatedPi0[icone]->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtSumIsolatedPi0[icone]) ; + snprintf(name, buffersize,"hPtSumPi0Decay_Cone_%d",icone); snprintf(title, buffersize,"Candidate Pi0Decay cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]); fhPtSumIsolatedPi0Decay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); @@ -1018,19 +1121,19 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtSumIsolatedOtherDecay[icone]->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtSumIsolatedOtherDecay[icone]) ; - snprintf(name, buffersize,"hPtSumConversion_Cone_%d",icone); - snprintf(title, buffersize,"Candidate Conversion cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]); - fhPtSumIsolatedConversion[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); - fhPtSumIsolatedConversion[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); - fhPtSumIsolatedConversion[icone]->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtSumIsolatedConversion[icone]) ; +// snprintf(name, buffersize,"hPtSumConversion_Cone_%d",icone); +// snprintf(title, buffersize,"Candidate Conversion cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]); +// fhPtSumIsolatedConversion[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); +// fhPtSumIsolatedConversion[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); +// fhPtSumIsolatedConversion[icone]->SetXTitle("p_{T} (GeV/c)"); +// outputContainer->Add(fhPtSumIsolatedConversion[icone]) ; - snprintf(name, buffersize,"hPtSumUnknown_Cone_%d",icone); - snprintf(title, buffersize,"Candidate Unknown cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]); - fhPtSumIsolatedUnknown[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); - fhPtSumIsolatedUnknown[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); - fhPtSumIsolatedUnknown[icone]->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtSumIsolatedUnknown[icone]) ; + snprintf(name, buffersize,"hPtSumHadron_Cone_%d",icone); + snprintf(title, buffersize,"Candidate Hadron cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]); + fhPtSumIsolatedHadron[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); + fhPtSumIsolatedHadron[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); + fhPtSumIsolatedHadron[icone]->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtSumIsolatedHadron[icone]) ; }//Histos with MC @@ -1206,6 +1309,18 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtFracIsolatedFragmentation[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtFracIsolatedFragmentation[icone][ipt]) ; + snprintf(name, buffersize,"hPtThresMCPi0_Cone_%d_Pt%d",icone,ipt); + snprintf(title, buffersize,"Isolated candidate Pi0 p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); + fhPtThresIsolatedPi0[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); + fhPtThresIsolatedPi0[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtThresIsolatedPi0[icone][ipt]) ; + + snprintf(name, buffersize,"hPtFracMCPi0_Cone_%d_Pt%d",icone,ipt); + snprintf(title, buffersize,"Isolated candidate Pi0 p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); + fhPtFracIsolatedPi0[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); + fhPtFracIsolatedPi0[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtFracIsolatedPi0[icone][ipt]) ; + snprintf(name, buffersize,"hPtThresMCPi0Decay_Cone_%d_Pt%d",icone,ipt); snprintf(title, buffersize,"Isolated candidate Pi0Decay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); fhPtThresIsolatedPi0Decay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); @@ -1243,29 +1358,29 @@ TList * AliAnaParticleIsolation::GetCreateOutputObjects() fhPtFracIsolatedOtherDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); outputContainer->Add(fhPtFracIsolatedOtherDecay[icone][ipt]) ; - snprintf(name, buffersize,"hPtThresMCConversion_Cone_%d_Pt%d",icone,ipt); - snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); - fhPtThresIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); - fhPtThresIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtThresIsolatedConversion[icone][ipt]) ; +// snprintf(name, buffersize,"hPtThresMCConversion_Cone_%d_Pt%d",icone,ipt); +// snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); +// fhPtThresIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); +// fhPtThresIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); +// outputContainer->Add(fhPtThresIsolatedConversion[icone][ipt]) ; - snprintf(name, buffersize,"hPtFracMCConversion_Cone_%d_Pt%d",icone,ipt); - snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); - fhPtFracIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); - fhPtFracIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtFracIsolatedConversion[icone][ipt]) ; +// snprintf(name, buffersize,"hPtFracMCConversion_Cone_%d_Pt%d",icone,ipt); +// snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); +// fhPtFracIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); +// fhPtFracIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); +// outputContainer->Add(fhPtFracIsolatedConversion[icone][ipt]) ; - snprintf(name, buffersize,"hPtThresMCUnknown_Cone_%d_Pt%d",icone,ipt); - snprintf(title, buffersize,"Isolated candidate Unknown p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); - fhPtThresIsolatedUnknown[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); - fhPtThresIsolatedUnknown[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtThresIsolatedUnknown[icone][ipt]) ; + snprintf(name, buffersize,"hPtThresMCHadron_Cone_%d_Pt%d",icone,ipt); + snprintf(title, buffersize,"Isolated candidate Hadron p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); + fhPtThresIsolatedHadron[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); + fhPtThresIsolatedHadron[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtThresIsolatedHadron[icone][ipt]) ; - snprintf(name, buffersize,"hPtFracMCUnknown_Cone_%d_Pt%d",icone,ipt); - snprintf(title, buffersize,"Isolated candidate Unknown p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); - fhPtFracIsolatedUnknown[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); - fhPtFracIsolatedUnknown[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); - outputContainer->Add(fhPtFracIsolatedUnknown[icone][ipt]) ; + snprintf(name, buffersize,"hPtFracMCHadron_Cone_%d_Pt%d",icone,ipt); + snprintf(title, buffersize,"Isolated candidate Hadron p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); + fhPtFracIsolatedHadron[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); + fhPtFracIsolatedHadron[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); + outputContainer->Add(fhPtFracIsolatedHadron[icone][ipt]) ; }//Histos with MC }//icone loop @@ -1640,6 +1755,12 @@ void AliAnaParticleIsolation::MakeAnalysisFillHistograms() fhPhiIsoFragmentation ->Fill(pt,phi); fhEtaIsoFragmentation ->Fill(pt,eta); } + else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) + { + fhPtIsoPi0 ->Fill(pt); + fhPhiIsoPi0 ->Fill(pt,phi); + fhEtaIsoPi0 ->Fill(pt,eta); + } else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) { fhPtIsoPi0Decay ->Fill(pt); @@ -1658,17 +1779,17 @@ void AliAnaParticleIsolation::MakeAnalysisFillHistograms() fhPhiIsoOtherDecay ->Fill(pt,phi); fhEtaIsoOtherDecay ->Fill(pt,eta); } - else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) - { - fhPtIsoConversion ->Fill(pt); - fhPhiIsoConversion ->Fill(pt,phi); - fhEtaIsoConversion ->Fill(pt,eta); - } - else // anything else +// else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) +// { +// fhPtIsoConversion ->Fill(pt); +// fhPhiIsoConversion ->Fill(pt,phi); +// fhEtaIsoConversion ->Fill(pt,eta); +// } + else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))// anything else but electrons { - fhPtIsoUnknown ->Fill(pt); - fhPhiIsoUnknown ->Fill(pt,phi); - fhEtaIsoUnknown ->Fill(pt,eta); + fhPtIsoHadron ->Fill(pt); + fhPhiIsoHadron ->Fill(pt,phi); + fhEtaIsoHadron ->Fill(pt,eta); } }//Histograms with MC @@ -1689,13 +1810,14 @@ void AliAnaParticleIsolation::MakeAnalysisFillHistograms() if(IsDataMC()) { if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton)) fhPtNoIsoMCPhoton ->Fill(pt); - if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(pt); + if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhPtNoIsoPi0 ->Fill(pt); + else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(pt); else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtNoIsoEtaDecay ->Fill(pt); else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtNoIsoOtherDecay ->Fill(pt); else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt)) fhPtNoIsoPrompt ->Fill(pt); else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(pt); - else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(pt); - else fhPtNoIsoUnknown ->Fill(pt); +// else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(pt); + else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhPtNoIsoHadron ->Fill(pt); } } }// aod loop @@ -1735,13 +1857,14 @@ void AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati if(IsDataMC()) { if (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton)) fhPtNoIsoMCPhoton ->Fill(ptC); - if (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(ptC); + if (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtNoIsoPi0 ->Fill(ptC); + else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(ptC); else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtNoIsoEtaDecay ->Fill(ptC); else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtNoIsoOtherDecay ->Fill(ptC); else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtNoIsoPrompt ->Fill(ptC); else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(ptC); - else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(ptC); - else fhPtNoIsoUnknown ->Fill(ptC); +// else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(ptC); + else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtNoIsoHadron ->Fill(ptC); } if(decay) @@ -1879,12 +2002,13 @@ void AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati if(IsDataMC()) { if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtThresIsolatedPrompt[icone][ipt] ->Fill(ptC) ; - else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtThresIsolatedConversion[icone][ipt] ->Fill(ptC) ; +// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtThresIsolatedConversion[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtThresIsolatedFragmentation[icone][ipt]->Fill(ptC) ; + else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtThresIsolatedPi0[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtThresIsolatedPi0Decay[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtThresIsolatedEtaDecay[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtThresIsolatedOtherDecay[icone][ipt] ->Fill(ptC) ; - else fhPtThresIsolatedUnknown[icone][ipt] ->Fill(ptC) ; + else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtThresIsolatedHadron[icone][ipt] ->Fill(ptC) ; } } @@ -1904,12 +2028,13 @@ void AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati if(IsDataMC()) { if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtFracIsolatedPrompt[icone][ipt] ->Fill(ptC) ; - else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtFracIsolatedConversion[icone][ipt] ->Fill(ptC) ; +// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtFracIsolatedConversion[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtFracIsolatedFragmentation[icone][ipt]->Fill(ptC) ; + else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtFracIsolatedPi0[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtFracIsolatedPi0Decay[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtFracIsolatedEtaDecay[icone][ipt] ->Fill(ptC) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtFracIsolatedOtherDecay[icone][ipt] ->Fill(ptC) ; - else fhPtFracIsolatedUnknown[icone][ipt]->Fill(ptC) ; + else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtFracIsolatedHadron[icone][ipt]->Fill(ptC) ; } } @@ -1964,12 +2089,13 @@ void AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati if(IsDataMC()) { if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtSumIsolatedPrompt[icone] ->Fill(ptC,coneptsum) ; - else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtSumIsolatedConversion[icone] ->Fill(ptC,coneptsum) ; +// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtSumIsolatedConversion[icone] ->Fill(ptC,coneptsum) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtSumIsolatedFragmentation[icone]->Fill(ptC,coneptsum) ; + else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtSumIsolatedPi0[icone] ->Fill(ptC,coneptsum) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtSumIsolatedPi0Decay[icone] ->Fill(ptC,coneptsum) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtSumIsolatedEtaDecay[icone] ->Fill(ptC,coneptsum) ; else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtSumIsolatedOtherDecay[icone] ->Fill(ptC,coneptsum) ; - else fhPtSumIsolatedUnknown[icone]->Fill(ptC,coneptsum) ; + else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtSumIsolatedHadron[icone]->Fill(ptC,coneptsum) ; } }//cone size loop diff --git a/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h b/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h index 3d323bc2d9b..913b6b66a8f 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h @@ -167,6 +167,12 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass { TH1F * fhPtThresIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt threshold TH1F * fhPtFracIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt frac TH2F * fhPtSumIsolatedFragmentation[5]; //! Isolated fragmentation gamma with threshold on cone pt sume + TH1F * fhPtIsoPi0; //! Number of isolated pi0 (2 gamma) + TH2F * fhPhiIsoPi0; //! Phi of isolated pi0 (2 gamma) + TH2F * fhEtaIsoPi0; //! eta of isolated pi0 (2 gamma) + TH1F * fhPtThresIsolatedPi0[5][5]; //! Isolated pi0 (2 gamma) with pt threshold + TH1F * fhPtFracIsolatedPi0[5][5]; //! Isolated pi0 (2 gamma) with pt frac + TH2F * fhPtSumIsolatedPi0[5]; //! Isolated pi0 (2 gamma) with threshold on cone pt sum TH1F * fhPtIsoPi0Decay; //! Number of isolated pi0 decay gamma TH2F * fhPhiIsoPi0Decay; //! Phi of isolated pi0 decay gamma TH2F * fhEtaIsoPi0Decay; //! eta of isolated pi0 decay gamma @@ -185,29 +191,30 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass { TH1F * fhPtThresIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt threshold TH1F * fhPtFracIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt frac TH2F * fhPtSumIsolatedOtherDecay[5]; //! Isolated OtherDecay gamma with threshold on cone pt sume - TH1F * fhPtIsoConversion; //! Number of isolated Conversion gamma - TH2F * fhPhiIsoConversion; //! Phi of isolated Conversion gamma - TH2F * fhEtaIsoConversion; //! eta of isolated Conversion gamma - TH1F * fhPtThresIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt threshold - TH1F * fhPtFracIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt frac - TH2F * fhPtSumIsolatedConversion[5]; //! Isolated Conversion gamma with threshold on cone pt sume - TH1F * fhPtIsoUnknown; //! Number of isolated Unknown - TH2F * fhPhiIsoUnknown; //! Phi of isolated Unknown - TH2F * fhEtaIsoUnknown; //! eta of isolated Unknown - TH1F * fhPtThresIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt threshold - TH1F * fhPtFracIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt frac - TH2F * fhPtSumIsolatedUnknown[5]; //! Isolated Unknown gamma with threshold on cone pt sume +// TH1F * fhPtIsoConversion; //! Number of isolated Conversion gamma +// TH2F * fhPhiIsoConversion; //! Phi of isolated Conversion gamma +// TH2F * fhEtaIsoConversion; //! eta of isolated Conversion gamma +// TH1F * fhPtThresIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt threshold +// TH1F * fhPtFracIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt frac +// TH2F * fhPtSumIsolatedConversion[5]; //! Isolated Conversion gamma with threshold on cone pt sume + TH1F * fhPtIsoHadron; //! Number of isolated Hadron + TH2F * fhPhiIsoHadron; //! Phi of isolated Hadron + TH2F * fhEtaIsoHadron; //! eta of isolated Hadron + TH1F * fhPtThresIsolatedHadron[5][5]; //! Isolated Hadron gamma with pt threshold + TH1F * fhPtFracIsolatedHadron[5][5]; //! Isolated Hadron gamma with pt frac + TH2F * fhPtSumIsolatedHadron[5]; //! Isolated Hadron gamma with threshold on cone pt sume // Multi Cut analysis Several IC + TH1F * fhPtNoIsoPi0; //! Number of not isolated leading pi0 (2 gamma) TH1F * fhPtNoIsoPi0Decay; //! Number of not isolated leading pi0 decay gamma TH1F * fhPtNoIsoEtaDecay; //! Number of not isolated leading eta decay gamma TH1F * fhPtNoIsoOtherDecay; //! Number of not isolated leading other decay gamma TH1F * fhPtNoIsoPrompt; //! Number of not isolated leading prompt gamma TH1F * fhPtIsoMCPhoton; //! Number of isolated leading gamma TH1F * fhPtNoIsoMCPhoton; //! Number of not isolated leading gamma - TH1F * fhPtNoIsoConversion; //! Number of not isolated leading conversion gamma +// TH1F * fhPtNoIsoConversion; //! Number of not isolated leading conversion gamma TH1F * fhPtNoIsoFragmentation; //! Number of not isolated leading fragmentation gamma - TH1F * fhPtNoIsoUnknown; //! Number of not isolated leading hadrons + TH1F * fhPtNoIsoHadron; //! Number of not isolated leading hadrons TH2F * fhSumPtLeadingPt[5] ; //! Sum Pt in the cone TH2F * fhPtLeadingPt[5] ; //! Particle Pt in the cone @@ -254,7 +261,13 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass { TH2F * fhELambda0SSBkg; //! Shower shape of non isolated photons close to isolation threshold (do not apply SS cut previously) TH2F * fhELambda0TRD[2]; //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously) TH2F * fhELambda1TRD[2]; //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously) - + TH2F * fhELambda0MCPhoton[2]; //! Shower shape of (non) isolated photon candidates originated by particle photon not decay (do not apply SS cut previously) + TH2F * fhELambda0MCPi0[2]; //! Shower shape of (non) isolated photon candidates originated by particle 2 merged pi0 photons (do not apply SS cut previously) + TH2F * fhELambda0MCPi0Decay[2]; //! Shower shape of (non) isolated photon candidates originated by particle pi0 decay photon (do not apply SS cut previously) + TH2F * fhELambda0MCEtaDecay[2]; //! Shower shape of (non) isolated photon candidates originated by particle eta decay photon (do not apply SS cut previously) + TH2F * fhELambda0MCOtherDecay[2]; //! Shower shape of (non) isolated photon candidates originated by particle other decay photon (do not apply SS cut previously) + TH2F * fhELambda0MCHadron[2]; //! Shower shape of (non) isolated photon candidates originated by particle other hadrons (do not apply SS cut previously) + // Local maxima TH2F * fhNLocMax[2]; //! number of maxima in selected clusters TH2F * fhELambda0LocMax1[2] ; //! E vs lambda0 of selected cluster, 1 local maxima in cluster @@ -275,7 +288,7 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass { AliAnaParticleIsolation( const AliAnaParticleIsolation & iso) ; // cpy ctor AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & iso) ; // cpy assignment - ClassDef(AliAnaParticleIsolation,15) + ClassDef(AliAnaParticleIsolation,16) } ; diff --git a/PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx b/PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx index b427d35ef66..6d9ce93402c 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx +++ b/PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx @@ -57,7 +57,7 @@ AliAnaPhoton::AliAnaPhoton() : fMinDist(0.), fMinDist2(0.), fMinDist3(0.), fRejectTrackMatch(0), fFillTMHisto(kFALSE), fTimeCutMin(-10000), fTimeCutMax(10000), - fNCellsCut(0), fFillSSHistograms(kFALSE), + fNCellsCut(0), fFillSSHistograms(kFALSE), fFillOnlySimpleSSHisto(1), fNOriginHistograms(8), fNPrimaryHistograms(4), // Histograms @@ -617,7 +617,7 @@ void AliAnaPhoton::FillShowerShapeHistograms(AliVCluster* cluster, const Int_t Float_t l0 = 0., l1 = 0.; Float_t dispp= 0., dEta = 0., dPhi = 0.; Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; - if(fCalorimeter == "EMCAL") + if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto) { GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster, l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi); @@ -677,29 +677,32 @@ void AliAnaPhoton::FillShowerShapeHistograms(AliVCluster* cluster, const Int_t } }// if track-matching was of, check effect of matching residual cut - if(energy < 2) - { - fhNCellsLam0LowE ->Fill(ncells,lambda0); - fhNCellsLam1LowE ->Fill(ncells,lambda1); - fhNCellsDispLowE ->Fill(ncells,disp); - - fhLam1Lam0LowE ->Fill(lambda1,lambda0); - fhLam0DispLowE ->Fill(lambda0,disp); - fhDispLam1LowE ->Fill(disp,lambda1); - fhEtaLam0LowE ->Fill(eta,lambda0); - fhPhiLam0LowE ->Fill(phi,lambda0); - } - else - { - fhNCellsLam0HighE ->Fill(ncells,lambda0); - fhNCellsLam1HighE ->Fill(ncells,lambda1); - fhNCellsDispHighE ->Fill(ncells,disp); - - fhLam1Lam0HighE ->Fill(lambda1,lambda0); - fhLam0DispHighE ->Fill(lambda0,disp); - fhDispLam1HighE ->Fill(disp,lambda1); - fhEtaLam0HighE ->Fill(eta, lambda0); - fhPhiLam0HighE ->Fill(phi, lambda0); + + if(!fFillOnlySimpleSSHisto){ + if(energy < 2) + { + fhNCellsLam0LowE ->Fill(ncells,lambda0); + fhNCellsLam1LowE ->Fill(ncells,lambda1); + fhNCellsDispLowE ->Fill(ncells,disp); + + fhLam1Lam0LowE ->Fill(lambda1,lambda0); + fhLam0DispLowE ->Fill(lambda0,disp); + fhDispLam1LowE ->Fill(disp,lambda1); + fhEtaLam0LowE ->Fill(eta,lambda0); + fhPhiLam0LowE ->Fill(phi,lambda0); + } + else + { + fhNCellsLam0HighE ->Fill(ncells,lambda0); + fhNCellsLam1HighE ->Fill(ncells,lambda1); + fhNCellsDispHighE ->Fill(ncells,disp); + + fhLam1Lam0HighE ->Fill(lambda1,lambda0); + fhLam0DispHighE ->Fill(lambda0,disp); + fhDispLam1HighE ->Fill(disp,lambda1); + fhEtaLam0HighE ->Fill(eta, lambda0); + fhPhiLam0HighE ->Fill(phi, lambda0); + } } if(IsDataMC()) @@ -856,44 +859,46 @@ void AliAnaPhoton::FillShowerShapeHistograms(AliVCluster* cluster, const Int_t fhMCNCellsE [mcIndex]->Fill(energy, ncells); fhMCMaxCellDiffClusterE[mcIndex]->Fill(energy, maxCellFraction); - if (energy < 2.) - { - fhMCLambda0vsClusterMaxCellDiffE0[mcIndex]->Fill(lambda0, maxCellFraction); - fhMCNCellsvsClusterMaxCellDiffE0 [mcIndex]->Fill(ncells, maxCellFraction); - } - else if(energy < 6.) - { - fhMCLambda0vsClusterMaxCellDiffE2[mcIndex]->Fill(lambda0, maxCellFraction); - fhMCNCellsvsClusterMaxCellDiffE2 [mcIndex]->Fill(ncells, maxCellFraction); - } - else - { - fhMCLambda0vsClusterMaxCellDiffE6[mcIndex]->Fill(lambda0, maxCellFraction); - fhMCNCellsvsClusterMaxCellDiffE6 [mcIndex]->Fill(ncells, maxCellFraction); - } - - if(fCalorimeter == "EMCAL") + if(!fFillOnlySimpleSSHisto) { - fhMCEDispEta [mcIndex]-> Fill(energy,dEta); - fhMCEDispPhi [mcIndex]-> Fill(energy,dPhi); - fhMCESumEtaPhi [mcIndex]-> Fill(energy,sEtaPhi); - fhMCEDispEtaPhiDiff [mcIndex]-> Fill(energy,dPhi-dEta); - if(dEta+dPhi>0)fhMCESphericity[mcIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi)); - - Int_t ebin = -1; - if (energy < 2 ) ebin = 0; - else if (energy < 4 ) ebin = 1; - else if (energy < 6 ) ebin = 2; - else if (energy < 10) ebin = 3; - else if (energy < 15) ebin = 4; - else if (energy < 20) ebin = 5; - else ebin = 6; - - fhMCDispEtaDispPhi[ebin][mcIndex]->Fill(dEta ,dPhi); - fhMCLambda0DispEta[ebin][mcIndex]->Fill(lambda0,dEta); - fhMCLambda0DispPhi[ebin][mcIndex]->Fill(lambda0,dPhi); + if (energy < 2.) + { + fhMCLambda0vsClusterMaxCellDiffE0[mcIndex]->Fill(lambda0, maxCellFraction); + fhMCNCellsvsClusterMaxCellDiffE0 [mcIndex]->Fill(ncells, maxCellFraction); + } + else if(energy < 6.) + { + fhMCLambda0vsClusterMaxCellDiffE2[mcIndex]->Fill(lambda0, maxCellFraction); + fhMCNCellsvsClusterMaxCellDiffE2 [mcIndex]->Fill(ncells, maxCellFraction); + } + else + { + fhMCLambda0vsClusterMaxCellDiffE6[mcIndex]->Fill(lambda0, maxCellFraction); + fhMCNCellsvsClusterMaxCellDiffE6 [mcIndex]->Fill(ncells, maxCellFraction); + } + + if(fCalorimeter == "EMCAL") + { + fhMCEDispEta [mcIndex]-> Fill(energy,dEta); + fhMCEDispPhi [mcIndex]-> Fill(energy,dPhi); + fhMCESumEtaPhi [mcIndex]-> Fill(energy,sEtaPhi); + fhMCEDispEtaPhiDiff [mcIndex]-> Fill(energy,dPhi-dEta); + if(dEta+dPhi>0)fhMCESphericity[mcIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi)); + + Int_t ebin = -1; + if (energy < 2 ) ebin = 0; + else if (energy < 4 ) ebin = 1; + else if (energy < 6 ) ebin = 2; + else if (energy < 10) ebin = 3; + else if (energy < 15) ebin = 4; + else if (energy < 20) ebin = 5; + else ebin = 6; + + fhMCDispEtaDispPhi[ebin][mcIndex]->Fill(dEta ,dPhi); + fhMCLambda0DispEta[ebin][mcIndex]->Fill(lambda0,dEta); + fhMCLambda0DispPhi[ebin][mcIndex]->Fill(lambda0,dPhi); + } } - }//MC data } @@ -1217,156 +1222,159 @@ TList * AliAnaPhoton::GetCreateOutputObjects() } } - fhNCellsLam0LowE = new TH2F ("hNCellsLam0LowE","N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsLam0LowE->SetXTitle("N_{cells}"); - fhNCellsLam0LowE->SetYTitle("#lambda_{0}^{2}"); - outputContainer->Add(fhNCellsLam0LowE); - - fhNCellsLam0HighE = new TH2F ("hNCellsLam0HighE","N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsLam0HighE->SetXTitle("N_{cells}"); - fhNCellsLam0HighE->SetYTitle("#lambda_{0}^{2}"); - outputContainer->Add(fhNCellsLam0HighE); - - fhNCellsLam1LowE = new TH2F ("hNCellsLam1LowE","N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsLam1LowE->SetXTitle("N_{cells}"); - fhNCellsLam1LowE->SetYTitle("#lambda_{0}^{2}"); - outputContainer->Add(fhNCellsLam1LowE); - - fhNCellsLam1HighE = new TH2F ("hNCellsLam1HighE","N_{cells} in cluster vs #lambda_{1}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsLam1HighE->SetXTitle("N_{cells}"); - fhNCellsLam1HighE->SetYTitle("#lambda_{0}^{2}"); - outputContainer->Add(fhNCellsLam1HighE); - - fhNCellsDispLowE = new TH2F ("hNCellsDispLowE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsDispLowE->SetXTitle("N_{cells}"); - fhNCellsDispLowE->SetYTitle("D^{2}"); - outputContainer->Add(fhNCellsDispLowE); - - fhNCellsDispHighE = new TH2F ("hNCellsDispHighE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); - fhNCellsDispHighE->SetXTitle("N_{cells}"); - fhNCellsDispHighE->SetYTitle("D^{2}"); - outputContainer->Add(fhNCellsDispHighE); - - fhEtaLam0LowE = new TH2F ("hEtaLam0LowE","#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); - fhEtaLam0LowE->SetYTitle("#lambda_{0}^{2}"); - fhEtaLam0LowE->SetXTitle("#eta"); - outputContainer->Add(fhEtaLam0LowE); - - fhPhiLam0LowE = new TH2F ("hPhiLam0LowE","#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); - fhPhiLam0LowE->SetYTitle("#lambda_{0}^{2}"); - fhPhiLam0LowE->SetXTitle("#phi"); - outputContainer->Add(fhPhiLam0LowE); - - fhEtaLam0HighE = new TH2F ("hEtaLam0HighE","#eta vs #lambda_{0}^{2}, E > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); - fhEtaLam0HighE->SetYTitle("#lambda_{0}^{2}"); - fhEtaLam0HighE->SetXTitle("#eta"); - outputContainer->Add(fhEtaLam0HighE); - - fhPhiLam0HighE = new TH2F ("hPhiLam0HighE","#phi vs #lambda_{0}^{2}, E > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); - fhPhiLam0HighE->SetYTitle("#lambda_{0}^{2}"); - fhPhiLam0HighE->SetXTitle("#phi"); - outputContainer->Add(fhPhiLam0HighE); - - fhLam1Lam0LowE = new TH2F ("hLam1Lam0LowE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); - fhLam1Lam0LowE->SetYTitle("#lambda_{0}^{2}"); - fhLam1Lam0LowE->SetXTitle("#lambda_{1}^{2}"); - outputContainer->Add(fhLam1Lam0LowE); - - fhLam1Lam0HighE = new TH2F ("hLam1Lam0HighE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); - fhLam1Lam0HighE->SetYTitle("#lambda_{0}^{2}"); - fhLam1Lam0HighE->SetXTitle("#lambda_{1}^{2}"); - outputContainer->Add(fhLam1Lam0HighE); - - fhLam0DispLowE = new TH2F ("hLam0DispLowE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); - fhLam0DispLowE->SetXTitle("#lambda_{0}^{2}"); - fhLam0DispLowE->SetYTitle("D^{2}"); - outputContainer->Add(fhLam0DispLowE); - - fhLam0DispHighE = new TH2F ("hLam0DispHighE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); - fhLam0DispHighE->SetXTitle("#lambda_{0}^{2}"); - fhLam0DispHighE->SetYTitle("D^{2}"); - outputContainer->Add(fhLam0DispHighE); - - fhDispLam1LowE = new TH2F ("hDispLam1LowE","Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); - fhDispLam1LowE->SetXTitle("D^{2}"); - fhDispLam1LowE->SetYTitle("#lambda_{1}^{2}"); - outputContainer->Add(fhDispLam1LowE); - - fhDispLam1HighE = new TH2F ("hDispLam1HighE","Dispersion^{2} vs #lambda_{1^{2}} in cluster of E > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); - fhDispLam1HighE->SetXTitle("D^{2}"); - fhDispLam1HighE->SetYTitle("#lambda_{1}^{2}"); - outputContainer->Add(fhDispLam1HighE); - - if(fCalorimeter == "EMCAL") + if(!fFillOnlySimpleSSHisto) { - fhDispEtaE = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhDispEtaE->SetXTitle("E (GeV)"); - fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhDispEtaE); - - fhDispPhiE = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhDispPhiE->SetXTitle("E (GeV)"); - fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhDispPhiE); - - fhSumEtaE = new TH2F ("hSumEtaE","#delta^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhSumEtaE->SetXTitle("E (GeV)"); - fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}"); - outputContainer->Add(fhSumEtaE); - - fhSumPhiE = new TH2F ("hSumPhiE","#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E", - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhSumPhiE->SetXTitle("E (GeV)"); - fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}"); - outputContainer->Add(fhSumPhiE); - - fhSumEtaPhiE = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E", - nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); - fhSumEtaPhiE->SetXTitle("E (GeV)"); - fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}"); - outputContainer->Add(fhSumEtaPhiE); - - fhDispEtaPhiDiffE = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E", - nptbins,ptmin,ptmax,200, -10,10); - fhDispEtaPhiDiffE->SetXTitle("E (GeV)"); - fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhDispEtaPhiDiffE); - - fhSphericityE = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E", - nptbins,ptmin,ptmax, 200, -1,1); - fhSphericityE->SetXTitle("E (GeV)"); - fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); - outputContainer->Add(fhSphericityE); - - fhDispSumEtaDiffE = new TH2F ("hDispSumEtaDiffE","#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01); - fhDispSumEtaDiffE->SetXTitle("E (GeV)"); - fhDispSumEtaDiffE->SetYTitle("#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average"); - outputContainer->Add(fhDispSumEtaDiffE); - - fhDispSumPhiDiffE = new TH2F ("hDispSumPhiDiffE","#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01); - fhDispSumPhiDiffE->SetXTitle("E (GeV)"); - fhDispSumPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average"); - outputContainer->Add(fhDispSumPhiDiffE); - - for(Int_t i = 0; i < 7; i++) + fhNCellsLam0LowE = new TH2F ("hNCellsLam0LowE","N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsLam0LowE->SetXTitle("N_{cells}"); + fhNCellsLam0LowE->SetYTitle("#lambda_{0}^{2}"); + outputContainer->Add(fhNCellsLam0LowE); + + fhNCellsLam0HighE = new TH2F ("hNCellsLam0HighE","N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsLam0HighE->SetXTitle("N_{cells}"); + fhNCellsLam0HighE->SetYTitle("#lambda_{0}^{2}"); + outputContainer->Add(fhNCellsLam0HighE); + + fhNCellsLam1LowE = new TH2F ("hNCellsLam1LowE","N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsLam1LowE->SetXTitle("N_{cells}"); + fhNCellsLam1LowE->SetYTitle("#lambda_{0}^{2}"); + outputContainer->Add(fhNCellsLam1LowE); + + fhNCellsLam1HighE = new TH2F ("hNCellsLam1HighE","N_{cells} in cluster vs #lambda_{1}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsLam1HighE->SetXTitle("N_{cells}"); + fhNCellsLam1HighE->SetYTitle("#lambda_{0}^{2}"); + outputContainer->Add(fhNCellsLam1HighE); + + fhNCellsDispLowE = new TH2F ("hNCellsDispLowE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsDispLowE->SetXTitle("N_{cells}"); + fhNCellsDispLowE->SetYTitle("D^{2}"); + outputContainer->Add(fhNCellsDispLowE); + + fhNCellsDispHighE = new TH2F ("hNCellsDispHighE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); + fhNCellsDispHighE->SetXTitle("N_{cells}"); + fhNCellsDispHighE->SetYTitle("D^{2}"); + outputContainer->Add(fhNCellsDispHighE); + + fhEtaLam0LowE = new TH2F ("hEtaLam0LowE","#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); + fhEtaLam0LowE->SetYTitle("#lambda_{0}^{2}"); + fhEtaLam0LowE->SetXTitle("#eta"); + outputContainer->Add(fhEtaLam0LowE); + + fhPhiLam0LowE = new TH2F ("hPhiLam0LowE","#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); + fhPhiLam0LowE->SetYTitle("#lambda_{0}^{2}"); + fhPhiLam0LowE->SetXTitle("#phi"); + outputContainer->Add(fhPhiLam0LowE); + + fhEtaLam0HighE = new TH2F ("hEtaLam0HighE","#eta vs #lambda_{0}^{2}, E > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); + fhEtaLam0HighE->SetYTitle("#lambda_{0}^{2}"); + fhEtaLam0HighE->SetXTitle("#eta"); + outputContainer->Add(fhEtaLam0HighE); + + fhPhiLam0HighE = new TH2F ("hPhiLam0HighE","#phi vs #lambda_{0}^{2}, E > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); + fhPhiLam0HighE->SetYTitle("#lambda_{0}^{2}"); + fhPhiLam0HighE->SetXTitle("#phi"); + outputContainer->Add(fhPhiLam0HighE); + + fhLam1Lam0LowE = new TH2F ("hLam1Lam0LowE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); + fhLam1Lam0LowE->SetYTitle("#lambda_{0}^{2}"); + fhLam1Lam0LowE->SetXTitle("#lambda_{1}^{2}"); + outputContainer->Add(fhLam1Lam0LowE); + + fhLam1Lam0HighE = new TH2F ("hLam1Lam0HighE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); + fhLam1Lam0HighE->SetYTitle("#lambda_{0}^{2}"); + fhLam1Lam0HighE->SetXTitle("#lambda_{1}^{2}"); + outputContainer->Add(fhLam1Lam0HighE); + + fhLam0DispLowE = new TH2F ("hLam0DispLowE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); + fhLam0DispLowE->SetXTitle("#lambda_{0}^{2}"); + fhLam0DispLowE->SetYTitle("D^{2}"); + outputContainer->Add(fhLam0DispLowE); + + fhLam0DispHighE = new TH2F ("hLam0DispHighE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); + fhLam0DispHighE->SetXTitle("#lambda_{0}^{2}"); + fhLam0DispHighE->SetYTitle("D^{2}"); + outputContainer->Add(fhLam0DispHighE); + + fhDispLam1LowE = new TH2F ("hDispLam1LowE","Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); + fhDispLam1LowE->SetXTitle("D^{2}"); + fhDispLam1LowE->SetYTitle("#lambda_{1}^{2}"); + outputContainer->Add(fhDispLam1LowE); + + fhDispLam1HighE = new TH2F ("hDispLam1HighE","Dispersion^{2} vs #lambda_{1^{2}} in cluster of E > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); + fhDispLam1HighE->SetXTitle("D^{2}"); + fhDispLam1HighE->SetYTitle("#lambda_{1}^{2}"); + outputContainer->Add(fhDispLam1HighE); + + if(fCalorimeter == "EMCAL") { - fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}"); - fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhDispEtaDispPhi[i]); + fhDispEtaE = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhDispEtaE->SetXTitle("E (GeV)"); + fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhDispEtaE); + + fhDispPhiE = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhDispPhiE->SetXTitle("E (GeV)"); + fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhDispPhiE); + + fhSumEtaE = new TH2F ("hSumEtaE","#delta^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhSumEtaE->SetXTitle("E (GeV)"); + fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}"); + outputContainer->Add(fhSumEtaE); + + fhSumPhiE = new TH2F ("hSumPhiE","#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E", + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhSumPhiE->SetXTitle("E (GeV)"); + fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}"); + outputContainer->Add(fhSumPhiE); + + fhSumEtaPhiE = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E", + nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); + fhSumEtaPhiE->SetXTitle("E (GeV)"); + fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}"); + outputContainer->Add(fhSumEtaPhiE); + + fhDispEtaPhiDiffE = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E", + nptbins,ptmin,ptmax,200, -10,10); + fhDispEtaPhiDiffE->SetXTitle("E (GeV)"); + fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhDispEtaPhiDiffE); - fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}"); - fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhLambda0DispEta[i]); + fhSphericityE = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E", + nptbins,ptmin,ptmax, 200, -1,1); + fhSphericityE->SetXTitle("E (GeV)"); + fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); + outputContainer->Add(fhSphericityE); - fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}"); - fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhLambda0DispPhi[i]); + fhDispSumEtaDiffE = new TH2F ("hDispSumEtaDiffE","#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01); + fhDispSumEtaDiffE->SetXTitle("E (GeV)"); + fhDispSumEtaDiffE->SetYTitle("#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average"); + outputContainer->Add(fhDispSumEtaDiffE); + + fhDispSumPhiDiffE = new TH2F ("hDispSumPhiDiffE","#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01); + fhDispSumPhiDiffE->SetXTitle("E (GeV)"); + fhDispSumPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average"); + outputContainer->Add(fhDispSumPhiDiffE); + + for(Int_t i = 0; i < 7; i++) + { + fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}"); + fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhDispEtaDispPhi[i]); + + fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}"); + fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhLambda0DispEta[i]); + + fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}"); + fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhLambda0DispPhi[i]); + } } } } // Shower shape @@ -1501,7 +1509,6 @@ TList * AliAnaPhoton::GetCreateOutputObjects() if(IsDataMC()) { - fhTrackMatchedDEtaMCNoOverlap[0] = new TH2F ("hTrackMatchedDEtaMCNoOverlapNoCut", "d#eta of cluster-track vs cluster energy, no other MC particles overlap", @@ -1818,109 +1825,111 @@ TList * AliAnaPhoton::GetCreateOutputObjects() fhMCMaxCellDiffClusterE[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); outputContainer->Add(fhMCMaxCellDiffClusterE[i]); - fhMCLambda0vsClusterMaxCellDiffE0[i] = new TH2F(Form("hLambda0vsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()), - Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()), - ssbins,ssmin,ssmax,500,0,1.); - fhMCLambda0vsClusterMaxCellDiffE0[i]->SetXTitle("#lambda_{0}^{2}"); - fhMCLambda0vsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); - outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE0[i]) ; - - fhMCLambda0vsClusterMaxCellDiffE2[i] = new TH2F(Form("hLambda0vsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()), - Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()), - ssbins,ssmin,ssmax,500,0,1.); - fhMCLambda0vsClusterMaxCellDiffE2[i]->SetXTitle("#lambda_{0}^{2}"); - fhMCLambda0vsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); - outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE2[i]) ; - - fhMCLambda0vsClusterMaxCellDiffE6[i] = new TH2F(Form("hLambda0vsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()), - Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()), - ssbins,ssmin,ssmax,500,0,1.); - fhMCLambda0vsClusterMaxCellDiffE6[i]->SetXTitle("#lambda_{0}^{2}"); - fhMCLambda0vsClusterMaxCellDiffE6[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); - outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE6[i]) ; - - fhMCNCellsvsClusterMaxCellDiffE0[i] = new TH2F(Form("hNCellsvsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()), - Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()), - nbins/5,nmin,nmax/5,500,0,1.); - fhMCNCellsvsClusterMaxCellDiffE0[i]->SetXTitle("N cells in cluster"); - fhMCNCellsvsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); - outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE0[i]) ; - - fhMCNCellsvsClusterMaxCellDiffE2[i] = new TH2F(Form("hNCellsvsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()), - Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()), - nbins/5,nmin,nmax/5,500,0,1.); - fhMCNCellsvsClusterMaxCellDiffE2[i]->SetXTitle("N cells in cluster"); - fhMCNCellsvsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); - outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE2[i]) ; - - fhMCNCellsvsClusterMaxCellDiffE6[i] = new TH2F(Form("hNCellsvsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()), - Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()), - nbins/5,nmin,nmax/5,500,0,1.); - fhMCNCellsvsClusterMaxCellDiffE6[i]->SetXTitle("N cells in cluster"); - fhMCNCellsvsClusterMaxCellDiffE6[i]->SetYTitle("E (GeV)"); - outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE6[i]) ; - - if(fCalorimeter=="EMCAL") + if(!fFillOnlySimpleSSHisto) { - fhMCEDispEta[i] = new TH2F (Form("hEDispEtaE_MC%s",pnamess[i].Data()), - Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhMCEDispEta[i]->SetXTitle("E (GeV)"); - fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhMCEDispEta[i]); + fhMCLambda0vsClusterMaxCellDiffE0[i] = new TH2F(Form("hLambda0vsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()), + Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()), + ssbins,ssmin,ssmax,500,0,1.); + fhMCLambda0vsClusterMaxCellDiffE0[i]->SetXTitle("#lambda_{0}^{2}"); + fhMCLambda0vsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); + outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE0[i]) ; + + fhMCLambda0vsClusterMaxCellDiffE2[i] = new TH2F(Form("hLambda0vsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()), + Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()), + ssbins,ssmin,ssmax,500,0,1.); + fhMCLambda0vsClusterMaxCellDiffE2[i]->SetXTitle("#lambda_{0}^{2}"); + fhMCLambda0vsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); + outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE2[i]) ; - fhMCEDispPhi[i] = new TH2F (Form("hEDispPhiE_MC%s",pnamess[i].Data()), - Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhMCEDispPhi[i]->SetXTitle("E (GeV)"); - fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCEDispPhi[i]); + fhMCLambda0vsClusterMaxCellDiffE6[i] = new TH2F(Form("hLambda0vsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()), + Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()), + ssbins,ssmin,ssmax,500,0,1.); + fhMCLambda0vsClusterMaxCellDiffE6[i]->SetXTitle("#lambda_{0}^{2}"); + fhMCLambda0vsClusterMaxCellDiffE6[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); + outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE6[i]) ; - fhMCESumEtaPhi[i] = new TH2F (Form("hESumEtaPhiE_MC%s",pnamess[i].Data()), - Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptypess[i].Data()), - nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); - fhMCESumEtaPhi[i]->SetXTitle("E (GeV)"); - fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}"); - outputContainer->Add(fhMCESumEtaPhi[i]); + fhMCNCellsvsClusterMaxCellDiffE0[i] = new TH2F(Form("hNCellsvsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()), + Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()), + nbins/5,nmin,nmax/5,500,0,1.); + fhMCNCellsvsClusterMaxCellDiffE0[i]->SetXTitle("N cells in cluster"); + fhMCNCellsvsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); + outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE0[i]) ; - fhMCEDispEtaPhiDiff[i] = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pnamess[i].Data()), - Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].Data()), - nptbins,ptmin,ptmax,200,-10,10); - fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)"); - fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhMCEDispEtaPhiDiff[i]); + fhMCNCellsvsClusterMaxCellDiffE2[i] = new TH2F(Form("hNCellsvsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()), + Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()), + nbins/5,nmin,nmax/5,500,0,1.); + fhMCNCellsvsClusterMaxCellDiffE2[i]->SetXTitle("N cells in cluster"); + fhMCNCellsvsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}"); + outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE2[i]) ; - fhMCESphericity[i] = new TH2F (Form("hESphericity_MC%s",pnamess[i].Data()), - Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptypess[i].Data()), - nptbins,ptmin,ptmax, 200,-1,1); - fhMCESphericity[i]->SetXTitle("E (GeV)"); - fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); - outputContainer->Add(fhMCESphericity[i]); + fhMCNCellsvsClusterMaxCellDiffE6[i] = new TH2F(Form("hNCellsvsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()), + Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()), + nbins/5,nmin,nmax/5,500,0,1.); + fhMCNCellsvsClusterMaxCellDiffE6[i]->SetXTitle("N cells in cluster"); + fhMCNCellsvsClusterMaxCellDiffE6[i]->SetYTitle("E (GeV)"); + outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE6[i]) ; - for(Int_t ie = 0; ie < 7; ie++) + if(fCalorimeter=="EMCAL") { - fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pnamess[i].Data()), - Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}"); - fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); - - fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pnamess[i].Data()), - Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}"); - fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCLambda0DispEta[ie][i]); - - fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pnamess[i].Data()), - Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}"); - fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCLambda0DispPhi[ie][i]); + fhMCEDispEta[i] = new TH2F (Form("hEDispEtaE_MC%s",pnamess[i].Data()), + Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhMCEDispEta[i]->SetXTitle("E (GeV)"); + fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhMCEDispEta[i]); + + fhMCEDispPhi[i] = new TH2F (Form("hEDispPhiE_MC%s",pnamess[i].Data()), + Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhMCEDispPhi[i]->SetXTitle("E (GeV)"); + fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCEDispPhi[i]); + + fhMCESumEtaPhi[i] = new TH2F (Form("hESumEtaPhiE_MC%s",pnamess[i].Data()), + Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptypess[i].Data()), + nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); + fhMCESumEtaPhi[i]->SetXTitle("E (GeV)"); + fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}"); + outputContainer->Add(fhMCESumEtaPhi[i]); + + fhMCEDispEtaPhiDiff[i] = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pnamess[i].Data()), + Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].Data()), + nptbins,ptmin,ptmax,200,-10,10); + fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)"); + fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhMCEDispEtaPhiDiff[i]); + + fhMCESphericity[i] = new TH2F (Form("hESphericity_MC%s",pnamess[i].Data()), + Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptypess[i].Data()), + nptbins,ptmin,ptmax, 200,-1,1); + fhMCESphericity[i]->SetXTitle("E (GeV)"); + fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); + outputContainer->Add(fhMCESphericity[i]); + + for(Int_t ie = 0; ie < 7; ie++) + { + fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pnamess[i].Data()), + Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}"); + fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); + + fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pnamess[i].Data()), + Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}"); + fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCLambda0DispEta[ie][i]); + + fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pnamess[i].Data()), + Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}"); + fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCLambda0DispPhi[ie][i]); + } } - } }// loop @@ -2454,7 +2463,9 @@ void AliAnaPhoton::MakeAnalysisFillHistograms() fhMCDeltaE[kmcPhoton] ->Fill(ecluster,eprim-ecluster); fhMCDeltaPt[kmcPhoton]->Fill(ptcluster,ptprim-ptcluster); - if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion) && fhMCE[kmcConversion]) + if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion) && + GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) && + fhMCE[kmcConversion]) { fhMCE [kmcConversion] ->Fill(ecluster); fhMCPt [kmcConversion] ->Fill(ptcluster); @@ -2520,8 +2531,9 @@ void AliAnaPhoton::MakeAnalysisFillHistograms() fhMCDeltaPt[kmcPi0Decay]->Fill(ptcluster,ptprim-ptcluster); } - else if( (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) || - GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay) ) && fhMCE[kmcOtherDecay]) + else if((( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) && + !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) ) || + GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay) ) && fhMCE[kmcOtherDecay]) { fhMCE [kmcOtherDecay] ->Fill(ecluster); fhMCPt [kmcOtherDecay] ->Fill(ptcluster); diff --git a/PWGGA/CaloTrackCorrelations/AliAnaPhoton.h b/PWGGA/CaloTrackCorrelations/AliAnaPhoton.h index 34a463efa50..9f9de817d0d 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaPhoton.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaPhoton.h @@ -60,6 +60,9 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass { void SwitchOnFillShowerShapeHistograms() { fFillSSHistograms = kTRUE ; } void SwitchOffFillShowerShapeHistograms() { fFillSSHistograms = kFALSE ; } + void SwitchOnOnlySimpleSSHistoFill() { fFillOnlySimpleSSHisto = kTRUE ; } + void SwitchOffOnlySimpleHistoFill() { fFillOnlySimpleSSHisto = kFALSE ; } + void FillTrackMatchingResidualHistograms(AliVCluster* calo, const Int_t cut); void SwitchOnTMHistoFill() { fFillTMHisto = kTRUE ; } @@ -118,6 +121,7 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass { Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns Int_t fNCellsCut ; // Accept for the analysis clusters with more than fNCellsCut cells Bool_t fFillSSHistograms ; // Fill shower shape histograms + Bool_t fFillOnlySimpleSSHisto; // Fill selected cluster histograms, selected SS histograms Int_t fNOriginHistograms; // Fill only NOriginHistograms of the 14 defined types Int_t fNPrimaryHistograms; // Fill only NPrimaryHistograms of the 7 defined types @@ -270,7 +274,7 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass { AliAnaPhoton( const AliAnaPhoton & g) ; // cpy ctor AliAnaPhoton & operator = (const AliAnaPhoton & g) ; // cpy assignment - ClassDef(AliAnaPhoton,25) + ClassDef(AliAnaPhoton,26) } ; diff --git a/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx b/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx index 34d6f401f18..2105656bbb9 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx +++ b/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx @@ -50,7 +50,8 @@ AliAnaPi0EbE::AliAnaPi0EbE() : AliAnaCaloTrackCorrBaseClass(),fAnaType(kIMCalo), fCalorimeter(""), fMinDist(0.),fMinDist2(0.), fMinDist3(0.), fTimeCutMin(-10000), fTimeCutMax(10000), - fFillWeightHistograms(kFALSE), fFillTMHisto(0), fFillSelectClHisto(0), + fFillWeightHistograms(kFALSE), fFillTMHisto(0), + fFillSelectClHisto(0), fFillOnlySimpleSSHisto(1), fInputAODGammaConvName(""), // Histograms fhPt(0), fhE(0), @@ -196,11 +197,11 @@ void AliAnaPi0EbE::FillSelectedClusterHistograms(AliVCluster* cluster, Float_t ll0 = 0., ll1 = 0.; Float_t dispp= 0., dEta = 0., dPhi = 0.; Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; - if(fCalorimeter == "EMCAL") + if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto) { GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster, ll0, ll1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi); - + fhDispEtaE -> Fill(e,dEta); fhDispPhiE -> Fill(e,dPhi); fhSumEtaE -> Fill(e,sEta); @@ -228,7 +229,8 @@ void AliAnaPi0EbE::FillSelectedClusterHistograms(AliVCluster* cluster, fhELambda0LocMax [indexMax]->Fill(e,l0); fhELambda1LocMax [indexMax]->Fill(e,l1); fhEDispersionLocMax[indexMax]->Fill(e,disp); - if(fCalorimeter=="EMCAL") + + if(fCalorimeter=="EMCAL" && !fFillOnlySimpleSSHisto) { fhEDispEtaLocMax [indexMax]-> Fill(e,dEta); fhEDispPhiLocMax [indexMax]-> Fill(e,dPhi); @@ -327,10 +329,11 @@ void AliAnaPi0EbE::FillSelectedClusterHistograms(AliVCluster* cluster, if(fCalorimeter=="EMCAL" && nSM < 6) fhEMCLambda0NoTRD[mcIndex]->Fill(e, l0 ); + if(maxCellFraction < 0.5) fhEMCLambda0FracMaxCellCut[mcIndex]->Fill(e, l0 ); - if(fCalorimeter == "EMCAL") + if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto) { fhMCEDispEta [mcIndex]-> Fill(e,dEta); fhMCEDispPhi [mcIndex]-> Fill(e,dPhi); @@ -596,66 +599,68 @@ TList * AliAnaPi0EbE::GetCreateOutputObjects() fhEFracMaxCellNoTRD->SetXTitle("E (GeV)"); outputContainer->Add(fhEFracMaxCellNoTRD) ; - - fhDispEtaE = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhDispEtaE->SetXTitle("E (GeV)"); - fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhDispEtaE); - - fhDispPhiE = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhDispPhiE->SetXTitle("E (GeV)"); - fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhDispPhiE); - - fhSumEtaE = new TH2F ("hSumEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhSumEtaE->SetXTitle("E (GeV)"); - fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}"); - outputContainer->Add(fhSumEtaE); - - fhSumPhiE = new TH2F ("hSumPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E", - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhSumPhiE->SetXTitle("E (GeV)"); - fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}"); - outputContainer->Add(fhSumPhiE); - - fhSumEtaPhiE = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E", - nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); - fhSumEtaPhiE->SetXTitle("E (GeV)"); - fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}"); - outputContainer->Add(fhSumEtaPhiE); - - fhDispEtaPhiDiffE = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E", - nptbins,ptmin,ptmax,200, -10,10); - fhDispEtaPhiDiffE->SetXTitle("E (GeV)"); - fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhDispEtaPhiDiffE); - - fhSphericityE = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E", - nptbins,ptmin,ptmax, 200, -1,1); - fhSphericityE->SetXTitle("E (GeV)"); - fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); - outputContainer->Add(fhSphericityE); - - for(Int_t i = 0; i < 7; i++) + if(!fFillOnlySimpleSSHisto) { - fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}"); - fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhDispEtaDispPhi[i]); + fhDispEtaE = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhDispEtaE->SetXTitle("E (GeV)"); + fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhDispEtaE); + + fhDispPhiE = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhDispPhiE->SetXTitle("E (GeV)"); + fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhDispPhiE); + + fhSumEtaE = new TH2F ("hSumEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhSumEtaE->SetXTitle("E (GeV)"); + fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}"); + outputContainer->Add(fhSumEtaE); + + fhSumPhiE = new TH2F ("hSumPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E", + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhSumPhiE->SetXTitle("E (GeV)"); + fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}"); + outputContainer->Add(fhSumPhiE); + + fhSumEtaPhiE = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E", + nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); + fhSumEtaPhiE->SetXTitle("E (GeV)"); + fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}"); + outputContainer->Add(fhSumEtaPhiE); - fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}"); - fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhLambda0DispEta[i]); + fhDispEtaPhiDiffE = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E", + nptbins,ptmin,ptmax,200, -10,10); + fhDispEtaPhiDiffE->SetXTitle("E (GeV)"); + fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhDispEtaPhiDiffE); - fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}"); - fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhLambda0DispPhi[i]); + fhSphericityE = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E", + nptbins,ptmin,ptmax, 200, -1,1); + fhSphericityE->SetXTitle("E (GeV)"); + fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); + outputContainer->Add(fhSphericityE); + for(Int_t i = 0; i < 7; i++) + { + fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}"); + fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhDispEtaDispPhi[i]); + + fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}"); + fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhLambda0DispEta[i]); + + fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}"); + fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhLambda0DispPhi[i]); + + } } } @@ -688,7 +693,7 @@ TList * AliAnaPi0EbE::GetCreateOutputObjects() fhEDispersionLocMax[i]->SetXTitle("E (GeV)"); outputContainer->Add(fhEDispersionLocMax[i]) ; - if(fCalorimeter == "EMCAL") + if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto) { fhEDispEtaLocMax[i] = new TH2F(Form("hEDispEtaLocMax%d",i+1), Form("Selected #pi^{0} (#eta) pairs: E vs #sigma_{#eta #eta}, %s",nlm[i].Data()), @@ -738,7 +743,7 @@ TList * AliAnaPi0EbE::GetCreateOutputObjects() fhETime->SetYTitle("t (ns)"); outputContainer->Add(fhETime); - }// Invariant mass analysis in calorimeters and calorimeter + conversion photons + } if(fAnaType == kIMCalo) { @@ -813,7 +818,7 @@ TList * AliAnaPi0EbE::GetCreateOutputObjects() outputContainer->Add(fhEOverPNoTRD); } - if(IsDataMC()) + if(IsDataMC() && fFillTMHisto) { fhTrackMatchedMCParticle = new TH2F ("hTrackMatchedMCParticle", @@ -837,7 +842,6 @@ TList * AliAnaPi0EbE::GetCreateOutputObjects() if(fFillWeightHistograms) { - fhECellClusterRatio = new TH2F ("hECellClusterRatio"," cell energy / cluster energy vs cluster energy, for selected decay photons from neutral meson", nptbins,ptmin,ptmax, 100,0,1.); fhECellClusterRatio->SetXTitle("E_{cluster} (GeV) "); @@ -1009,66 +1013,68 @@ TList * AliAnaPi0EbE::GetCreateOutputObjects() fhEMCLambda0NoTRD[i]->SetXTitle("E (GeV)"); outputContainer->Add(fhEMCLambda0NoTRD[i]) ; - - fhMCEDispEta[i] = new TH2F (Form("hEDispEtaE_MC%s",pname[i].Data()), - Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptype[i].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhMCEDispEta[i]->SetXTitle("E (GeV)"); - fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhMCEDispEta[i]); - - fhMCEDispPhi[i] = new TH2F (Form("hEDispPhiE_MC%s",pname[i].Data()), - Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptype[i].Data()), - nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); - fhMCEDispPhi[i]->SetXTitle("E (GeV)"); - fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCEDispPhi[i]); - - fhMCESumEtaPhi[i] = new TH2F (Form("hESumEtaPhiE_MC%s",pname[i].Data()), - Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptype[i].Data()), - nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); - fhMCESumEtaPhi[i]->SetXTitle("E (GeV)"); - fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}"); - outputContainer->Add(fhMCESumEtaPhi[i]); - - fhMCEDispEtaPhiDiff[i] = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pname[i].Data()), - Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptype[i].Data()), - nptbins,ptmin,ptmax,200,-10,10); - fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)"); - fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); - outputContainer->Add(fhMCEDispEtaPhiDiff[i]); - - fhMCESphericity[i] = new TH2F (Form("hESphericity_MC%s",pname[i].Data()), - Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptype[i].Data()), - nptbins,ptmin,ptmax, 200,-1,1); - fhMCESphericity[i]->SetXTitle("E (GeV)"); - fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); - outputContainer->Add(fhMCESphericity[i]); - - for(Int_t ie = 0; ie < 7; ie++) + if(!fFillOnlySimpleSSHisto) { - fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pname[i].Data()), - Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}"); - fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); + fhMCEDispEta[i] = new TH2F (Form("hEDispEtaE_MC%s",pname[i].Data()), + Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptype[i].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhMCEDispEta[i]->SetXTitle("E (GeV)"); + fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhMCEDispEta[i]); + + fhMCEDispPhi[i] = new TH2F (Form("hEDispPhiE_MC%s",pname[i].Data()), + Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptype[i].Data()), + nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); + fhMCEDispPhi[i]->SetXTitle("E (GeV)"); + fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCEDispPhi[i]); + + fhMCESumEtaPhi[i] = new TH2F (Form("hESumEtaPhiE_MC%s",pname[i].Data()), + Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptype[i].Data()), + nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); + fhMCESumEtaPhi[i]->SetXTitle("E (GeV)"); + fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}"); + outputContainer->Add(fhMCESumEtaPhi[i]); - fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pname[i].Data()), - Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}"); - fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCLambda0DispEta[ie][i]); + fhMCEDispEtaPhiDiff[i] = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pname[i].Data()), + Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptype[i].Data()), + nptbins,ptmin,ptmax,200,-10,10); + fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)"); + fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}"); + outputContainer->Add(fhMCEDispEtaPhiDiff[i]); - fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pname[i].Data()), - Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), - ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); - fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}"); - fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); - outputContainer->Add(fhMCLambda0DispPhi[ie][i]); + fhMCESphericity[i] = new TH2F (Form("hESphericity_MC%s",pname[i].Data()), + Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptype[i].Data()), + nptbins,ptmin,ptmax, 200,-1,1); + fhMCESphericity[i]->SetXTitle("E (GeV)"); + fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})"); + outputContainer->Add(fhMCESphericity[i]); - } + for(Int_t ie = 0; ie < 7; ie++) + { + fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pname[i].Data()), + Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}"); + fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); + + fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pname[i].Data()), + Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}"); + fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCLambda0DispEta[ie][i]); + + fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pname[i].Data()), + Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), + ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); + fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}"); + fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}"); + outputContainer->Add(fhMCLambda0DispPhi[ie][i]); + + } + } } fhEMCLambda0FracMaxCellCut[i] = new TH2F(Form("hELambda0FracMaxCellCut_MC%s",pname[i].Data()), @@ -1092,7 +1098,7 @@ TList * AliAnaPi0EbE::GetCreateOutputObjects() }//Histos with MC - if(fAnaType==kSSCalo && fFillSelectClHisto ) + if(fAnaType==kSSCalo && fFillSelectClHisto && !fFillOnlySimpleSSHisto ) { fhAsymmetryE = new TH2F ("hAsymmetryE","A = ( E1 - E2 ) / ( E1 + E2 ) vs E", diff --git a/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h b/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h index a7bf28f690b..da10fc8c271 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h @@ -67,31 +67,35 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass { //Analysis types enum anaTypes {kIMCalo, kSSCalo, kIMCaloTracks}; - anaTypes GetAnalysisType() const { return fAnaType ; } - void SetAnalysisType(anaTypes ana) { fAnaType = ana ; } + anaTypes GetAnalysisType() const { return fAnaType ; } + void SetAnalysisType(anaTypes ana) { fAnaType = ana ; } - TString GetInputAODGammaConvName() const { return fInputAODGammaConvName ; } - void SetInputAODGammaConvName(TString name) { fInputAODGammaConvName = name ; } + TString GetInputAODGammaConvName() const { return fInputAODGammaConvName ; } + void SetInputAODGammaConvName(TString name) { fInputAODGammaConvName = name ; } //Only for pi0 SS identification case - void SetCalorimeter(TString & det) { fCalorimeter = det ; } + void SetCalorimeter(TString & det) { fCalorimeter = det ; } void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) { fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3 ; } void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min; - fTimeCutMax = max ; } - Double_t GetTimeCutMin() const { return fTimeCutMin ; } - Double_t GetTimeCutMax() const { return fTimeCutMax ; } + fTimeCutMax = max ; } + Double_t GetTimeCutMin() const { return fTimeCutMin ; } + Double_t GetTimeCutMax() const { return fTimeCutMax ; } + + void SwitchOnFillWeightHistograms() { fFillWeightHistograms = kTRUE ; } + void SwitchOffFillWeightHistograms() { fFillWeightHistograms = kFALSE ; } + + void SwitchOnTMHistoFill() { fFillTMHisto = kTRUE ; } + void SwitchOffTMHistoFill() { fFillTMHisto = kFALSE ; } - void SwitchOnFillWeightHistograms() { fFillWeightHistograms = kTRUE ; } - void SwitchOffFillWeightHistograms() { fFillWeightHistograms = kFALSE ; } + void SwitchOnSelectedClusterHistoFill() { fFillSelectClHisto = kTRUE ; } + void SwitchOffSelectedClusterHistoFill() { fFillSelectClHisto = kFALSE ; } - void SwitchOnTMHistoFill() { fFillTMHisto = kTRUE ; } - void SwitchOffTMHistoFill() { fFillTMHisto = kFALSE ; } + void SwitchOnOnlySimpleSSHistoFill() { fFillOnlySimpleSSHisto = kTRUE ; } + void SwitchOffOnlySimpleHistoFill() { fFillOnlySimpleSSHisto = kFALSE ; } - void SwitchOnSelectedClusterHistoFill() { fFillSelectClHisto = kTRUE ; } - void SwitchOffSelectedClusterHistoFill() { fFillSelectClHisto = kFALSE ; } //For histograms enum mcTypes { kmcPhoton = 0, kmcConversion = 1, kmcPi0 = 2, @@ -112,6 +116,7 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass { Bool_t fFillWeightHistograms ; // Fill weigth histograms Bool_t fFillTMHisto; // Fill track matching plots Bool_t fFillSelectClHisto; // Fill selected cluster histograms + Bool_t fFillOnlySimpleSSHisto; // Fill selected cluster histograms, selected SS histograms //Only for combination of calorimeter and conversion photons, kIMCaloTracks TString fInputAODGammaConvName; // Name of AOD branch with conversion photons @@ -225,7 +230,7 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass { AliAnaPi0EbE( const AliAnaPi0EbE & pi0ebe) ; // cpy ctor AliAnaPi0EbE & operator = (const AliAnaPi0EbE & pi0ebe) ; // cpy assignment - ClassDef(AliAnaPi0EbE,18) + ClassDef(AliAnaPi0EbE,19) } ; -- 2.43.0