]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONClusterFinderCOG.cxx
Update from Alberica. Addition of VZERO equalized signals and ZNC.
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterFinderCOG.cxx
index 335766f9ce4c7dddc8f1ac9c3235ad8a557f89d1..7bd0b8a56b98ba9e3c2f8d3121abe0bd15d6b2ca 100644 (file)
 
 #include "AliLog.h"
 #include "AliMUONCluster.h"
-#include "AliMUONDigit.h"
+#include "AliMUONVDigit.h"
 #include "AliMUONPad.h"
-#include "AliMUONPreClusterFinder.h"
 #include "AliMpArea.h"
-#include "TClonesArray.h"
 #include "TVector2.h"
+#include "AliMUONVDigitStore.h"
 
+//-----------------------------------------------------------------------------
 /// \class AliMUONClusterFinderCOG
 ///
 /// A very basic (and mostly useless, probably) cluster finder.
 /// direction with the better resolution.
 ///
 /// \author Laurent Aphecetche
+//-----------------------------------------------------------------------------
 
 /// \cond CLASSIMP
 ClassImp(AliMUONClusterFinderCOG)
 /// \endcond
 
 //_____________________________________________________________________________
-AliMUONClusterFinderCOG::AliMUONClusterFinderCOG()
+AliMUONClusterFinderCOG::AliMUONClusterFinderCOG(AliMUONVClusterFinder* clusterFinder)
 : AliMUONVClusterFinder(),
-fPreClusterFinder(0x0)
+fPreClusterFinder(clusterFinder)
 {
   /// ctor
 }
@@ -60,33 +61,13 @@ AliMUONClusterFinderCOG::~AliMUONClusterFinderCOG()
 
 //_____________________________________________________________________________
 Bool_t 
-AliMUONClusterFinderCOG::Prepare(const AliMpVSegmentation* segmentations[2],
-                                       TClonesArray* digits[2])
+AliMUONClusterFinderCOG::Prepare(Int_t detElemId,
+                                 TObjArray* pads[2],
+                                 const AliMpArea& area)
 {
   /// Prepare for clustering
   
-  // Find out the DetElemId
-  Int_t detElemId(-1);
-  
-  for ( Int_t i = 0; i < 2; ++i )
-  {
-    AliMUONDigit* d = static_cast<AliMUONDigit*>(digits[i]->First());
-    if (d)
-    {
-      detElemId = d->DetElemId();
-      break;
-    }
-  }
-  
-  if ( detElemId < 0 )
-  {
-    AliWarning("Could not find DE. Probably no digits at all ?");
-    return kFALSE;
-  }
-  
-  delete fPreClusterFinder;
-  fPreClusterFinder = new AliMUONPreClusterFinder;
-  return fPreClusterFinder->Prepare(segmentations,digits);
+  return fPreClusterFinder->Prepare(detElemId,pads,area);
 }
 
 //_____________________________________________________________________________
@@ -101,7 +82,7 @@ AliMUONClusterFinderCOG::NextCluster()
   {
     ComputePosition(*cluster);
 
-    if ( cluster->Charge() < 7 )
+    if ( cluster->Charge() < 1.0675 ) // JC: adc -> fc
     {
       // skip that one
       return NextCluster();
@@ -133,7 +114,7 @@ AliMUONClusterFinderCOG::ComputePosition(AliMUONCluster& cluster)
     {
       AliMUONPad* pad = cluster.Pad(i);
       TVector2 padPosition = pad->Position();
-      AliMpArea area(pad->Position(),pad->Dimensions());
+      AliMpArea area(pad->X(), pad->Y(), pad->DX(), pad->DY());
       xmin = TMath::Min(area.LeftBorder(),xmin);
       xmax = TMath::Max(area.RightBorder(),xmax);
       ymin = TMath::Min(area.DownBorder(),ymin);