![]() |
AliRoot Core
3abf5b4 (3abf5b4)
|
Splitter class for the MLEM algorithm. More...
#include <AliMUONClusterSplitterMLEM.h>
Public Member Functions | |
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) |
Set debug level. More... | |
Private Member Functions | |
AliMUONClusterSplitterMLEM (const AliMUONClusterSplitterMLEM &) | |
will not be implemented More... | |
AliMUONClusterSplitterMLEM & | operator= (const AliMUONClusterSplitterMLEM &) |
will not be implemented More... | |
Double_t | Param2Coef (Int_t icand, Double_t coef, Double_t *par) const |
Private Attributes | |
TObjArray * | fPixArray |
! More... | |
AliMUONMathieson * | fMathieson |
! Mathieson More... | |
Int_t | fDetElemId |
! detection element we are working on More... | |
Int_t | fNpar |
! number of fit parameters More... | |
Double_t | fQtot |
! total charge More... | |
Int_t | fnCoupled |
! number of coupled pixels ? More... | |
Int_t | fDebug |
! debug level More... | |
Double_t | fLowestPixelCharge |
! minimum allowed pixel charge More... | |
Double_t | fLowestPadCharge |
! minimum allowed pad charge More... | |
Double_t | fLowestClusterCharge |
! minimum allowed cluster charge More... | |
Static Private Attributes | |
static const Double_t | fgkCouplMin = 1.e-2 |
threshold on coupling More... | |
Splitter class for the MLEM algorithm.
Splitter class for the MLEM algorithm. Performs fitting procedure with up to 3 hit candidates and tries to split clusters if the number of candidates exceeds 3.
Definition at line 28 of file AliMUONClusterSplitterMLEM.h.
AliMUONClusterSplitterMLEM::AliMUONClusterSplitterMLEM | ( | Int_t | detElemId, |
TObjArray * | pixArray, | ||
Double_t | lowestPixelCharge, | ||
Double_t | lowestPadCharge, | ||
Double_t | lowestClusterCharge | ||
) |
Constructor
Definition at line 61 of file AliMUONClusterSplitterMLEM.cxx.
|
virtual |
Destructor
Definition at line 102 of file AliMUONClusterSplitterMLEM.cxx.
|
private |
will not be implemented
void AliMUONClusterSplitterMLEM::AddBin | ( | TH2 * | mlem, |
Int_t | ic, | ||
Int_t | jc, | ||
Int_t | mode, | ||
Bool_t * | used, | ||
TObjArray * | pix | ||
) |
Add a bin to the cluster
Definition at line 111 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Split().
void AliMUONClusterSplitterMLEM::AddCluster | ( | Int_t | ic, |
Int_t | nclust, | ||
TMatrixD & | aijcluclu, | ||
Bool_t * | used, | ||
Int_t * | clustNumb, | ||
Int_t & | nCoupled | ||
) |
Add a cluster to the group of coupled clusters
Definition at line 144 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Split().
TObject * AliMUONClusterSplitterMLEM::BinToPix | ( | TH2 * | mlem, |
Int_t | jc, | ||
Int_t | ic | ||
) |
Translate histogram bin to pixel
Definition at line 161 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by AddBin(), AliMUONClusterFinderMLEM::FindLocalMaxima(), and Split().
Float_t AliMUONClusterSplitterMLEM::ChargeIntegration | ( | Double_t | x, |
Double_t | y, | ||
const AliMUONPad & | pad | ||
) |
Compute the Mathieson integral on pad area, assuming the center of the Mathieson is at (x,y)
Definition at line 188 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by AliMUONClusterFinderMLEM::ComputeCoefficients(), Fcn1(), and UpdatePads().
void AliMUONClusterSplitterMLEM::Fcn1 | ( | const AliMUONCluster & | cluster, |
Int_t & | npar, | ||
Double_t * | gin, | ||
Double_t & | f, | ||
Double_t * | par, | ||
Int_t | iflag | ||
) |
Computes the functional to be minimized
Definition at line 203 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Fit().
Int_t AliMUONClusterSplitterMLEM::Fit | ( | const AliMUONCluster & | cluster, |
Int_t | iSimple, | ||
Int_t | nfit, | ||
const Int_t * | clustFit, | ||
TObjArray ** | clusters, | ||
Double_t * | parOk, | ||
TObjArray & | clusterList, | ||
TH2 * | mlem | ||
) |
Steering function and fitting procedure for the fit of pad charge distribution
Definition at line 260 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by AliMUONClusterFinderMLEM::Simple(), and Split().
void AliMUONClusterSplitterMLEM::Merge | ( | const AliMUONCluster & | cluster, |
Int_t | nForFit, | ||
Int_t | nCoupled, | ||
const Int_t * | clustNumb, | ||
const Int_t * | clustFit, | ||
TObjArray ** | clusters, | ||
TMatrixD & | aijcluclu, | ||
TMatrixD & | aijclupad | ||
) |
Merge the group of clusters with the one having the strongest coupling with them
Definition at line 1059 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Split().
Double_t AliMUONClusterSplitterMLEM::MinGroupCoupl | ( | Int_t | nCoupled, |
const Int_t * | clustNumb, | ||
const TMatrixD & | aijcluclu, | ||
Int_t * | minGroup | ||
) |
Find group of clusters with minimum coupling to all the others
Definition at line 1122 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Split().
|
private |
will not be implemented
|
private |
Extract hit contribution scale factor from fit parameters
Definition at line 247 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Fcn1(), Fit(), and UpdatePads().
Int_t AliMUONClusterSplitterMLEM::SelectPad | ( | const AliMUONCluster & | cluster, |
Int_t | nCoupled, | ||
Int_t | nForFit, | ||
const Int_t * | clustNumb, | ||
const Int_t * | clustFit, | ||
const TMatrixD & | aijclupad | ||
) |
Select pads for fit. If too many coupled clusters, find pads giving the strongest coupling with the rest of clusters and exclude them from the fit.
Definition at line 1206 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Split().
|
inline |
Set debug level.
Definition at line 80 of file AliMUONClusterSplitterMLEM.h.
Referenced by AliMUONClusterFinderMLEM::Prepare().
void AliMUONClusterSplitterMLEM::Split | ( | const AliMUONCluster & | cluster, |
TH2 * | mlem, | ||
Double_t * | coef, | ||
TObjArray & | clusterList | ||
) |
The main steering function to work with clusters of pixels in anode plane (find clusters, decouple them from each other, merge them (if necessary), pick up coupled pads, call the fitting function)
Definition at line 784 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by AliMUONClusterFinderMLEM::MainLoop().
void AliMUONClusterSplitterMLEM::UpdatePads | ( | const AliMUONCluster & | cluster, |
Int_t | nfit, | ||
Double_t * | par | ||
) |
Subtract the fitted charges from pads with strong coupling
Definition at line 1275 of file AliMUONClusterSplitterMLEM.cxx.
Referenced by Split().
|
private |
! debug level
Definition at line 99 of file AliMUONClusterSplitterMLEM.h.
Referenced by Fit(), SetDebug(), and Split().
|
private |
! detection element we are working on
Definition at line 95 of file AliMUONClusterSplitterMLEM.h.
Referenced by Fit().
|
staticprivate |
threshold on coupling
Definition at line 91 of file AliMUONClusterSplitterMLEM.h.
Referenced by AddCluster(), SelectPad(), and Split().
|
private |
! minimum allowed cluster charge
Definition at line 103 of file AliMUONClusterSplitterMLEM.h.
Referenced by Fit().
|
private |
! minimum allowed pad charge
Definition at line 102 of file AliMUONClusterSplitterMLEM.h.
Referenced by UpdatePads().
|
private |
! minimum allowed pixel charge
Definition at line 101 of file AliMUONClusterSplitterMLEM.h.
Referenced by AddBin(), BinToPix(), and Split().
|
private |
! Mathieson
Definition at line 94 of file AliMUONClusterSplitterMLEM.h.
Referenced by ChargeIntegration(), and ~AliMUONClusterSplitterMLEM().
|
private |
! number of coupled pixels ?
Definition at line 98 of file AliMUONClusterSplitterMLEM.h.
|
private |
! number of fit parameters
Definition at line 96 of file AliMUONClusterSplitterMLEM.h.
Referenced by Fcn1(), Fit(), Param2Coef(), Split(), and UpdatePads().
|
private |
!
Definition at line 93 of file AliMUONClusterSplitterMLEM.h.
Referenced by AddBin(), BinToPix(), and Split().
|
private |
! total charge
Definition at line 97 of file AliMUONClusterSplitterMLEM.h.
Referenced by Fcn1(), Fit(), and UpdatePads().