-#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
//
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();
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,
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