]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/totEt/AliAnalysisEtReconstructedPhos.cxx
Merge remote-tracking branch 'origin/master' into flatdev
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtReconstructedPhos.cxx
index b694102702f174e128624bad85d7c58b8e5c1c8d..dbec5cad61b1161cdb416fdef785aeb1b70f2196 100644 (file)
@@ -32,15 +32,15 @@ const Double_t kMEANNEUTRAL = 0.3356;
 const Double_t kMEANGAMMA = 0.374;
 */
 // Simulated case:
-//corrEnergy =cluster->E()/(0.51 + 0.02*cluster->E());
-const Double_t kMEANCHARGED = 0.307/(0.51 + 0.02*0.307);
-const Double_t kMEANNEUTRAL = 0.407/(0.51 + 0.02*0.407);
-const Double_t kMEANGAMMA = 0.374/(0.51 + 0.02*0.374);
+//corrEnergy =cluster->E()/(0.31 + 0.02*cluster->E());
+const Double_t kMEANCHARGED = 0.48/(0.31 + 0.00*0.48);
+const Double_t kMEANNEUTRAL = 0.53/(0.31 + 0.00*0.53);
+const Double_t kMEANGAMMA = 0.51/(0.31 + 0.00*0.31);
 
 
 AliAnalysisEtReconstructedPhos::AliAnalysisEtReconstructedPhos() :
         AliAnalysisEtReconstructed()
-{
+{ // ctor
     fHistogramNameSuffix = TString("PhosRec");
 
 //     fChargedContributionCorrectionParameters[0] = -0.017;
@@ -54,21 +54,21 @@ AliAnalysisEtReconstructedPhos::AliAnalysisEtReconstructedPhos() :
 //     fRemovedGammaContributionCorrectionParameters[1] = 0.37e-5;
 //     fRemovedGammaContributionCorrectionParameters[2] = 0.0003;
 
-    fChargedContributionCorrectionParameters[0] = -0.0231864;
-    fChargedContributionCorrectionParameters[1] = 0.112661;
-    fChargedContributionCorrectionParameters[2] = 9.2836e-05;
+    fChargedContributionCorrectionParameters[0] = -0.06;
+    fChargedContributionCorrectionParameters[1] = 0.316;
+    fChargedContributionCorrectionParameters[2] = 0.0022;
 
-    fNeutralContributionCorrectionParameters[0] = -9.18740e-03;
-    fNeutralContributionCorrectionParameters[1] = 3.58584e-02;
-    fNeutralContributionCorrectionParameters[2] = 9.48208e-04;
+    fNeutralContributionCorrectionParameters[0] = -0.003;
+    fNeutralContributionCorrectionParameters[1] = 0.232;
+    fNeutralContributionCorrectionParameters[2] = 0.002;
 
-    fRemovedGammaContributionCorrectionParameters[0] = -2.74323e-03;
-    fRemovedGammaContributionCorrectionParameters[1] = 2.71104e-03;
-    fRemovedGammaContributionCorrectionParameters[2] = 3.52758e-04;
+    fRemovedGammaContributionCorrectionParameters[0] = 0.001;
+    fRemovedGammaContributionCorrectionParameters[1] = 0.009;
+    fRemovedGammaContributionCorrectionParameters[2] = 0.0;
 
-    fSecondaryContributionCorrectionParameters[0] = 0.075;
-    fSecondaryContributionCorrectionParameters[1] = 0.150187;
-    fSecondaryContributionCorrectionParameters[2] = 0.00329361;
+    fSecondaryContributionCorrectionParameters[0] = -0.03;
+    fSecondaryContributionCorrectionParameters[1] = 0.221;
+    fSecondaryContributionCorrectionParameters[2] = 0.002;
 
 }
 
@@ -83,70 +83,60 @@ void AliAnalysisEtReconstructedPhos::Init()
     
     fDetectorRadius = fCuts->GetGeometryPhosDetectorRadius();
     fSingleCellEnergyCut = fCuts->GetReconstructedPhosSingleCellEnergyCut();
-
+    fSelector = new AliAnalysisEtSelectorPhos(fCuts);
 
 }
 
 bool AliAnalysisEtReconstructedPhos::TrackHitsCalorimeter(AliVParticle* track, Double_t magField)
-{
+{ 
     return  AliAnalysisEtReconstructed::TrackHitsCalorimeter(track, magField);
 }
 
-Double_t AliAnalysisEtReconstructedPhos::GetChargedContribution(Int_t clusterMult)
-{ // Charged contrib
-    if (clusterMult > 0)
-    {
-        Double_t nPart = fChargedContributionCorrectionParameters[0] + fChargedContributionCorrectionParameters[1]*clusterMult + fChargedContributionCorrectionParameters[2]*clusterMult*clusterMult;
-
-        Double_t contr = nPart*kMEANCHARGED;
 
-        return contr;
-    }
-    return 0;
 
+void AliAnalysisEtReconstructedPhos::CreateHistograms()
+{ // add some extra histograms & objects to the ones from base class
+  if(!fSelector){
+    cout<<__FILE__<<" "<<"Creating new fSelector"<<endl;
+    fSelector = new AliAnalysisEtSelectorPhos(fCuts);
+  }
+  AliAnalysisEtReconstructed::CreateHistograms();
 }
 
-Double_t AliAnalysisEtReconstructedPhos::GetNeutralContribution(Int_t clusterMult)
-{ // Neutral contrib
-    if (clusterMult > 0)
-    {
-        Double_t nPart = fNeutralContributionCorrectionParameters[0] + fNeutralContributionCorrectionParameters[1]*clusterMult + fNeutralContributionCorrectionParameters[2]*clusterMult*clusterMult;
-
-        Double_t contr = nPart*kMEANNEUTRAL;
-
-        return contr;
+Double_t AliAnalysisEtReconstructedPhos::GetCorrectionModification(const AliESDCaloCluster& cluster,Int_t nonLinCorr, Int_t effCorr, Int_t cent){//nonLinCorr 0 = nominal 1 = high -1 = low, effCorr  0 = nominal 1 = high -1 = low
+  Double_t factor = 1.0;
+  if(nonLinCorr!=0){
+    if(nonLinCorr==1){//high bound on nonlinearity
+      Double_t a1=0.045-0.010;
+      Double_t a2=0.045+0.010;
+      Double_t b1=1.055-0.450 ;
+      Double_t b2=1.055+0.450 ;
+      Double_t y = (1+a2/(1+cluster.E()*cluster.E()/b2/b2))/(1+a1/(1+cluster.E()*cluster.E()/b1/b1)) ;
+      factor *=y*GetCorrectionModification(cluster,0,0,cent);
     }
-    return 0;
-}
-
-Double_t AliAnalysisEtReconstructedPhos::GetGammaContribution(Int_t clusterMult)
-{ // Gamma contrib
-    if (clusterMult > 0)
-    {
-        Double_t nPart = fRemovedGammaContributionCorrectionParameters[0] + fRemovedGammaContributionCorrectionParameters[1]*clusterMult + fRemovedGammaContributionCorrectionParameters[2]*clusterMult*clusterMult;
-
-        Double_t contr = nPart*kMEANGAMMA;
-
-        return contr;
+    else{//nonLinCorr==-1
+      Double_t a1=0.045-0.010;
+      Double_t a2=0.045+0.010;
+      Double_t b1=1.055-0.450 ;
+      Double_t b2=1.055+0.450 ;
+      Double_t y = (1+a1/(1+cluster.E()*cluster.E()/b1/b1))/(1+a2/(1+cluster.E()*cluster.E()/b2/b2)) ;
+      factor *=y*GetCorrectionModification(cluster,0,0,cent);
     }
-    return 0;
-}
-
-Double_t AliAnalysisEtReconstructedPhos::GetSecondaryContribution(Int_t clusterMultiplicity)
-{
-  if(clusterMultiplicity > 0)
-  {
-    return fSecondaryContributionCorrectionParameters[0] + fSecondaryContributionCorrectionParameters[1]*clusterMultiplicity + fSecondaryContributionCorrectionParameters[2]*clusterMultiplicity*clusterMultiplicity;
   }
-  
-  return 0;
-}
-
-
-
-
-void AliAnalysisEtReconstructedPhos::CreateHistograms()
-{ // add some extra histograms & objects to the ones from base class
-  AliAnalysisEtReconstructed::CreateHistograms();
-  fSelector = new AliAnalysisEtSelectorPhos(fCuts);
+  else{//nonlinearity correction
+    factor = 0.9728*(1+0.02/(1+cluster.E()*cluster.E()/1.5));
+  }
+  if(effCorr!=0){
+    if(effCorr==1){//high bound
+      factor *=1.005*GetCorrectionModification(cluster,0,0,cent);
+    }
+    else{//low bound
+      factor *=0.995*GetCorrectionModification(cluster,0,0,cent);
+    }
+    if(cent<0){//this condition will never be met but it will stop a compiler warning that results in Coverity sending me an email about once every two weeks.
+      Double_t E = cluster.E();
+      factor = 1.0*E;
+    }
+  }
+  return factor;
 }