]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALAfterBurnerUF.cxx
remove exec
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALAfterBurnerUF.cxx
index c936cc46779945f3462cdb78ad2e60f4284862cd..d07ffe4e8053c1505eb71cb9b802676f44ad36c7 100644 (file)
@@ -80,6 +80,7 @@ AliEMCALAfterBurnerUF::AliEMCALAfterBurnerUF():
   fGeom(NULL),
   fLogWeight(4.5),      // correct?
   fECALocMaxCut(0.03),  // value suggested by Adam
+  fMinECut(0.01),
   fRecPoints(NULL),
   fDigitsArr(NULL),
   fClusterUnfolding(NULL)
@@ -90,10 +91,11 @@ AliEMCALAfterBurnerUF::AliEMCALAfterBurnerUF():
 }
 
 //------------------------------------------------------------------------
-AliEMCALAfterBurnerUF::AliEMCALAfterBurnerUF(Float_t logWeight, Float_t ECALocMaxCut):
+AliEMCALAfterBurnerUF::AliEMCALAfterBurnerUF(Float_t logWeight, Float_t ecaLocMaxCut, Float_t minECut):
   fGeom(NULL),
   fLogWeight(logWeight),
-  fECALocMaxCut(ECALocMaxCut),
+  fECALocMaxCut(ecaLocMaxCut),
+  fMinECut(minECut),
   fRecPoints(NULL),
   fDigitsArr(NULL),
   fClusterUnfolding(NULL)
@@ -120,12 +122,12 @@ void AliEMCALAfterBurnerUF::Init()
 
   // required for global cluster position recalculation
   if (!gGeoManager)
-    Fatal("AliEMCALAfterBurnerUF::Init", "failed to import geometry.root");
+    Info("AliEMCALAfterBurnerUF::Init", "gGeoManager was not set, be careful");
 
   // initialize geometry, if not yet initialized
   if (!AliEMCALGeometry::GetInstance()) {
-    Warning("AliEMCALAfterBurnerUF::Init", "AliEMCALGeometry is not yet initialized. Initializing with EMCAL_FIRSTYEARV1");
-    AliEMCALGeometry::GetInstance("EMCAL_FIRSTYEARV1");
+    Warning("AliEMCALAfterBurnerUF::Init", "AliEMCALGeometry is not yet initialized. Initializing with EMCAL_COMPLETEV1");
+    AliEMCALGeometry::GetInstance("EMCAL_COMPLETEV1");
   }
 
   // AliEMCALRecPoint is using exactly this call
@@ -135,7 +137,8 @@ void AliEMCALAfterBurnerUF::Init()
 
   fClusterUnfolding = new AliEMCALUnfolding(fGeom);
   fClusterUnfolding->SetECALocalMaxCut(fECALocMaxCut);
-
+  fClusterUnfolding->SetThreshold(fMinECut); 
+  
   // clusters --> recPoints, cells --> digits and back ;)
   fRecPoints = new TObjArray(100);
   fDigitsArr = new TClonesArray("AliEMCALDigit",1152);
@@ -144,15 +147,31 @@ void AliEMCALAfterBurnerUF::Init()
 //------------------------------------------------------------------------
 AliEMCALAfterBurnerUF::~AliEMCALAfterBurnerUF()
 {
+  //
+  // destructor
+  //
+
   if (fClusterUnfolding) delete fClusterUnfolding;
 
-  if (fRecPoints) delete fRecPoints;
+  if (fRecPoints) {
+    fRecPoints->Delete();
+    delete fRecPoints;
+  }
   if (fDigitsArr) {
     fDigitsArr->Clear("C");
     delete fDigitsArr;
   }
 }
 
+//------------------------------------------------------------------------
+void AliEMCALAfterBurnerUF::Clear()
+{
+  //Clean the arrays
+  
+  if (fRecPoints) fRecPoints->Delete();  // do not Clear(), it leaks, why?
+  if (fDigitsArr) fDigitsArr->Clear("C");
+  
+}
 //------------------------------------------------------------------------
 void AliEMCALAfterBurnerUF::RecPoints2Clusters(TObjArray *clusArray)
 {
@@ -165,8 +184,8 @@ void AliEMCALAfterBurnerUF::RecPoints2Clusters(TObjArray *clusArray)
   {
     AliEMCALRecPoint *recPoint = (AliEMCALRecPoint*) fRecPoints->At(i);
 
-    Int_t ncells = recPoint->GetMultiplicity();
-    Int_t ncells_true = 0;
+    const Int_t ncells = recPoint->GetMultiplicity();
+    Int_t ncellsTrue = 0;
 
     // cells and their amplitude fractions
     UShort_t absIds[ncells];  // NOTE: unfolding must not give recPoints with no cells!
@@ -175,13 +194,13 @@ void AliEMCALAfterBurnerUF::RecPoints2Clusters(TObjArray *clusArray)
     for (Int_t c = 0; c < ncells; c++) {
       AliEMCALDigit *digit = (AliEMCALDigit*) fDigitsArr->At(recPoint->GetDigitsList()[c]);
 
-      absIds[ncells_true] = digit->GetId();
-      ratios[ncells_true] = recPoint->GetEnergiesList()[c]/digit->GetAmplitude();
+      absIds[ncellsTrue] = digit->GetId();
+      ratios[ncellsTrue] = recPoint->GetEnergiesList()[c]/digit->GetAmplitude();
 
-      if (ratios[ncells_true] > 0.001) ncells_true++;
+      if (ratios[ncellsTrue] > 0.001) ncellsTrue++;
     }
 
-    if (ncells_true < 1) {
+    if (ncellsTrue < 1) {
       Warning("AliEMCALAfterBurnerUF::RecPoints2Clusters", "skipping cluster with no cells");
       continue;
     }
@@ -199,7 +218,7 @@ void AliEMCALAfterBurnerUF::RecPoints2Clusters(TObjArray *clusArray)
     clus->SetType(AliVCluster::kEMCALClusterv1);
     clus->SetE(recPoint->GetEnergy());
     clus->SetPosition(g);
-    clus->SetNCells(ncells_true);
+    clus->SetNCells(ncellsTrue);
     clus->SetCellsAbsId(absIds);
     clus->SetCellsAmplitudeFraction(ratios);
     // TODO: time not stored
@@ -272,7 +291,7 @@ void AliEMCALAfterBurnerUF::UnfoldClusters(TObjArray *clusArray, AliVCaloCells *
   RecPoints2Clusters(clusArray);
 
   // clean up
-  fRecPoints->Clear();
+  fRecPoints->Delete(); // do not Clear(), it leaks, why?
   fDigitsArr->Clear("C");
 
   clusArray->Compress();