]> 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 1c7dc5bfdc9f51ef2084f5cd4e4220e9b8b67053..efb093cb4608dcffd5b69d8b4b0597e4204f88f9 100644 (file)
@@ -1,5 +1,5 @@
-#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                               */
@@ -8,7 +8,7 @@
 
 /// \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,13 +76,16 @@ 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
   AliMUONClusterSplitterMLEM(const AliMUONClusterSplitterMLEM&);
   /// 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 
@@ -90,8 +96,13 @@ private:
   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