From f18cb329c3113d269d6012c90bada8354455ca98 Mon Sep 17 00:00:00 2001 From: gconesab Date: Mon, 12 Dec 2011 14:07:45 +0000 Subject: [PATCH] Move radius calculation to method, add correction in case trigger and particle are close to 2pi phi boundary --- PWG4/PartCorrBase/AliIsolationCut.cxx | 29 ++++++++++++++++++++++++--- PWG4/PartCorrBase/AliIsolationCut.h | 3 ++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/PWG4/PartCorrBase/AliIsolationCut.cxx b/PWG4/PartCorrBase/AliIsolationCut.cxx index 734d05d34e6..a46fb9c67c7 100755 --- a/PWG4/PartCorrBase/AliIsolationCut.cxx +++ b/PWG4/PartCorrBase/AliIsolationCut.cxx @@ -87,7 +87,7 @@ TString AliIsolationCut::GetICParametersList() return parList; } -//____________________________________________________________________________ +//____________________________________ void AliIsolationCut::InitParameters() { //Initialize the parameters of the analysis. @@ -164,8 +164,10 @@ void AliIsolationCut::MakeIsolationCut(const TObjArray * plCTS, } return ; } + //Check if there is any particle inside cone with pt larger than fPtThreshold - rad = TMath::Sqrt((eta-etaC)*(eta-etaC)+ (phi-phiC)*(phi-phiC)); + + rad = Radius(etaC, phiC, eta, phi); if(rad < fConeSize){ if(bFillAOD) { @@ -240,7 +242,9 @@ void AliIsolationCut::MakeIsolationCut(const TObjArray * plCTS, } //Check if there is any particle inside cone with pt larger than fPtThreshold - rad = TMath::Sqrt((eta-etaC)*(eta-etaC)+ (phi-phiC)*(phi-phiC)); + + rad = Radius(etaC, phiC, eta, phi); + if(rad < fConeSize){ if(bFillAOD) { nclusterrefs++; @@ -312,3 +316,22 @@ void AliIsolationCut::Print(const Option_t * opt) const printf(" \n") ; } + +//___________________________________________________________________________ +Float_t AliIsolationCut::Radius(const Float_t etaC, const Float_t phiC, + const Float_t eta , const Float_t phi) const +{ + // Calculate the distance to trigger from any particle + + Float_t dEta = etaC-eta; + Float_t dPhi = phiC-phi; + + if(TMath::Abs(dPhi) >= TMath::Pi()) + dPhi = TMath::TwoPi()-TMath::Abs(dPhi); + + return TMath::Sqrt( dEta*dEta + dPhi*dPhi ); + +} + + + diff --git a/PWG4/PartCorrBase/AliIsolationCut.h b/PWG4/PartCorrBase/AliIsolationCut.h index d7af49158fd..348dfa66a1b 100755 --- a/PWG4/PartCorrBase/AliIsolationCut.h +++ b/PWG4/PartCorrBase/AliIsolationCut.h @@ -51,6 +51,7 @@ class AliIsolationCut : public TObject { void Print(const Option_t * opt) const ; + Float_t Radius(const Float_t etaCandidate, const Float_t phiCandidate, const Float_t eta, const Float_t phi) const ; // Parameter setters and getters @@ -85,7 +86,7 @@ class AliIsolationCut : public TObject { AliIsolationCut(const AliIsolationCut & g) ; // cpy ctor AliIsolationCut & operator = (const AliIsolationCut & g) ; // cpy assignment - ClassDef(AliIsolationCut,3) + ClassDef(AliIsolationCut,4) } ; -- 2.43.0