From 53f2c382f1c73207f032bd48d43f548c42660aaf Mon Sep 17 00:00:00 2001 From: gconesab Date: Sun, 7 Oct 2012 10:46:59 +0000 Subject: [PATCH] Add histogram NLM vs fraction E gen /reco, other fixes --- .../AliAnaInsideClusterInvariantMass.cxx | 52 ++++++++++++++++--- .../AliAnaInsideClusterInvariantMass.h | 3 ++ 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx b/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx index be8dc82bbfa..142de495d2f 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx +++ b/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx @@ -107,13 +107,16 @@ AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() : for(Int_t jj = 0; jj < 4; jj++) { - fhM02MCGenFracNLocMax1Ebin[i][jj]= 0; - fhM02MCGenFracNLocMax2Ebin[i][jj]= 0; - fhM02MCGenFracNLocMaxNEbin[i][jj]= 0; + fhM02MCGenFracNLocMax1Ebin[i][jj] = 0; + fhM02MCGenFracNLocMax2Ebin[i][jj] = 0; + fhM02MCGenFracNLocMaxNEbin[i][jj] = 0; fhMassMCGenFracNLocMax1Ebin[i][jj]= 0; fhMassMCGenFracNLocMax2Ebin[i][jj]= 0; fhMassMCGenFracNLocMaxNEbin[i][jj]= 0; + + fhMCGenFracNLocMaxEbin[i][jj] = 0; + fhMCGenFracNLocMaxEbinMatched[i][jj]= 0; } fhTrackMatchedDEtaLocMax1[i] = 0; @@ -394,6 +397,7 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects() fhMCGenFracNLocMaxN[i][j] ->SetYTitle("E_{reco} / E_{gen}"); fhMCGenFracNLocMaxN[i][j] ->SetXTitle("E (GeV)"); outputContainer->Add(fhMCGenFracNLocMaxN[i][j]) ; + } if(fFillSSExtraHisto) @@ -499,6 +503,21 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects() { for(Int_t j = 0; j < 4; j++) { + + fhMCGenFracNLocMaxEbin[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%d",pname[i].Data(),j), + Form("NLM vs E, %s, E bin %d",ptype[i].Data(),j), + 200,0,2,nMaxBins,0,nMaxBins); + fhMCGenFracNLocMaxEbin[i][j]->SetYTitle("NLM"); + fhMCGenFracNLocMaxEbin[i][j]->SetXTitle("E_{reco} / E_{gen}"); + outputContainer->Add(fhMCGenFracNLocMaxEbin[i][j]) ; + + fhMCGenFracNLocMaxEbinMatched[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%dMatched",pname[i].Data(),j), + Form("NLM vs E, %s, E bin %d, matched to a track",ptype[i].Data(),j), + 200,0,2,nMaxBins,0,nMaxBins); + fhMCGenFracNLocMaxEbinMatched[i][j]->SetYTitle("NLM"); + fhMCGenFracNLocMaxEbinMatched[i][j]->SetXTitle("E_{reco} / E_{gen}"); + outputContainer->Add(fhMCGenFracNLocMaxEbinMatched[i][j]) ; + fhMassMCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax1%sEbin%d",pname[i].Data(),j), Form("Invariant mass of 2 highest energy cells vs E, %s, E bin %d",ptype[i].Data(),j), 200,0,2,mbins,mmin,mmax); @@ -914,6 +933,7 @@ void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() Int_t mcindex = -1; Float_t eprim = 0; Float_t asymGen = -2; + Int_t mcLabel = cluster->GetLabel(); if(IsDataMC()) { Int_t tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader(), 0); @@ -941,13 +961,23 @@ void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() } Bool_t ok = kFALSE; - TLorentzVector primary = GetMCAnalysisUtils()->GetMother(cluster->GetLabel(),GetReader(),ok); + TLorentzVector primary = GetMCAnalysisUtils()->GetMother(mcLabel,GetReader(),ok); eprim = primary.E(); if(mcindex == kmcPi0 || mcindex == kmcEta) { - if(mcindex == kmcPi0) asymGen = TMath::Abs(GetMCAnalysisUtils()->GetMCDecayAsymmetryForPDG(cluster->GetLabel(),111,GetReader(),ok)); - else asymGen = TMath::Abs(GetMCAnalysisUtils()->GetMCDecayAsymmetryForPDG(cluster->GetLabel(),221,GetReader(),ok)); + if(mcindex == kmcPi0) + { + asymGen = TMath::Abs(GetMCAnalysisUtils()->GetMCDecayAsymmetryForPDG(mcLabel,111,GetReader(),ok)); + TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,111,GetReader(),ok); + if(grandmom.E() > 0 && ok) eprim = grandmom.E(); + } + else + { + asymGen = TMath::Abs(GetMCAnalysisUtils()->GetMCDecayAsymmetryForPDG(mcLabel,221,GetReader(),ok)); + TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,221,GetReader(),ok); + if(grandmom.E() > 0 && ok) eprim = grandmom.E(); + } } } @@ -960,6 +990,12 @@ void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() if(en > 16 && en <= 20) ebin = 2; if(en > 20) ebin = 3; + if(ebin >= 0 && IsDataMC()) + { + if( !matched ) fhMCGenFracNLocMaxEbin [mcindex][ebin]->Fill(efrac,nMax); + else fhMCGenFracNLocMaxEbinMatched[mcindex][ebin]->Fill(efrac,nMax); + } + if (nMax==1) { if( en > 7 ) @@ -1064,8 +1100,8 @@ void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() fhMCGenFracNLocMaxN [mcindex][matched]->Fill(en , efrac ); if(!matched && ebin >= 0) { - fhM02MCGenFracNLocMax1Ebin [mcindex][ebin]->Fill(efrac , l0 ); - fhMassMCGenFracNLocMax1Ebin[mcindex][ebin]->Fill(efrac , mass ); + fhM02MCGenFracNLocMaxNEbin [mcindex][ebin]->Fill(efrac , l0 ); + fhMassMCGenFracNLocMaxNEbin[mcindex][ebin]->Fill(efrac , mass ); fhMCAsymM02NLocMaxNMCPi0Ebin [ebin]->Fill(l0 , asymGen); } if(fFillSSExtraHisto) diff --git a/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h b/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h index ee6209203f9..cecb5eefd66 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h @@ -128,6 +128,9 @@ class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass { TH2F * fhMCGenFracNLocMax2[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types TH2F * fhMCGenFracNLocMaxN[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types + TH2F * fhMCGenFracNLocMaxEbin[7][4] ; //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, not matched to track + TH2F * fhMCGenFracNLocMaxEbinMatched[7][4] ; //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, matched to track + TH2F * fhM02MCGenFracNLocMax1Ebin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched TH2F * fhM02MCGenFracNLocMax2Ebin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched TH2F * fhM02MCGenFracNLocMaxNEbin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched -- 2.39.3