From 08f220c8b0cda791859fb0854c89f2d57ec9034e Mon Sep 17 00:00:00 2001 From: gconesab Date: Thu, 28 Jun 2012 13:31:20 +0000 Subject: [PATCH] add histograms to mix event and mc truth, fix UE cone size limits - Nicolas --- .../AliAnaParticleHadronCorrelation.cxx | 95 +++++++++++++++---- .../AliAnaParticleHadronCorrelation.h | 6 +- 2 files changed, 83 insertions(+), 18 deletions(-) diff --git a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx index 7576fe53149..304fb66453d 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx +++ b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx @@ -123,6 +123,7 @@ ClassImp(AliAnaParticleHadronCorrelation) fhDeltaPhiDecayChargedAssocPtBin(0), fhXEDecayChargedAssocPtBin(0), fhZTDecayChargedAssocPtBin(0), fh2phiLeadingParticle(0x0), fhMCPtLeading(0), + fhMCPhiLeading(0), fhMCEtaLeading(0), fhMCEtaCharged(0), fhMCPhiCharged(0), fhMCDeltaEtaCharged(0), fhMCDeltaPhiCharged(0x0), fhMCDeltaPhiDeltaEtaCharged(0), fhMCDeltaPhiChargedPt(0), @@ -136,6 +137,7 @@ ClassImp(AliAnaParticleHadronCorrelation) fhNtracksAll(0), fhNtracksTrigger(0), fhNtracksMB(0), fhMixDeltaPhiCharged(0), fhMixDeltaPhiDeltaEtaCharged(0), + fhMixXECharged(0), fhMixHbpXECharged(0), fhMixDeltaPhiChargedAssocPtBin(), fhMixDeltaPhiChargedAssocPtBinDEta08(), fhMixDeltaPhiDeltaEtaChargedAssocPtBin(), @@ -426,7 +428,7 @@ void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventHistograms(const fhDeltaPhiUeChargedPt->Fill(ptAssoc,deltaPhi); - Double_t randomphi = gRandom->Uniform(TMath::Pi()/2,3*TMath::Pi()/2); + Double_t randomphi = gRandom->Uniform(fDeltaPhiMinCut,fDeltaPhiMaxCut); Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi); Double_t uezT = ptAssoc/ptTrig; @@ -457,24 +459,39 @@ void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventSidesHistograms( const Float_t zT, const Float_t hbpZT, const Float_t deltaPhi) { - // Fill underlying event histograms to the left and right of trigger - - if((deltaPhi<-fUeDeltaPhiMinCut) && (deltaPhi >-fUeDeltaPhiMaxCut)) + // Fill underlying event histograms to the left and right of trigger + if((deltaPhi<-fUeDeltaPhiMinCut) || (deltaPhi >2*fUeDeltaPhiMaxCut)) { + fhDeltaPhiUeLeftCharged->Fill(ptAssoc,deltaPhi); + Double_t randomphi = gRandom->Uniform(fDeltaPhiMinCut,fDeltaPhiMaxCut); + Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi); + Double_t uezT = ptAssoc/ptTrig; + + if(uexE < 0.) uexE = -uexE; + + fhXEUeLeftCharged->Fill(ptTrig,uexE); + if(uexE > 0) fhPtHbpXEUeLeftCharged->Fill(ptTrig,TMath::Log(1/uexE)); + + fhZTUeLeftCharged->Fill(ptTrig,uezT); + if(uexE > 0) fhPtHbpZTUeLeftCharged->Fill(ptTrig,TMath::Log(1/uezT)); fhDeltaPhiUeLeftCharged->Fill(ptAssoc, deltaPhi); - fhXEUeLeftCharged ->Fill(ptTrig , xE); - fhPtHbpXEUeLeftCharged ->Fill(ptTrig , hbpXE); - fhZTUeLeftCharged ->Fill(ptTrig , zT); - fhPtHbpZTUeLeftCharged ->Fill(ptTrig , hbpZT); } if((deltaPhi > fUeDeltaPhiMinCut) && (deltaPhi < fUeDeltaPhiMaxCut)) { + fhDeltaPhiUeRightCharged->Fill(ptAssoc,deltaPhi); + Double_t randomphi = gRandom->Uniform(fDeltaPhiMinCut,fDeltaPhiMaxCut); + Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi); + Double_t uezT = ptAssoc/ptTrig; + + if(uexE < 0.) uexE = -uexE; + + fhXEUeRightCharged->Fill(ptTrig,uexE); + if(uexE > 0) fhPtHbpXEUeRightCharged->Fill(ptTrig,TMath::Log(1/uexE)); + + fhZTUeRightCharged->Fill(ptTrig,uezT); + if(uexE > 0) fhPtHbpZTUeRightCharged->Fill(ptTrig,TMath::Log(1/uezT)); fhDeltaPhiUeRightCharged->Fill(ptAssoc, deltaPhi); - fhXEUeRightCharged ->Fill(ptTrig , xE); - fhPtHbpXEUeRightCharged ->Fill(ptTrig , hbpXE); - fhZTUeRightCharged ->Fill(ptTrig , zT); - fhPtHbpZTUeRightCharged ->Fill(ptTrig , hbpZT); } } @@ -1539,6 +1556,13 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() 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); + fhMCPhiLeading->SetYTitle("#phi (rad)"); + + fhMCEtaLeading = new TH2F ("hMCEtaLeading","MC : #eta distribution of leading",nptbins,ptmin,ptmax, netabins,etamin,etamax); + fhMCEtaLeading->SetYTitle("#eta "); + fhMCEtaCharged = new TH2F ("hMCEtaCharged","MC #eta_{h^{#pm}} vs p_{T #pm}", @@ -1632,6 +1656,8 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() outputContainer->Add(fh2phiLeadingParticle); outputContainer->Add(fhMCPtLeading); + outputContainer->Add(fhMCPhiLeading); + outputContainer->Add(fhMCEtaLeading); outputContainer->Add(fhMCDeltaPhiDeltaEtaCharged); outputContainer->Add(fhMCPhiCharged) ; outputContainer->Add(fhMCEtaCharged) ; @@ -1770,6 +1796,20 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() fhMixDeltaPhiDeltaEtaCharged->SetYTitle("#Delta #eta"); outputContainer->Add(fhMixDeltaPhiDeltaEtaCharged); + fhMixXECharged = + new TH2F("hMixXECharged","Mixed event : x_{E} for charged tracks", + nptbins,ptmin,ptmax,200,0.,2.); + fhMixXECharged->SetYTitle("x_{E}"); + fhMixXECharged->SetXTitle("p_{T trigger}"); + outputContainer->Add(fhMixXECharged); + + fhMixHbpXECharged = + new TH2F("hMixHbpXECharged","mixed event : #xi = ln(1/x_{E}) with charged hadrons", + nptbins,ptmin,ptmax,200,0.,10.); + fhMixHbpXECharged->SetYTitle("ln(1/x_{E})"); + fhMixHbpXECharged->SetXTitle("p_{T trigger}"); + outputContainer->Add(fhMixHbpXECharged); + fhMixDeltaPhiChargedAssocPtBin = new TH2F*[fNAssocPtBins] ; fhMixDeltaPhiChargedAssocPtBinDEta08 = new TH2F*[fNAssocPtBins] ; fhMixDeltaPhiDeltaEtaChargedAssocPtBin = new TH2F*[fNAssocPtBins] ; @@ -2366,7 +2406,9 @@ void AliAnaParticleHadronCorrelation::MakeChargedMixCorrelation(AliAODPWG4Partic Double_t etaAssoc = -999.; Double_t deltaPhi = -999.; Double_t deltaEta = -999.; - + Double_t xE = -999.; + Double_t hbpXE = -999.; + //Start from first event in pool except if in this same event the pool was filled Int_t ev0 = 0; if(GetReader()->GetLastTracksMixedEvent() == GetEventNumber()) ev0 = 1; @@ -2478,6 +2520,20 @@ void AliAnaParticleHadronCorrelation::MakeChargedMixCorrelation(AliAODPWG4Partic fhMixDeltaPhiCharged ->Fill(ptTrig, deltaPhi); fhMixDeltaPhiDeltaEtaCharged->Fill(deltaPhi, deltaEta); + fhMixDeltaPhiCharged ->Fill(ptTrig, deltaPhi); + fhMixDeltaPhiDeltaEtaCharged->Fill(deltaPhi, deltaEta); + + xE =-ptAssoc/ptTrig*TMath::Cos(deltaPhi); // -(px*pxTrig+py*pyTrig)/(ptTrig*ptTrig); + //if(xE <0.)xE =-xE; + if(xE > 0 ) hbpXE = TMath::Log(1./xE); + else hbpXE =-100; + + if ( (deltaPhi > fDeltaPhiMinCut) && (deltaPhi < fDeltaPhiMaxCut) ) + { + fhMixXECharged->Fill(ptTrig,xE); + fhMixHbpXECharged->Fill(ptTrig,hbpXE); + } + if(assocBin < 0) continue ; // this pt bin was not considered if(TMath::Abs(deltaEta) > 0.8) @@ -2700,7 +2756,7 @@ void AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(AliAODPWG4Partic etaprim = primary->Eta(); if(ptprim < 0.01 || eprim < 0.01) return ; - + for (iParticle = 0 ; iParticle < nTracks ; iParticle++) { TParticle * particle = stack->Particle(iParticle); @@ -2713,7 +2769,7 @@ void AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(AliAODPWG4Partic charge = TDatabasePDG::Instance()->GetParticle(pdg)->Charge(); - particle->Momentum(momentum); + particle->Momentum(momentum); //---------- Charged particles ---------------------- if(charge != 0) @@ -2797,8 +2853,13 @@ void AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(AliAODPWG4Partic } // in acceptance } // min pt cut } //only charged particles - } //MC particle loop - if (lead) fhMCPtLeading->Fill(ptprim); + } //MC particle loop + if (lead) + { + fhMCPtLeading->Fill(ptprim); + fhMCPhiLeading->Fill(ptprim); + fhMCEtaLeading->Fill(ptprim); + } } //when the leading particles could trace back to MC }// AOD MC } diff --git a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h index cf9ffc6aaa0..f4f40efa375 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h @@ -323,6 +323,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { //if the data is MC, fill MC information TH2F * fh2phiLeadingParticle; //! #phi resolution for triggers TH1F * fhMCPtLeading; //! MC pure pT distribution of leading particles + TH2F * fhMCPhiLeading; //! MC pure Phi distribution of leading particles + TH2F * fhMCEtaLeading; //! MC pure Eta distribution of leading particles TH2F * fhMCEtaCharged; //! MC pure particles charged primary pt vs eta (both associated) TH2F * fhMCPhiCharged; //! MC pure particles charged primary pt vs phi (both associated) TH2F * fhMCDeltaEtaCharged; //! MC pure particles charged trigger primary pt vs delta eta (associated-trigger) @@ -346,6 +348,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { TH1F * fhNtracksMB; //! total number of tracks in MB events TH2F * fhMixDeltaPhiCharged ; //! Difference of charged particle phi and trigger particle phi as function of trigger particle pT TH2F * fhMixDeltaPhiDeltaEtaCharged ; //! Difference of charged particle phi and trigger particle phi as function eta difference + TH2F * fhMixXECharged; //! xE for mixed event + TH2F * fhMixHbpXECharged; //! ln(1/xE) for mixed event TH2F ** fhMixDeltaPhiChargedAssocPtBin; //![fNAssocPtBins] Difference of charged particle phi and trigger particle phi as function of trigger particle pT, for different associated bins TH2F ** fhMixDeltaPhiChargedAssocPtBinDEta08; //![fNAssocPtBins] Difference of charged particle phi and trigger particle phi as function of trigger particle pT, for different associated bins, delta eta > 0.8 TH2F ** fhMixDeltaPhiDeltaEtaChargedAssocPtBin; //![fNAssocPtBins] Difference of charged particle phi and trigger particle phi as function eta difference, for different associated bins @@ -356,7 +360,7 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { AliAnaParticleHadronCorrelation( const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ; // cpy assignment - ClassDef(AliAnaParticleHadronCorrelation,20) + ClassDef(AliAnaParticleHadronCorrelation,21) } ; -- 2.43.0