LCOV - code coverage report
Current view: top level - MUON/MUONrec - AliMUONClusterSplitterMLEM.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 2 100.0 %
Date: 2016-06-14 17:26:59 Functions: 3 6 50.0 %

          Line data    Source code
       1             : #ifndef ALIMUONCLUSTERSPLITTERMLEM_H
       2             : #define ALIMUONCLUSTERSPLITTERMLEM_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             : * See cxx source for full Copyright notice                               */
       6             : 
       7             : // $Id$
       8             : 
       9             : /// \ingroup rec
      10             : /// \class AliMUONClusterSplitterMLEM
      11             : /// \brief Splitter class for the MLEM algorithm
      12             : /// 
      13             : //  Author Alexander Zinchenko, JINR Dubna; Laurent Aphecetche, SUBATECH
      14             : //
      15             : 
      16             : #ifndef ROOT_TObject
      17             : #  include "TObject.h"
      18             : #endif
      19             : 
      20             : #include "TMatrixDfwd.h"
      21             : 
      22             : class AliMUONCluster;
      23             : class TH2;
      24             : class TObjArray;
      25             : class AliMUONPad;
      26             : class AliMUONMathieson;
      27             : 
      28             : class AliMUONClusterSplitterMLEM : public TObject
      29             : {
      30             : public:
      31             :   AliMUONClusterSplitterMLEM(Int_t detElemId, TObjArray* pixArray, 
      32             :                              Double_t lowestPixelCharge,
      33             :                              Double_t lowestPadCharge,
      34             :                              Double_t lowestClusterCharge);
      35             :   
      36             :   virtual ~AliMUONClusterSplitterMLEM();
      37             : 
      38             :   void AddBin(TH2 *mlem, 
      39             :               Int_t ic, Int_t jc, Int_t mode, 
      40             :               Bool_t *used, TObjArray *pix);
      41             :   
      42             :   void AddCluster(Int_t ic, Int_t nclust, 
      43             :                   TMatrixD& aijcluclu, 
      44             :                   Bool_t *used, Int_t *clustNumb, Int_t &nCoupled);
      45             :   
      46             :   TObject* BinToPix(TH2 *mlem, Int_t jc, Int_t ic);
      47             :   
      48             :   Float_t ChargeIntegration(Double_t x, Double_t y, const AliMUONPad& pad);
      49             :   
      50             :   void Fcn1(const AliMUONCluster& cluster, 
      51             :             Int_t & npar, Double_t * gin, 
      52             :             Double_t &f, Double_t *par, Int_t iflag);
      53             :   
      54             :   Int_t Fit(const AliMUONCluster& cluster,
      55             :             Int_t iSimple, Int_t nfit,
      56             :             const Int_t *clustFit, TObjArray **clusters, 
      57             :             Double_t *parOk, TObjArray& clusterList, TH2 *mlem);
      58             :     
      59             :   void Merge(const AliMUONCluster& cluster,
      60             :              Int_t nForFit, Int_t nCoupled, 
      61             :              const Int_t *clustNumb, const Int_t *clustFit, 
      62             :              TObjArray **clusters, 
      63             :              TMatrixD& aijcluclu, TMatrixD& aijclupad);
      64             :     
      65             :   Double_t MinGroupCoupl(Int_t nCoupled, const Int_t *clustNumb, 
      66             :                          const TMatrixD& aijcluclu, Int_t *minGroup);
      67             :       
      68             :   Int_t SelectPad(const AliMUONCluster& cluster,
      69             :                   Int_t nCoupled, Int_t nForFit, 
      70             :                   const Int_t *clustNumb, const Int_t *clustFit, 
      71             :                   const TMatrixD& aijclupad);
      72             :   
      73             :   void Split(const AliMUONCluster& cluster,
      74             :                TH2* mlem,
      75             :                Double_t* coef, TObjArray& clusterList);
      76             :   
      77             :   
      78             :   void UpdatePads(const AliMUONCluster& cluster, Int_t nfit, Double_t *par);
      79             :   /// Set debug level
      80         288 :   void SetDebug (Int_t debug) { fDebug = debug; }
      81             : 
      82             : private:
      83             :   /// will not be implemented
      84             :   AliMUONClusterSplitterMLEM(const AliMUONClusterSplitterMLEM&);
      85             :   /// will not be implemented
      86             :   AliMUONClusterSplitterMLEM& operator=(const AliMUONClusterSplitterMLEM&);
      87             :   Double_t Param2Coef(Int_t icand, Double_t coef, Double_t *par) const;
      88             : 
      89             : private:
      90             :   
      91             :     static const Double_t fgkCouplMin; ///< threshold on coupling 
      92             : 
      93             :   TObjArray* fPixArray; //!<! \todo add comment
      94             :   AliMUONMathieson* fMathieson; //!<! Mathieson
      95             :   Int_t fDetElemId; //!<! detection element we are working on
      96             :   Int_t fNpar; //!<! number of fit parameters
      97             :   Double_t fQtot; //!<! total charge
      98             :   Int_t fnCoupled; //!<! number of coupled pixels ?
      99             :   Int_t fDebug; //!<! debug level
     100             :   
     101             :   Double_t fLowestPixelCharge; //!<! minimum allowed pixel charge
     102             :   Double_t fLowestPadCharge; //!<! minimum allowed pad charge
     103             :   Double_t fLowestClusterCharge; //!<! minimum allowed cluster charge
     104             : 
     105         346 :   ClassDef(AliMUONClusterSplitterMLEM,2) // Splitter of clusters
     106             : };
     107             : 
     108             : #endif

Generated by: LCOV version 1.11