]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONClusterSplitterMLEM.h
Moving PbPb multiplicity in the new directory structure
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterSplitterMLEM.h
index bfb7a79ca2bde65d91abf45379a5faf440a5da38..efb093cb4608dcffd5b69d8b4b0597e4204f88f9 100644 (file)
@@ -1,14 +1,14 @@
-#ifndef AliMUONClusterSplitterMLEM_H
-#define AliMUONClusterSplitterMLEM_H
+#ifndef ALIMUONCLUSTERSPLITTERMLEM_H
+#define ALIMUONCLUSTERSPLITTERMLEM_H
 
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
 
 // $Id$
 
-/// \ingroup
+/// \ingroup rec
 /// \class AliMUONClusterSplitterMLEM
-/// \brief
+/// \brief Splitter class for the MLEM algorithm
 /// 
 //  Author Alexander Zinchenko, JINR Dubna; Laurent Aphecetche, SUBATECH
 //
@@ -28,7 +28,10 @@ class AliMUONMathieson;
 class AliMUONClusterSplitterMLEM : public TObject
 {
 public:
-  AliMUONClusterSplitterMLEM(Int_t detElemId, TObjArray* pixArray);
+  AliMUONClusterSplitterMLEM(Int_t detElemId, TObjArray* pixArray, 
+                             Double_t lowestPixelCharge,
+                             Double_t lowestPadCharge,
+                             Double_t lowestClusterCharge);
   
   virtual ~AliMUONClusterSplitterMLEM();
 
@@ -50,22 +53,22 @@ public:
   
   Int_t Fit(const AliMUONCluster& cluster,
             Int_t iSimple, Int_t nfit,
-            Int_t *clustFit, TObjArray **clusters, 
-            Double_t *parOk, TObjArray& clusterList);
+            const Int_t *clustFit, TObjArray **clusters, 
+            Double_t *parOk, TObjArray& clusterList, TH2 *mlem);
     
   void Merge(const AliMUONCluster& cluster,
              Int_t nForFit, Int_t nCoupled, 
-             Int_t *clustNumb, Int_t *clustFit, 
+             const Int_t *clustNumb, const Int_t *clustFit, 
              TObjArray **clusters, 
              TMatrixD& aijcluclu, TMatrixD& aijclupad);
     
-  Double_t MinGroupCoupl(Int_t nCoupled, Int_t *clustNumb, 
-                         TMatrixD& aijcluclu, Int_t *minGroup);
+  Double_t MinGroupCoupl(Int_t nCoupled, const Int_t *clustNumb, 
+                         const TMatrixD& aijcluclu, Int_t *minGroup);
       
   Int_t SelectPad(const AliMUONCluster& cluster,
                   Int_t nCoupled, Int_t nForFit, 
-                  Int_t *clustNumb, Int_t *clustFit, 
-                  TMatrixD& aijclupad);
+                  const Int_t *clustNumb, const Int_t *clustFit, 
+                  const TMatrixD& aijclupad);
   
   void Split(const AliMUONCluster& cluster,
                TH2* mlem,
@@ -73,25 +76,33 @@ public:
   
   
   void UpdatePads(const AliMUONCluster& cluster, Int_t nfit, Double_t *par);
+  /// Set debug level
+  void SetDebug (Int_t debug) { fDebug = debug; }
 
 private:
-  // will not be implemented
+  /// will not be implemented
   AliMUONClusterSplitterMLEM(const AliMUONClusterSplitterMLEM&);
-  // will not be implemented
+  /// will not be implemented
   AliMUONClusterSplitterMLEM& operator=(const AliMUONClusterSplitterMLEM&);
-  
+  Double_t Param2Coef(Int_t icand, Double_t coef, Double_t *par) const;
+
 private:
   
     static const Double_t fgkCouplMin; ///< threshold on coupling 
 
-  TObjArray* fPixArray; //! < not owner
-  AliMUONMathieson* fMathieson; //!< 
+  TObjArray* fPixArray; //!< \todo add comment
+  AliMUONMathieson* fMathieson; //!< Mathieson
   Int_t fDetElemId; //!< detection element we are working on
   Int_t fNpar; //!< number of fit parameters
   Double_t fQtot; //!< total charge
   Int_t fnCoupled; //!< number of coupled pixels ?
+  Int_t fDebug; //!< debug level
   
-  ClassDef(AliMUONClusterSplitterMLEM,1) // 
+  Double_t fLowestPixelCharge; //!< minimum allowed pixel charge
+  Double_t fLowestPadCharge; //!< minimum allowed pad charge
+  Double_t fLowestClusterCharge; //!< minimum allowed cluster charge
+
+  ClassDef(AliMUONClusterSplitterMLEM,2) // Splitter of clusters
 };
 
 #endif