]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
add 2 additional nonlinearity corrections to aliroot:
authorgconesab <gustavo.conesa.balbastre@cern.ch>
Wed, 10 Dec 2014 12:53:03 +0000 (13:53 +0100)
committergconesab <gustavo.conesa.balbastre@cern.ch>
Wed, 10 Dec 2014 12:54:13 +0000 (13:54 +0100)
kPi0MCv6 (to be used on MC in conjunction with kSDMv6)
kSDMv6 (to be used on data in conjunction with kPi0MCv6)

These are based on the symmetric decay method but the shapes of the
nonlinearity curves are constrained by the test beam data.  The method
is described in the note: https://aliceinfo.cern.ch/Notes/node/211 -
Sec 3.1.2 (Test Beam Constrained SDM).

Author: Jason Kamin

EMCAL/AliEMCALRecoUtils.cxx
EMCAL/AliEMCALRecoUtils.h

index 6e512eeb407b2bb0a10f49a6660cf41cc065e2c0..0538a9bedb30af01aedcc033b67b38640731d9f0 100644 (file)
@@ -727,6 +727,40 @@ Float_t AliEMCALRecoUtils::CorrectClusterEnergyLinearity(AliVCluster* cluster)
       break;
     }
       
+    case kSDMv6:
+    {
+      //Based on fit to the MC/data using kNoCorrection on the data 
+      //  - utilizes symmetric decay method and kPi0MCv6(MC) - 09 Dec 2014
+      //  - parameters constrained by the test beam data as well
+      // described in the note: https://aliceinfo.cern.ch/Notes/node/211 - Sec 3.1.2 (Test Beam Constrained SDM).
+      //fNonLinearityParams[0] =  1.0;
+      //fNonLinearityParams[1] =  0.237767;
+      //fNonLinearityParams[2] =  0.651203;
+      //fNonLinearityParams[3] =  0.183741;
+      //fNonLinearityParams[4] =  155.427;
+      //fNonLinearityParams[5] =  17.0335;
+      //fNonLinearityParams[6] =  0.987054;
+      energy *= fNonLinearityParams[6]/(fNonLinearityParams[0]*(1./(1.+fNonLinearityParams[1]*exp(-energy/fNonLinearityParams[2]))*1./(1.+fNonLinearityParams[3]*exp((energy-fNonLinearityParams[4])/fNonLinearityParams[5]))));
+      
+      break;
+    }
+      
+    case kPi0MCv6:
+    {
+      //Based on comparing MC truth information to the reconstructed energy of clusters.
+      // described in the note: https://aliceinfo.cern.ch/Notes/node/211 - Sec 3.1.2 (Test Beam Constrained SDM).
+      //fNonLinearityParams[0] =  1.0;
+      //fNonLinearityParams[1] =  0.0797873;
+      //fNonLinearityParams[2] =  1.68322;
+      //fNonLinearityParams[3] =  0.0806098;
+      //fNonLinearityParams[4] =  244.586;
+      //fNonLinearityParams[5] =  116.938;
+      //fNonLinearityParams[6] =  1.00437;
+      energy *= fNonLinearityParams[6]/(fNonLinearityParams[0]*(1./(1.+fNonLinearityParams[1]*exp(-energy/fNonLinearityParams[2]))*1./(1.+fNonLinearityParams[3]*exp((energy-fNonLinearityParams[4])/fNonLinearityParams[5]))));
+      
+      break;
+    }
+      
     case kNoCorrection:
       AliDebug(2,"No correction on the energy\n");
       break;
@@ -835,6 +869,26 @@ void AliEMCALRecoUtils::InitNonLinearityParam()
     fNonLinearityParams[6] =  1.01286;
   }
 
+  if (fNonLinearityFunction == kSDMv6) {
+    fNonLinearityParams[0] = 1.0;      
+    fNonLinearityParams[1] = 0.237767; 
+    fNonLinearityParams[2] = 0.651203; 
+    fNonLinearityParams[3] = 0.183741; 
+    fNonLinearityParams[4] = 155.427;  
+    fNonLinearityParams[5] = 17.0335;  
+    fNonLinearityParams[6] = 0.987054; 
+  }
+
+  if (fNonLinearityFunction == kPi0MCv6) {
+    fNonLinearityParams[0] = 1.0;       
+    fNonLinearityParams[1] = 0.0797873; 
+    fNonLinearityParams[2] = 1.68322;   
+    fNonLinearityParams[3] = 0.0806098; 
+    fNonLinearityParams[4] = 244.586;   
+    fNonLinearityParams[5] = 116.938;   
+    fNonLinearityParams[6] = 1.00437;   
+  }
+
 }
 
 //_________________________________________________________
index b8c89bc4a8abb52f965c83c33bb5a4fde68d88fd..8542d3dae753e62ff37c44cc040e56037458e8d4 100644 (file)
@@ -49,7 +49,14 @@ public:
   void     Print(const Option_t*) const;
 
   //enums
-  enum     NonlinearityFunctions{kPi0MC=0,kPi0GammaGamma=1,kPi0GammaConversion=2,kNoCorrection=3,kBeamTest=4,kBeamTestCorrected=5,kPi0MCv2=6,kPi0MCv3=7,kBeamTestCorrectedv2=8,kSDMv5=9,kPi0MCv5=10};
+  enum     NonlinearityFunctions{ kPi0MC   = 0, kPi0GammaGamma = 1,
+                                  kPi0GammaConversion = 2, kNoCorrection = 3,
+                                  kBeamTest= 4, kBeamTestCorrected = 5,
+                                  kPi0MCv2 = 6, kPi0MCv3 = 7,
+                                  kBeamTestCorrectedv2   = 8,
+                                  kSDMv5   = 9, kPi0MCv5 = 10,
+                                  kSDMv6   =11, kPi0MCv6 = 12};
+  
   enum     PositionAlgorithms{kUnchanged=-1,kPosTowerIndex=0, kPosTowerGlobal=1};
   enum     ParticleType{kPhoton=0, kElectron=1,kHadron =2, kUnknown=-1};
   enum     { kNCuts = 12 }; //track matching Marcel