X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGGA%2FCaloTrackCorrelations%2FAliAnaParticleHadronCorrelation.cxx;h=6d8a10d9765364aab1b1075cb064da68cc7cb6e2;hb=3186446893765b9c06d29cd13f6ddb2dfa9d0cc3;hp=d50a4a59452158ef13cdbb9413aee2e1cc359987;hpb=560498d1cc9a6aa35776233ad9982f9bf09e8034;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx index d50a4a59452..6d8a10d9765 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx +++ b/PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx @@ -109,6 +109,10 @@ ClassImp(AliAnaParticleHadronCorrelation) fhXEChargedOtherBC(), fhXEUeChargedOtherBC(), fhZTChargedOtherBC(), fhZTUeChargedOtherBC(), fhPtTrigChargedOtherBC(), + fhDeltaPhiChargedBC0(), fhDeltaPhiChargedPtA3GeVBC0(), + fhXEChargedBC0(), fhXEUeChargedBC0(), + fhZTChargedBC0(), fhZTUeChargedBC0(), + fhPtTrigChargedBC0(), fhDeltaPhiUeLeftCharged(0), fhDeltaPhiUeRightCharged(0), fhDeltaPhiUeLeftUpCharged(0), fhDeltaPhiUeRightUpCharged(0), fhDeltaPhiUeLeftDownCharged(0), fhDeltaPhiUeRightDownCharged(0), @@ -157,11 +161,9 @@ ClassImp(AliAnaParticleHadronCorrelation) fhMCPtZTCharged(0), fhMCPtHbpZTCharged(0), fhMCPtTrigPout(0), fhMCPtAssocDeltaPhi(0), //Mixing - fhNEventsTrigger(0), - fhNtracksAll(0), fhNtracksTrigger(0), fhNtracksMB(0), - fhNclustersAll(0), fhNclustersTrigger(0), fhNclustersMB(0), + fhNEventsTrigger(0), fhNtracksMB(0), fhNclustersMB(0), fhMixDeltaPhiCharged(0), fhMixDeltaPhiDeltaEtaCharged(0), - fhMixXECharged(0), fhMixHbpXECharged(0), + fhMixXECharged(0), fhMixXEUeCharged(0), fhMixHbpXECharged(0), fhMixDeltaPhiChargedAssocPtBin(), fhMixDeltaPhiChargedAssocPtBinDEta08(), fhMixDeltaPhiChargedAssocPtBinDEta0(), @@ -239,11 +241,11 @@ AliAnaParticleHadronCorrelation::~AliAnaParticleHadronCorrelation() } //______________________________________________________________________________________________________________________________________________________ -void AliAnaParticleHadronCorrelation::FillChargedAngularCorrelationHistograms(const Float_t ptAssoc, const Float_t ptTrig, const Int_t bin, - const Float_t phiAssoc, const Float_t phiTrig, Float_t & deltaPhi, - const Float_t etaAssoc, const Float_t etaTrig, - const Bool_t decay, const Float_t hmpidSignal, const Bool_t outTOF, - const Int_t nTracks, const Int_t mcTag) +void AliAnaParticleHadronCorrelation::FillChargedAngularCorrelationHistograms(Float_t ptAssoc, Float_t ptTrig, Int_t bin, + Float_t phiAssoc, Float_t phiTrig, Float_t & deltaPhi, + Float_t etaAssoc, Float_t etaTrig, + Bool_t decay, Float_t hmpidSignal, Int_t outTOF, + Int_t nTracks, Int_t mcTag) { // Fill angular correlation related histograms @@ -272,11 +274,16 @@ void AliAnaParticleHadronCorrelation::FillChargedAngularCorrelationHistograms(co if(fFillPileUpHistograms) { - if(outTOF) + if (outTOF==1) { fhDeltaPhiChargedOtherBC->Fill(ptTrig ,deltaPhi) ; if(ptAssoc > 3 ) fhDeltaPhiChargedPtA3GeVOtherBC->Fill(ptTrig ,deltaPhi) ; } + else if(outTOF==0) + { + fhDeltaPhiChargedBC0->Fill(ptTrig ,deltaPhi) ; + if(ptAssoc > 3 ) fhDeltaPhiChargedPtA3GeVBC0->Fill(ptTrig ,deltaPhi) ; + } if(GetReader()->IsPileUpFromSPD()) { fhDeltaEtaChargedPileUp[0]->Fill(ptTrig ,deltaEta) ; fhDeltaPhiChargedPileUp[0]->Fill(ptTrig ,deltaPhi) ; } if(GetReader()->IsPileUpFromEMCal()) { fhDeltaEtaChargedPileUp[1]->Fill(ptTrig ,deltaEta) ; fhDeltaPhiChargedPileUp[1]->Fill(ptTrig ,deltaPhi) ; } @@ -371,8 +378,8 @@ void AliAnaParticleHadronCorrelation::FillChargedAngularCorrelationHistograms(co } //____________________________________________________________________________________________________________________________________________________ -Bool_t AliAnaParticleHadronCorrelation::FillChargedMCCorrelationHistograms(const Float_t mcAssocPt, Float_t mcAssocPhi, const Float_t mcAssocEta, - const Float_t mcTrigPt, const Float_t mcTrigPhi, const Float_t mcTrigEta) +Bool_t AliAnaParticleHadronCorrelation::FillChargedMCCorrelationHistograms(Float_t mcAssocPt, Float_t mcAssocPhi, Float_t mcAssocEta, + Float_t mcTrigPt, Float_t mcTrigPhi, Float_t mcTrigEta) { // Fill MC histograms independently of AOD or ESD @@ -453,13 +460,13 @@ Bool_t AliAnaParticleHadronCorrelation::FillChargedMCCorrelationHistograms(const } //___________________________________________________________________________________________________________________ -void AliAnaParticleHadronCorrelation::FillChargedMomentumImbalanceHistograms(const Float_t ptTrig, const Float_t ptAssoc, - const Float_t xE, const Float_t hbpXE, - const Float_t zT, const Float_t hbpZT, - const Float_t pout, - const Int_t nTracks, const Int_t charge, - const Int_t bin, const Bool_t decay, - const Bool_t outTOF, const Int_t mcTag) +void AliAnaParticleHadronCorrelation::FillChargedMomentumImbalanceHistograms(Float_t ptTrig, Float_t ptAssoc, + Float_t xE, Float_t hbpXE, + Float_t zT, Float_t hbpZT, + Float_t pout, + Int_t nTracks, Int_t charge, + Int_t bin, Bool_t decay, + Int_t outTOF, Int_t mcTag) { // Fill mostly momentum imbalance related histograms @@ -474,13 +481,19 @@ void AliAnaParticleHadronCorrelation::FillChargedMomentumImbalanceHistograms(con // Pile up studies if(fFillPileUpHistograms) { - if(outTOF) + if (outTOF==1) { fhXEChargedOtherBC ->Fill(ptTrig,xE); fhZTChargedOtherBC ->Fill(ptTrig,zT); fhPtTrigChargedOtherBC->Fill(ptTrig,ptAssoc); } - + else if(outTOF==0) + { + fhXEChargedBC0 ->Fill(ptTrig,xE); + fhZTChargedBC0 ->Fill(ptTrig,zT); + fhPtTrigChargedBC0->Fill(ptTrig,ptAssoc); + } + if(GetReader()->IsPileUpFromSPD()) { fhXEChargedPileUp[0]->Fill(ptTrig,xE); fhZTChargedPileUp[0]->Fill(ptTrig,zT); fhPtTrigChargedPileUp[0]->Fill(ptTrig,ptAssoc); } if(GetReader()->IsPileUpFromEMCal()) { fhXEChargedPileUp[1]->Fill(ptTrig,xE); fhZTChargedPileUp[1]->Fill(ptTrig,zT); fhPtTrigChargedPileUp[1]->Fill(ptTrig,ptAssoc); } if(GetReader()->IsPileUpFromSPDOrEMCal()) { fhXEChargedPileUp[2]->Fill(ptTrig,xE); fhZTChargedPileUp[2]->Fill(ptTrig,zT); fhPtTrigChargedPileUp[2]->Fill(ptTrig,ptAssoc); } @@ -540,8 +553,8 @@ void AliAnaParticleHadronCorrelation::FillChargedMomentumImbalanceHistograms(con } //_______________________________________________________________________________________________________________________ -void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventHistograms(const Float_t ptTrig, const Float_t ptAssoc, - const Float_t deltaPhi, const Int_t nTracks, const Bool_t outTOF) +void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventHistograms(Float_t ptTrig, Float_t ptAssoc, + Float_t deltaPhi, Int_t nTracks, Int_t outTOF) { // Fill underlying event histograms @@ -563,11 +576,16 @@ void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventHistograms(const if(fFillPileUpHistograms) { - if(outTOF) + if (outTOF==1) { fhXEUeChargedOtherBC->Fill(ptTrig,uexE); fhZTUeChargedOtherBC->Fill(ptTrig,uezT); } + else if(outTOF==0) + { + fhXEUeChargedBC0->Fill(ptTrig,uexE); + fhZTUeChargedBC0->Fill(ptTrig,uezT); + } if(GetReader()->IsPileUpFromSPD()) { fhXEUeChargedPileUp[0]->Fill(ptTrig,uexE); fhZTUeChargedPileUp[0]->Fill(ptTrig,uezT);} if(GetReader()->IsPileUpFromEMCal()) { fhXEUeChargedPileUp[1]->Fill(ptTrig,uexE); fhZTUeChargedPileUp[1]->Fill(ptTrig,uezT);} @@ -592,9 +610,9 @@ void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventHistograms(const } //_____________________________________________________________________________________________________ -void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventSidesHistograms(const Float_t ptTrig, - const Float_t ptAssoc, - const Float_t deltaPhi) +void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventSidesHistograms(Float_t ptTrig, + Float_t ptAssoc, + Float_t deltaPhi) { // Fill underlying event histograms to the left and right of trigger if((deltaPhi<-fUeDeltaPhiMinCut) || (deltaPhi >2*fUeDeltaPhiMaxCut)) @@ -677,9 +695,9 @@ void AliAnaParticleHadronCorrelation::FillChargedUnderlyingEventSidesHistograms( } //______________________________________________________________________________________________________________________________ -void AliAnaParticleHadronCorrelation::FillDecayPhotonCorrelationHistograms(const Float_t ptAssoc, const Float_t phiAssoc, - const TLorentzVector mom1, const TLorentzVector mom2, - const Bool_t bChargedOrNeutral) +void AliAnaParticleHadronCorrelation::FillDecayPhotonCorrelationHistograms(Float_t ptAssoc, Float_t phiAssoc, + TLorentzVector mom1, TLorentzVector mom2, + Bool_t bChargedOrNeutral) { // Do correlation with decay photons of triggered pi0 or eta @@ -741,9 +759,9 @@ void AliAnaParticleHadronCorrelation::FillDecayPhotonCorrelationHistograms(const } //______________________________________________________________________________________________________________________________________________________ -void AliAnaParticleHadronCorrelation::FillNeutralAngularCorrelationHistograms(const Float_t ptAssoc, const Float_t ptTrig, - const Float_t phiAssoc, const Float_t phiTrig, Float_t & deltaPhi, - const Float_t etaAssoc, const Float_t etaTrig) +void AliAnaParticleHadronCorrelation::FillNeutralAngularCorrelationHistograms(Float_t ptAssoc, Float_t ptTrig, + Float_t phiAssoc, Float_t phiTrig, Float_t & deltaPhi, + Float_t etaAssoc, Float_t etaTrig) { // Fill angular correlation related histograms @@ -763,10 +781,10 @@ void AliAnaParticleHadronCorrelation::FillNeutralAngularCorrelationHistograms(co } //_____________________________________________________________________________________________________________________________ -void AliAnaParticleHadronCorrelation::FillNeutralUnderlyingEventSidesHistograms(const Float_t ptTrig, const Float_t ptAssoc, - const Float_t xE, const Float_t hbpXE, - const Float_t zT, const Float_t hbpZT, - const Float_t deltaPhi) +void AliAnaParticleHadronCorrelation::FillNeutralUnderlyingEventSidesHistograms(Float_t ptTrig, Float_t ptAssoc, + Float_t xE, Float_t hbpXE, + Float_t zT, Float_t hbpZT, + Float_t deltaPhi) { // Fill underlying event histograms to the left and right of trigger @@ -789,13 +807,26 @@ void AliAnaParticleHadronCorrelation::FillNeutralUnderlyingEventSidesHistograms( } } +//______________________________________________________ +void AliAnaParticleHadronCorrelation::FillEventMixPool() +{ + // Fill the pool with tracks if requested + + if(DoOwnMix()) + { + FillChargedEventMixPool(); + + if(OnlyIsolated() || fFillNeutralEventMixPool) + FillNeutralEventMixPool(); + } + +} + //_____________________________________________________________ void AliAnaParticleHadronCorrelation::FillChargedEventMixPool() { // Mixed event pool filling for tracks - - //printf("FillChargedEventMixPool for %s\n",GetInputAODName().Data()); - + if(fUseMixStoredInReader && GetReader()->GetLastTracksMixedEvent() == GetEventNumber()) { //printf("%s : Pool already filled for this event !!!\n",GetInputAODName().Data()); @@ -803,19 +834,12 @@ void AliAnaParticleHadronCorrelation::FillChargedEventMixPool() } Int_t nTracks = GetCTSTracks()->GetEntriesFast(); - - fhNtracksAll->Fill(nTracks); - + AliAnalysisManager * manager = AliAnalysisManager::GetAnalysisManager(); AliInputEventHandler * inputHandler = dynamic_cast(manager->GetInputEventHandler()); if(!inputHandler) return ; - - if( inputHandler->IsEventSelected( ) & GetReader()->GetEventTriggerMask() ) - { - fhNtracksTrigger->Fill(nTracks); - } - + // Do mixing only with MB event (or the chosen mask), if not skip if( !(inputHandler->IsEventSelected( ) & GetReader()->GetMixEventTriggerMask()) ) return ; @@ -887,7 +911,6 @@ void AliAnaParticleHadronCorrelation::FillNeutralEventMixPool() //else pl = GetEMCALClusters(); Int_t nClusters = pl->GetEntriesFast(); - fhNclustersAll->Fill(nClusters); if(fUseMixStoredInReader && GetReader()->GetLastCaloMixedEvent() == GetEventNumber()) { @@ -899,12 +922,7 @@ void AliAnaParticleHadronCorrelation::FillNeutralEventMixPool() AliInputEventHandler * inputHandler = dynamic_cast(manager->GetInputEventHandler()); if(!inputHandler) return ; - - if( inputHandler->IsEventSelected( ) & GetReader()->GetEventTriggerMask() ) - { - fhNclustersTrigger->Fill(nClusters); - } - + // Do mixing only with MB event (or the chosen mask), if not skip if( !(inputHandler->IsEventSelected( ) & GetReader()->GetMixEventTriggerMask()) ) return ; @@ -1360,6 +1378,57 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() outputContainer->Add(fhZTUeChargedOtherBC) ; outputContainer->Add(fhPtTrigChargedOtherBC) ; + fhDeltaPhiChargedBC0 = new TH2F + ("hDeltaPhiChargedBC0","#phi_{trigger} - #phi_{h^{#pm}} vs p_{T trigger}, track BC==0", + nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax); + fhDeltaPhiChargedBC0->SetYTitle("#Delta #phi (rad)"); + fhDeltaPhiChargedBC0->SetXTitle("p_{T trigger} (GeV/c)"); + + fhDeltaPhiChargedPtA3GeVBC0 = new TH2F + ("hDeltaPhiChargedPtA3GeVBC0","#phi_{trigger} - #phi_{h^{#pm}} vs p_{T trigger}, p_{TA}>3 GeV/c, track BC==0", + nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax); + fhDeltaPhiChargedPtA3GeVBC0->SetYTitle("#Delta #phi (rad)"); + fhDeltaPhiChargedPtA3GeVBC0->SetXTitle("p_{T trigger} (GeV/c)"); + + fhPtTrigChargedBC0 = + new TH2F("hPtTrigChargedBC0","trigger and charged tracks pt distribution, track BC==0", + nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); + fhPtTrigChargedBC0->SetYTitle("p_{T h^{#pm}} (GeV/c)"); + fhPtTrigChargedBC0->SetXTitle("p_{T trigger} (GeV/c)"); + + fhXEChargedBC0 = + new TH2F("hXEChargedBC0","x_{E} for charged tracks, track BC==0", + nptbins,ptmin,ptmax,200,0.,2.); + fhXEChargedBC0->SetYTitle("x_{E}"); + fhXEChargedBC0->SetXTitle("p_{T trigger} (GeV/c)"); + + fhXEUeChargedBC0 = + new TH2F("hXEUeChargedBC0","x_{E} for Underlying Event, track BC==0", + nptbins,ptmin,ptmax,200,0.,2.); + fhXEUeChargedBC0->SetYTitle("x_{E}"); + fhXEUeChargedBC0->SetXTitle("p_{T trigger} (GeV/c)"); + + fhZTChargedBC0 = + new TH2F("hZTChargedBC0","z_{T} for charged tracks, track BC==0", + nptbins,ptmin,ptmax,200,0.,2.); + fhZTChargedBC0->SetYTitle("z_{T}"); + fhZTChargedBC0->SetXTitle("p_{T trigger}"); + + fhZTUeChargedBC0 = + new TH2F("hZTUeChargedBC0","z_{T} for Underlying Event, track BC==0", + nptbins,ptmin,ptmax,200,0.,2.); + fhZTUeChargedBC0->SetYTitle("z_{T}"); + fhZTUeChargedBC0->SetXTitle("p_{T trigger} (GeV/c)"); + + outputContainer->Add(fhDeltaPhiChargedBC0) ; + outputContainer->Add(fhDeltaPhiChargedPtA3GeVBC0) ; + outputContainer->Add(fhXEChargedBC0) ; + outputContainer->Add(fhXEUeChargedBC0) ; + outputContainer->Add(fhZTChargedBC0) ; + outputContainer->Add(fhZTUeChargedBC0) ; + outputContainer->Add(fhPtTrigChargedBC0) ; + + for(Int_t i = 0 ; i < 7 ; i++) { fhPtLeadingPileUp[i] = new TH1F(Form("hPtLeadingPileUp%s",pileUpName[i].Data()), @@ -2252,23 +2321,11 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() fhEventMixBin->SetXTitle("bin"); outputContainer->Add(fhEventMixBin) ; - fhNtracksAll=new TH1F("hNtracksAll","Number of tracks w/o event trigger",2000,0,2000); - outputContainer->Add(fhNtracksAll); - - fhNtracksTrigger=new TH1F("hNtracksTriggerEvent","Number of tracks w/ event trigger",2000,0,2000); - outputContainer->Add(fhNtracksTrigger); - fhNtracksMB=new TH1F("hNtracksMBEvent","Number of tracks w/ event trigger kMB",2000,0,2000); outputContainer->Add(fhNtracksMB); if(fFillNeutralEventMixPool || OnlyIsolated()) { - fhNclustersAll=new TH1F("hNclustersAll","Number of clusters w/o event trigger",2000,0,2000); - outputContainer->Add(fhNclustersAll); - - fhNclustersTrigger=new TH1F("hNclustersTriggerEvent","Number of clusters w/ event trigger",2000,0,2000); - outputContainer->Add(fhNclustersTrigger); - fhNclustersMB=new TH1F("hNclustersMBEvent","Number of clusters w/ event trigger kMB",2000,0,2000); outputContainer->Add(fhNclustersMB); } @@ -2293,8 +2350,15 @@ TList * AliAnaParticleHadronCorrelation::GetCreateOutputObjects() fhMixXECharged->SetYTitle("x_{E}"); fhMixXECharged->SetXTitle("p_{T trigger} (GeV/c)"); outputContainer->Add(fhMixXECharged); + + fhMixXEUeCharged = + new TH2F("hMixXEUeCharged","Mixed event : x_{E} for charged tracks in Ue region", + nptbins,ptmin,ptmax,200,0.,2.); + fhMixXEUeCharged->SetYTitle("x_{E}"); + fhMixXEUeCharged->SetXTitle("p_{T trigger} (GeV/c)"); + outputContainer->Add(fhMixXEUeCharged); - fhMixHbpXECharged = + 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})"); @@ -2401,7 +2465,7 @@ Bool_t AliAnaParticleHadronCorrelation::GetDecayPhotonMomentum(const AliAODPWG4P } //_____________________________________________________________ -Int_t AliAnaParticleHadronCorrelation::GetMCTagHistogramIndex(const Int_t mcTag) +Int_t AliAnaParticleHadronCorrelation::GetMCTagHistogramIndex(Int_t mcTag) { // Index of MC histograms depending on MC origin @@ -2501,15 +2565,7 @@ void AliAnaParticleHadronCorrelation::MakeAnalysisFillAOD() Double_t v[3] = {0,0,0}; //vertex ; GetReader()->GetVertex(v); if(!GetMixedEvent() && TMath::Abs(v[2]) > GetZvertexCut()) return ; - - // Fill the pool with tracks if requested - if(DoOwnMix()) - { - FillChargedEventMixPool(); - if(OnlyIsolated() || fFillNeutralEventMixPool) - FillNeutralEventMixPool(); - } - + //Loop on stored AOD particles, find leading trigger Double_t ptTrig = fMinTriggerPt ; fLeadingTriggerIndex = -1 ; @@ -2722,7 +2778,7 @@ void AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms() //___________________________________________________________________________________________________________ Bool_t AliAnaParticleHadronCorrelation::MakeChargedCorrelation(AliAODPWG4ParticleCorrelation *aodParticle, - const TObjArray* pl, const Bool_t bFillHisto) + const TObjArray* pl, Bool_t bFillHisto) { // Charged Hadron Correlation Analysis if(GetDebug() > 1) @@ -2852,8 +2908,9 @@ Bool_t AliAnaParticleHadronCorrelation::MakeChargedCorrelation(AliAODPWG4Partic //Double32_t tof = track->GetTOFsignal()*1e-3; Int_t trackBC = track->GetTOFBunchCrossing(bz); - Bool_t outTOF = kFALSE; - if(okTOF && trackBC!=0) outTOF = kTRUE; + Int_t outTOF = -1; + if (okTOF && trackBC!=0) outTOF = 1; + else if(okTOF && trackBC==0) outTOF = 0; // Azimuthal Angle // calculate deltaPhi for later, shift when needed @@ -2873,13 +2930,14 @@ Bool_t AliAnaParticleHadronCorrelation::MakeChargedCorrelation(AliAODPWG4Partic pout = pt*TMath::Sin(deltaPhi) ; //delta phi cut for momentum imbalance correlation - if ( (deltaPhi > fDeltaPhiMinCut) && (deltaPhi < fDeltaPhiMaxCut) ) + if ( (deltaPhi > fDeltaPhiMinCut) && (deltaPhi < fDeltaPhiMaxCut) ) { FillChargedMomentumImbalanceHistograms(ptTrig, pt, xE, hbpXE, zT, hbpZT, pout, nTracks, track->Charge(), bin, decay,outTOF,mcTag); - } + } + if ( (deltaPhi > fUeDeltaPhiMinCut) && (deltaPhi < fUeDeltaPhiMaxCut) ) { //UE study @@ -3166,12 +3224,23 @@ void AliAnaParticleHadronCorrelation::MakeChargedMixCorrelation(AliAODPWG4Partic if(xE > 0 ) hbpXE = TMath::Log(1./xE); else hbpXE =-100; - if ( (deltaPhi > fDeltaPhiMinCut) && (deltaPhi < fDeltaPhiMaxCut) ) + if ( (deltaPhi > fDeltaPhiMinCut) && (deltaPhi < fDeltaPhiMaxCut) ) { fhMixXECharged->Fill(ptTrig,xE); fhMixHbpXECharged->Fill(ptTrig,hbpXE); } - + + if ( (deltaPhi > fUeDeltaPhiMinCut) && (deltaPhi < fUeDeltaPhiMaxCut) ) + { + //Underlying event region + Double_t randomphi = gRandom->Uniform(fDeltaPhiMinCut,fDeltaPhiMaxCut); + Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi); + + if(uexE < 0.) uexE = -uexE; + + fhMixXEUeCharged->Fill(ptTrig,uexE); + } + if(bin < 0) continue ; // this pt bin was not considered if(TMath::Abs(deltaEta) > 0.8) @@ -3189,7 +3258,7 @@ void AliAnaParticleHadronCorrelation::MakeChargedMixCorrelation(AliAODPWG4Partic //________________________________________________________________________________________________________________ Bool_t AliAnaParticleHadronCorrelation::MakeNeutralCorrelation(AliAODPWG4ParticleCorrelation * const aodParticle, - const TObjArray* pi0list, const Bool_t bFillHisto) + const TObjArray* pi0list, Bool_t bFillHisto) { // Neutral Pion Correlation Analysis if(GetDebug() > 1) printf("AliAnaParticleHadronCorrelation::MakeNeutralCorrelation() - Make trigger particle - pi0 correlation, %d pi0's \n",