#ifndef ALIMUONCLUSTERSPLITTERMLEM_H
#define ALIMUONCLUSTERSPLITTERMLEM_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
#include "TMatrixDfwd.h"
class AliMUONCluster;
class TH2;
class TObjArray;
class AliMUONPad;
class AliMUONMathieson;
class AliMUONClusterSplitterMLEM : public TObject
{
public:
AliMUONClusterSplitterMLEM(Int_t detElemId, TObjArray* pixArray,
Double_t lowestPixelCharge,
Double_t lowestPadCharge,
Double_t lowestClusterCharge);
virtual ~AliMUONClusterSplitterMLEM();
void AddBin(TH2 *mlem,
Int_t ic, Int_t jc, Int_t mode,
Bool_t *used, TObjArray *pix);
void AddCluster(Int_t ic, Int_t nclust,
TMatrixD& aijcluclu,
Bool_t *used, Int_t *clustNumb, Int_t &nCoupled);
TObject* BinToPix(TH2 *mlem, Int_t jc, Int_t ic);
Float_t ChargeIntegration(Double_t x, Double_t y, const AliMUONPad& pad);
void Fcn1(const AliMUONCluster& cluster,
Int_t & npar, Double_t * gin,
Double_t &f, Double_t *par, Int_t iflag);
Int_t Fit(const AliMUONCluster& cluster,
Int_t iSimple, Int_t nfit,
const Int_t *clustFit, TObjArray **clusters,
Double_t *parOk, TObjArray& clusterList, TH2 *mlem);
void Merge(const AliMUONCluster& cluster,
Int_t nForFit, Int_t nCoupled,
const Int_t *clustNumb, const Int_t *clustFit,
TObjArray **clusters,
TMatrixD& aijcluclu, TMatrixD& aijclupad);
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,
const Int_t *clustNumb, const Int_t *clustFit,
const TMatrixD& aijclupad);
void Split(const AliMUONCluster& cluster,
TH2* mlem,
Double_t* coef, TObjArray& clusterList);
void UpdatePads(const AliMUONCluster& cluster, Int_t nfit, Double_t *par);
void SetDebug (Int_t debug) { fDebug = debug; }
private:
AliMUONClusterSplitterMLEM(const AliMUONClusterSplitterMLEM&);
AliMUONClusterSplitterMLEM& operator=(const AliMUONClusterSplitterMLEM&);
Double_t Param2Coef(Int_t icand, Double_t coef, Double_t *par) const;
private:
static const Double_t fgkCouplMin;
TObjArray* fPixArray;
AliMUONMathieson* fMathieson;
Int_t fDetElemId;
Int_t fNpar;
Double_t fQtot;
Int_t fnCoupled;
Int_t fDebug;
Double_t fLowestPixelCharge;
Double_t fLowestPadCharge;
Double_t fLowestClusterCharge;
ClassDef(AliMUONClusterSplitterMLEM,2)
};
#endif
AliMUONClusterSplitterMLEM.h:1 AliMUONClusterSplitterMLEM.h:2 AliMUONClusterSplitterMLEM.h:3 AliMUONClusterSplitterMLEM.h:4 AliMUONClusterSplitterMLEM.h:5 AliMUONClusterSplitterMLEM.h:6 AliMUONClusterSplitterMLEM.h:7 AliMUONClusterSplitterMLEM.h:8 AliMUONClusterSplitterMLEM.h:9 AliMUONClusterSplitterMLEM.h:10 AliMUONClusterSplitterMLEM.h:11 AliMUONClusterSplitterMLEM.h:12 AliMUONClusterSplitterMLEM.h:13 AliMUONClusterSplitterMLEM.h:14 AliMUONClusterSplitterMLEM.h:15 AliMUONClusterSplitterMLEM.h:16 AliMUONClusterSplitterMLEM.h:17 AliMUONClusterSplitterMLEM.h:18 AliMUONClusterSplitterMLEM.h:19 AliMUONClusterSplitterMLEM.h:20 AliMUONClusterSplitterMLEM.h:21 AliMUONClusterSplitterMLEM.h:22 AliMUONClusterSplitterMLEM.h:23 AliMUONClusterSplitterMLEM.h:24 AliMUONClusterSplitterMLEM.h:25 AliMUONClusterSplitterMLEM.h:26 AliMUONClusterSplitterMLEM.h:27 AliMUONClusterSplitterMLEM.h:28 AliMUONClusterSplitterMLEM.h:29 AliMUONClusterSplitterMLEM.h:30 AliMUONClusterSplitterMLEM.h:31 AliMUONClusterSplitterMLEM.h:32 AliMUONClusterSplitterMLEM.h:33 AliMUONClusterSplitterMLEM.h:34 AliMUONClusterSplitterMLEM.h:35 AliMUONClusterSplitterMLEM.h:36 AliMUONClusterSplitterMLEM.h:37 AliMUONClusterSplitterMLEM.h:38 AliMUONClusterSplitterMLEM.h:39 AliMUONClusterSplitterMLEM.h:40 AliMUONClusterSplitterMLEM.h:41 AliMUONClusterSplitterMLEM.h:42 AliMUONClusterSplitterMLEM.h:43 AliMUONClusterSplitterMLEM.h:44 AliMUONClusterSplitterMLEM.h:45 AliMUONClusterSplitterMLEM.h:46 AliMUONClusterSplitterMLEM.h:47 AliMUONClusterSplitterMLEM.h:48 AliMUONClusterSplitterMLEM.h:49 AliMUONClusterSplitterMLEM.h:50 AliMUONClusterSplitterMLEM.h:51 AliMUONClusterSplitterMLEM.h:52 AliMUONClusterSplitterMLEM.h:53 AliMUONClusterSplitterMLEM.h:54 AliMUONClusterSplitterMLEM.h:55 AliMUONClusterSplitterMLEM.h:56 AliMUONClusterSplitterMLEM.h:57 AliMUONClusterSplitterMLEM.h:58 AliMUONClusterSplitterMLEM.h:59 AliMUONClusterSplitterMLEM.h:60 AliMUONClusterSplitterMLEM.h:61 AliMUONClusterSplitterMLEM.h:62 AliMUONClusterSplitterMLEM.h:63 AliMUONClusterSplitterMLEM.h:64 AliMUONClusterSplitterMLEM.h:65 AliMUONClusterSplitterMLEM.h:66 AliMUONClusterSplitterMLEM.h:67 AliMUONClusterSplitterMLEM.h:68 AliMUONClusterSplitterMLEM.h:69 AliMUONClusterSplitterMLEM.h:70 AliMUONClusterSplitterMLEM.h:71 AliMUONClusterSplitterMLEM.h:72 AliMUONClusterSplitterMLEM.h:73 AliMUONClusterSplitterMLEM.h:74 AliMUONClusterSplitterMLEM.h:75 AliMUONClusterSplitterMLEM.h:76 AliMUONClusterSplitterMLEM.h:77 AliMUONClusterSplitterMLEM.h:78 AliMUONClusterSplitterMLEM.h:79 AliMUONClusterSplitterMLEM.h:80 AliMUONClusterSplitterMLEM.h:81 AliMUONClusterSplitterMLEM.h:82 AliMUONClusterSplitterMLEM.h:83 AliMUONClusterSplitterMLEM.h:84 AliMUONClusterSplitterMLEM.h:85 AliMUONClusterSplitterMLEM.h:86 AliMUONClusterSplitterMLEM.h:87 AliMUONClusterSplitterMLEM.h:88 AliMUONClusterSplitterMLEM.h:89 AliMUONClusterSplitterMLEM.h:90 AliMUONClusterSplitterMLEM.h:91 AliMUONClusterSplitterMLEM.h:92 AliMUONClusterSplitterMLEM.h:93 AliMUONClusterSplitterMLEM.h:94 AliMUONClusterSplitterMLEM.h:95 AliMUONClusterSplitterMLEM.h:96 AliMUONClusterSplitterMLEM.h:97 AliMUONClusterSplitterMLEM.h:98 AliMUONClusterSplitterMLEM.h:99 AliMUONClusterSplitterMLEM.h:100 AliMUONClusterSplitterMLEM.h:101 AliMUONClusterSplitterMLEM.h:102 AliMUONClusterSplitterMLEM.h:103 AliMUONClusterSplitterMLEM.h:104 AliMUONClusterSplitterMLEM.h:105 AliMUONClusterSplitterMLEM.h:106 AliMUONClusterSplitterMLEM.h:107 AliMUONClusterSplitterMLEM.h:108