]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
update asymmetry selection for split clusters
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 17 Dec 2012 16:18:12 +0000 (16:18 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 17 Dec 2012 16:18:12 +0000 (16:18 +0000)
PWG/CaloTrackCorrBase/AliCaloPID.cxx
PWG/CaloTrackCorrBase/AliCaloPID.h

index 90a4227888ee9cc4f3e0a5e243a27328b0d2e208..729c8ccc043757d0cb1288f578435d3771c2ccdf 100755 (executable)
@@ -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;
index fee6f744a7f74d91c98d8cff3d9c2eb8c0a56052..1923e97aea787b5fe9ed3205bf99d77bef55c95d 100755 (executable)
@@ -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)
   
 } ;