From afc835304ee4995262945cf7231bfffdac001cc1 Mon Sep 17 00:00:00 2001 From: gconesab Date: Mon, 17 Dec 2012 16:18:12 +0000 Subject: [PATCH] update asymmetry selection for split clusters --- PWG/CaloTrackCorrBase/AliCaloPID.cxx | 34 ++++++++++++++++++++++++---- PWG/CaloTrackCorrBase/AliCaloPID.h | 7 +++--- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/PWG/CaloTrackCorrBase/AliCaloPID.cxx b/PWG/CaloTrackCorrBase/AliCaloPID.cxx index 90a4227888e..729c8ccc043 100755 --- a/PWG/CaloTrackCorrBase/AliCaloPID.cxx +++ b/PWG/CaloTrackCorrBase/AliCaloPID.cxx @@ -252,10 +252,27 @@ void AliCaloPID::InitParameters() fM02MinParam[3] = 0.0069; // pol2 param2 for NLM=1 , E < 16 GeV fM02MinParam[4] = 0.3; // absolute minimum in any case - fAsyMinParam[0] = 0.08 ; // pol2 param0 for NLM=2 , E < 11 GeV - fAsyMinParam[1] = 0.127; // pol2 param1 for NLM=2 , E < 11 GeV - fAsyMinParam[2] =-0.0049; // pol2 param2 for NLM=2 , E < 11 GeV + fAsyMinParam[0][0] =-0.02 ; // pol3 param0 for NLM=1 , E < 25 GeV, pp + fAsyMinParam[0][1] = 0.072 ; // pol3 param1 for NLM=1 , E < 25 GeV, pp + fAsyMinParam[0][2] =-0.0014; // pol3 param2 for NLM=1 , E < 25 GeV, pp + fAsyMinParam[0][3] = 0 ; // pol3 param2 for NLM=1 , E < 25 GeV, pp + + fAsyMinParam[1][0] =-0.33 ; // pol3 param0 for NLM>2 , E < 25 GeV, pp + fAsyMinParam[1][1] = 0.20 ; // pol3 param1 for NLM>2 , E < 25 GeV, pp + fAsyMinParam[1][2] =-0.011; // pol3 param2 for NLM>2 , E < 25 GeV, pp + fAsyMinParam[1][3] = 0.00019; // pol3 param2 for NLM>2 , E < 25 GeV, pp + +// fAsyMinParam[0][0] =-0.41 ; // pol3 param0 for NLM=1 , E < 25 GeV, PbPb +// fAsyMinParam[0][1] = 0.111 ; // pol3 param1 for NLM=1 , E < 25 GeV, PbPb +// fAsyMinParam[0][2] =-0.0023; // pol3 param2 for NLM=1 , E < 25 GeV, PbPb +// fAsyMinParam[0][3] = 0 ; // pol3 param2 for NLM=1 , E < 25 GeV, PbPb +// +// fAsyMinParam[1][0] =-1.3 ; // pol3 param0 for NLM>2 , E < 25 GeV, PbPb +// fAsyMinParam[1][1] = 0.32 ; // pol3 param1 for NLM>2 , E < 25 GeV, PbPb +// fAsyMinParam[1][2] =-0.015; // pol3 param2 for NLM>2 , E < 25 GeV, PbPb +// fAsyMinParam[1][3] = 0.00022; // pol3 param2 for NLM>2 , E < 25 GeV, PbPb + fSplitEFracMin = 0.85 ; fSplitWidthSigma = 2.5 ; @@ -271,10 +288,17 @@ Bool_t AliCaloPID::IsInPi0SplitAsymmetryRange(const Float_t energy, const Float_ Float_t abasy = TMath::Abs(asy); + Int_t inlm = nlm-1; + if(nlm > 2) inlm=1; // only 2 cases defined nlm=1 and nlm>=2 + // Get the parametrized min cut of asymmetry for NLM=2 up to 11 GeV - Float_t cut = fAsyMinParam[0]+energy*fAsyMinParam[1]+energy*energy*fAsyMinParam[2]; + Float_t cut = fAsyMinParam[inlm][0]+energy*fAsyMinParam[inlm][1]+energy*energy*fAsyMinParam[inlm][2]+ + energy*energy*energy*fAsyMinParam[inlm][3]; + + if(energy > 25 ) cut = 0.95; - if(nlm != 2 || energy > 11 ) cut = 0.95; + //printf("energy %2.2f - nlm: %d (%d)- p0 %f, p1 %f, p2 %f, p3 %f ; cut: %2.2f\n",energy,nlm,inlm, + // fAsyMinParam[inlm][0],fAsyMinParam[inlm][1],fAsyMinParam[inlm][2],fAsyMinParam[inlm][3],cut); if(abasy < cut) return kTRUE; else return kFALSE; diff --git a/PWG/CaloTrackCorrBase/AliCaloPID.h b/PWG/CaloTrackCorrBase/AliCaloPID.h index fee6f744a7f..1923e97aea7 100755 --- a/PWG/CaloTrackCorrBase/AliCaloPID.h +++ b/PWG/CaloTrackCorrBase/AliCaloPID.h @@ -222,7 +222,8 @@ class AliCaloPID : public TObject { void SetSplitWidthSigma(Float_t s) { fSplitWidthSigma = s ; } void SetPi0MassWidthSelectionParameters (Int_t iparam, Float_t param) { if(iparam < 7 ) fMassWidthPi0Param[iparam] = param ; } void SetM02MinimumSelectionParameters (Int_t iparam, Float_t param) { if(iparam < 5 ) fM02MinParam [iparam] = param ; } - void SetAsymmetryMinimumSelectionParameters(Int_t iparam, Float_t param) { if(iparam < 3 ) fAsyMinParam [iparam] = param ; } + void SetAsymmetryMinimumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param) + { if(iparam < 4 && inlm < 2) fAsyMinParam[inlm][iparam] = param ; } void SetPi0MassRange(Float_t min, Float_t max) { fMassPi0Min = min ; fMassPi0Max = max ; } // Simple case void SetEtaMassRange(Float_t min, Float_t max) { fMassEtaMin = min ; fMassEtaMax = max ; } @@ -284,7 +285,7 @@ private: Float_t fMassPhoMax ; // Min Photon mass Float_t fMassWidthPi0Param[7] ; // 3 param for pol2 fit on width, 2 param for mass position NLM=1 and NLM>1 for pi0 selection Float_t fM02MinParam[5] ; // 3 param for pol2 fit on M02 minimum - Float_t fAsyMinParam[5] ; // 3 param for pol2 fit on asymmetry minimum, split + Float_t fAsyMinParam[2][5] ; // 4 param for pol3 fit on asymmetry minimum, for 2 cases, NLM=1 and NLM>=2 Float_t fSplitEFracMin ; // Do not use clusters with too large energy in cluster compared // to energy in splitted clusters Float_t fSplitWidthSigma; // Cut on mass+-width*fSplitWidthSigma @@ -294,7 +295,7 @@ private: AliCaloPID & operator = (const AliCaloPID & cpid) ; // cpy assignment AliCaloPID( const AliCaloPID & cpid) ; // cpy ctor - ClassDef(AliCaloPID,15) + ClassDef(AliCaloPID,16) } ; -- 2.43.0