1 #ifndef ALIMUONCLUSTERSPLITTERMLEM_H
2 #define ALIMUONCLUSTERSPLITTERMLEM_H
20 #include "TMatrixDfwd.h"
32 Double_t lowestPixelCharge,
33 Double_t lowestPadCharge,
34 Double_t lowestClusterCharge);
39 Int_t ic, Int_t jc, Int_t mode,
44 Bool_t *used, Int_t *clustNumb, Int_t &nCoupled);
46 TObject*
BinToPix(TH2 *mlem, Int_t jc, Int_t ic);
51 Int_t & npar, Double_t * gin,
52 Double_t &
f, Double_t *par, Int_t iflag);
55 Int_t iSimple, Int_t nfit,
56 const Int_t *clustFit,
TObjArray **clusters,
57 Double_t *parOk,
TObjArray& clusterList, TH2 *mlem);
60 Int_t nForFit, Int_t nCoupled,
61 const Int_t *clustNumb,
const Int_t *clustFit,
63 TMatrixD& aijcluclu, TMatrixD& aijclupad);
65 Double_t
MinGroupCoupl(Int_t nCoupled,
const Int_t *clustNumb,
66 const TMatrixD& aijcluclu, Int_t *minGroup);
69 Int_t nCoupled, Int_t nForFit,
70 const Int_t *clustNumb,
const Int_t *clustFit,
71 const TMatrixD& aijclupad);
87 Double_t
Param2Coef(Int_t icand, Double_t coef, Double_t *par)
const;
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 fLowestPadCharge
! minimum allowed pad charge
void Fcn1(const AliMUONCluster &cluster, Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag)
Double_t fLowestClusterCharge
! minimum allowed cluster charge
Double_t MinGroupCoupl(Int_t nCoupled, const Int_t *clustNumb, const TMatrixD &aijcluclu, Int_t *minGroup)
TObject * BinToPix(TH2 *mlem, Int_t jc, Int_t ic)
A group of adjacent pads.
TFile f("CalibObjects.root")
Implementation of Mathieson response.
Double_t fQtot
! total charge
void Split(const AliMUONCluster &cluster, TH2 *mlem, Double_t *coef, TObjArray &clusterList)
Splitter class for the MLEM algorithm.
AliMUONClusterSplitterMLEM & operator=(const AliMUONClusterSplitterMLEM &)
will not be implemented
Int_t fNpar
! number of fit parameters
void AddBin(TH2 *mlem, Int_t ic, Int_t jc, Int_t mode, Bool_t *used, TObjArray *pix)
AliMUONClusterSplitterMLEM(Int_t detElemId, TObjArray *pixArray, Double_t lowestPixelCharge, Double_t lowestPadCharge, Double_t lowestClusterCharge)
Int_t SelectPad(const AliMUONCluster &cluster, Int_t nCoupled, Int_t nForFit, const Int_t *clustNumb, const Int_t *clustFit, const TMatrixD &aijclupad)
static const Double_t fgkCouplMin
threshold on coupling
void SetDebug(Int_t debug)
Set debug level.
Double_t Param2Coef(Int_t icand, Double_t coef, Double_t *par) const
void UpdatePads(const AliMUONCluster &cluster, Int_t nfit, Double_t *par)
void AddCluster(Int_t ic, Int_t nclust, TMatrixD &aijcluclu, Bool_t *used, Int_t *clustNumb, Int_t &nCoupled)
AliMUONMathieson * fMathieson
! Mathieson
virtual ~AliMUONClusterSplitterMLEM()
Int_t fDebug
! debug level
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)
Double_t fLowestPixelCharge
! minimum allowed pixel charge
Float_t ChargeIntegration(Double_t x, Double_t y, const AliMUONPad &pad)
Combination of digit and mppad informations.
Int_t fnCoupled
! number of coupled pixels ?
Int_t fDetElemId
! detection element we are working on