ROOT logo
#ifndef HMDC34CLFINDER_H
#define HMDC34CLFINDER_H

#include "TObject.h"
#include "hlocation.h"
#include "hmdclistgroupcells.h"
#include "hmdclistcells.h"
#include "hmdcgeomobj.h"
#include "hparset.h"
#include "hgeomvector.h"
#include "hmdckickplane.h"
#include "TCutG.h"

class HMdcClus;
class HMdcSeg;
class TH2C;
class HMdcGetContainers;
class HSpecGeomPar;
class HMdcSizesCells;
class HMdcGeomPar;
class HCategory;
class HMdcClFnStack;
class HMdcClFnStacksArr;
class HMdcClustersArrs;
class HMdcCluster;
class HMdcDriftTimeParSec;
class HMdcSizesCellsLayer;
class HMdcClusMetaMatch;
class HMdcTrackParam;
class HMdcKickCor;

//-------Project Plot------------------------------
class HMdcProjPlot : public HMdcPlane {
  protected:
  public:
    Double_t  yMin,yMax;     // The sizes of the plot.
    Double_t  xMin,xMax;
    Double_t  xMinD,xMaxD;   // The small side of the MDC's proj.
    Short_t   nBinX;         //  num.bins along axis X (xMin-xMax)
    Double_t  stX;           //  step X = (xMax-xMin)/nBinX
    Short_t   nBinY;         //  num.bins along axis Y
    Double_t  stY;           //  step Y= (yMax-yMin)/nBinY
    Short_t*  xMinL;         // In units of bin X num.
    Short_t*  xMaxL;         //
    Short_t*  yMinL;         // yMaxL[nx]=nBinY-1
    Double_t* xBinsPos;      // Bins positions
    Double_t* yBinsPos;      //
    Float_t   xFirstBin;     // = xBinsPos[0]
    Float_t   yFirstBin;     // = yBinsPos[0]

    Int_t     size;                // The size of the plModF[] and plModS[]
    static UChar_t* weights;       // array of pr.plot bins weights
    static UChar_t* weights3;      // - first half "weights" array
    static UChar_t* weights4;      // - second half "weights" array
    static Int_t    wtArrSize;     // weights array size
    static UChar_t  nBitsLuTb[64];

    TH2C*     rootPlot;

  public:
    HMdcProjPlot(UChar_t mSeg, Int_t inBinX, Int_t inBinY);
    ~HMdcProjPlot();
    void      setEdges(Double_t iyMin, Double_t ixMinD, Double_t ixMaxD,
                      Double_t iyMax, Double_t ixMin,  Double_t ixMax);
    void      print(void);
    Int_t     xbin(Int_t bin) const        {return bin%nBinX;}
    Int_t     ybin(Int_t bin) const        {return bin/nBinX;}
    Double_t  xBnPos(Int_t bin) const      {return xBinsPos[bin%nBinX];}
    Double_t  yBnPos(Int_t bin) const      {return yBinsPos[bin/nBinX];}
    Short_t   binX(Double_t x) const       {return Short_t((x-xMin)/stX);}
    Short_t   binY(Double_t y) const       {return Short_t((y-yMin)/stY);}
    void      calcCrossBin(const HGeomVector &r,const HGeomVector &dir,Short_t& xb,Short_t& yb) const;
    TH2C*     getPlot(Char_t* name, Char_t* title);
    UChar_t   binAmplitude(Int_t nb) const {return nBitsLuTb[weights3[nb]]+nBitsLuTb[weights4[nb]];}
    void      clearBin(Int_t nb)           {weights3[nb] = weights4[nb]=0;}
    inline UChar_t getBinAmplAndClear(Int_t nb);

  protected:
    HMdcProjPlot(void) {}

    ClassDef(HMdcProjPlot,0)
};

inline UChar_t HMdcProjPlot::getBinAmplAndClear(Int_t nb) {
  UChar_t amp  = nBitsLuTb[weights3[nb]];
  weights3[nb] = 0;
  amp         += nBitsLuTb[weights4[nb]];
  weights4[nb] = 0;
  return amp;
}

//-------Layer-----------------------------
class HMdc34ClFinderLayer: public TObject {
  protected:
  public:
    UChar_t  module;             // For diagnostic print is used only
    UChar_t  layer;              // For diagnostic print is used only
    HMdcSizesCellsLayer *pSCLay;

    // Projection of wire (one for all wires in layer):
    HMdcLayListCells* cells;     // list of fired wires
    Int_t    nCells;             // num.of cells in layer
    Short_t  nBinX;              // projection of wire (one for layer)
    Short_t* yBin;               // Y bins for X bins  0 - nBinX
    Int_t    yFirst;             // yFirst=yBin[0] or [nBinx-1]
    Int_t    nYLines;            // num. of lines
    Int_t    wOrType;            // wires orientation type
    Short_t* xBin1;              // size of xBin array = nYLines + 1
    Short_t* xBin2;              // size of xBin array = nYLines + 1
    Double_t tgY;                // (y1-y2)/(x1-x2) one for all cells
    Double_t tgZ;                // (z1-z2)/(x1-x2) one for all cells
    Double_t y0[2];              // If x,y,z - point on the kick plane, then:
    Double_t z0[2];              // y'=tgY*x+nCell*yStep+y0[n] n=0 left rib (nearest to tag)
                                 // z'=tgZ*x+nCell*zStep+z0[n] n=1 right rib
    Double_t yStep;              //
    Double_t zStep;              //
    Int_t    nPSegOnKick[2][2];  // first index [0]-up rib; [1]-down rib;
                                 // second index [0]-left rib; [1]-right rib;
    Double_t maxDrDist;          // max. drift distance
    Double_t y0w;                // As y0[] but for wire
    Double_t z0w;                // As z0[] but for wire
    Double_t xWirDir;            // Wire vector (not nomalized)
    Double_t yWirDir;            //
    Double_t zWirDir;            //
    
    // For MdcKickCor:
    Double_t yCross;             // For MDCIV is filled and used only!
    
    // Parameters of layer second part:
    UChar_t              layerPart;     // layer part numer (0,1,...)
    Int_t                nextPartFCell; // First cell of the layer next part
    HMdc34ClFinderLayer *layerNextPart;

  public:
    HMdc34ClFinderLayer(Int_t sec, Int_t mod, Int_t lay);
    HMdc34ClFinderLayer(HMdc34ClFinderLayer& prevPart);
    ~HMdc34ClFinderLayer();
    Bool_t createArrayBins(Short_t nBins);
    void   setCellsList(HMdcLayListCells& event) {cells = &event;}
    HMdc34ClFinderLayer* nextLayerPart(Int_t nPartFCell);
    HMdc34ClFinderLayer* getLayerPart(Int_t c);
    Bool_t calcWiresProj(HMdcSizesCellsLayer& fSCellsLay,HGeomVector& pKick,
                         HMdcProjPlot* prPlotSeg2,Int_t firstCell);

    ClassDef(HMdc34ClFinderLayer,0)
};

//-------Mod.-----------------------------

class HMdc34ClFinderMod : public TObject {
  protected:
    TObjArray* array;
  public:
    HMdc34ClFinderMod(Int_t sec, Int_t mod);
    ~HMdc34ClFinderMod();
    HMdc34ClFinderLayer& operator[](Int_t i) {
        return *static_cast<HMdc34ClFinderLayer*>((*array)[i]);
    }
    Int_t getNCells(void);
    void  setCellsList(HMdcModListCells& event);
        
    ClassDef(HMdc34ClFinderMod,0)
};

//-------Sec.------------------------------
class HMdc34ClFinderSec : public TObject {
  protected:
    TObjArray*            array;            // array of HMdc34ClFinderMod objects
    Int_t                 sector;
    HMdcClusMetaMatch    *pMetaMatch;       // !=NULL - do meta matching cut
    Int_t                 lMods[4];         // list of mdc's
    UChar_t               mSeg[2];          // mSeg[0,1] -segment 0,1
    HMdcKickPlane        *fkick;
    HGeomVector           target[2];        // Target in sec.coor.sys.
    HMdcProjPlot         *prPlotSeg2;       // pr.plot of MDC3-4
    HGeomVector           seg1;             // [0-3] -region, [4] - hit
    HGeomVector           dirSeg1;          // directions
    HGeomVector           segRegOnKick[4];  // region of HMdcSeg-hit on the kickpl.
    HGeomVector           segOnKick;        // cross point of inner segment with kickplane
    HGeomVector           errSegOnKick;     // error of segOnKick
    Double_t              al[4];
    Double_t              bl[4];
    Double_t              cl[4];
    Int_t                 nbX[4];

    Int_t                 minAmp[4];        // minAmp[2]-mdc3, minAmp[3]-mdc4
    Int_t                 maxAmp[4];        // number of fired layes in MDC's
    Bool_t                notEnoughWrs;     // =kTRUE - not enough fired wires

    Int_t                 nearbyBins[8];    // Lookuptab. for finding of nearby bins
    HMdcClFnStack        *stack;            // stack
    HMdcClFnStacksArr    *stacksArr;        // array of stacks

    Short_t              *xMinClLines;
    Short_t              *xMaxClLines;
    Int_t                 nLMinCl;
    Int_t                 nLMaxCl;
    Bool_t                isClstrInited;    // flag for "clus" object

    Int_t                 indexPar;         // Index parent track
    Int_t                 indexFCh;         // Index first child
    Int_t                 indexLCh;         // Index last child

    Int_t                *xCMin;            // for cleaning proj. plots
    Int_t                *xCMax;            //
    HMdc34ClFinderMod    *cFMod;            // current module
    HMdc34ClFinderLayer  *cFLay;            // current layer
    Int_t                 nBinX;            // X size of plot

    Int_t                 module;           // var. for making layers proj.
    Int_t                 cell;             // var. for making layers proj.
    Int_t                 layInd;           // = (module-2)*6 + layer;
    Double_t              tdcTDist;         //
    Int_t                 nBinYM2;          //
    Int_t                 shUp;             //
    Int_t                 shDown;           //
    Int_t                 nYLinesL;         //
    Short_t              *xBin1L;           //
    Short_t              *xBin2L;           //
    Int_t                 ny1;              //
    Int_t                 ny2;              //
    Short_t               nbL;              //
    Short_t               nbF;              //
    UInt_t                oneArrLay[6][4];
    UInt_t               *oneArr;
    UInt_t                bitsSetLay[6];    // Bits set for each layer (01010101h,02020202h,...)
    UInt_t                bitsSet;          // Bits set for current layer
    Short_t               sUAr[12][420];    // [(mod-2)*6 + layer][210*2]
    Short_t               sDAr[12][420];    //
    Short_t               cNum[12][420];    //
    HMdc34ClFinderLayer  *pLayPar[12][420]; //
    Int_t                 nPRg[12];         // number of filled elements in arrays
    Short_t              *shUpArr;          // = sUAr[layer_index][region]
    Short_t              *shDnArr;          // = sDAr[layer_index][region]
    Short_t              *cellNum;          // = cNum[layer_index][region]
    Int_t                *numPrRegs;        // = &(nPRg[layer_index])
    HMdc34ClFinderLayer **cFLayArr;         // = pLayPar[layer_index]
    Int_t                 regInd;           // current index in arrayss
    Int_t                 shDownMax;        // to prevent to fill one bin twice from one layer
    UChar_t              *weightsArr;       // current array of bin weights
    UChar_t               seg2MinAmpCut;    // current amp.cut
    HMdcSecListCells     *pListCells;       // list of fired wires in current event

    HCategory            *fClusCat;
    HLocation             locClus;
    Bool_t                isGeant;

    // -- Clusters parameters ---     
    Int_t                 typeClFinder;     // <2 - cl.finding cut for each mdc
                                            // =2  - cl.finding cut for two mdc
    Int_t                 realTypeClFinder; // =2,3 or 0
    
    HMdcClustersArrs     *pClustersArrs;    // clusters arraies
    Int_t                 clusArrSize;      // size of clusArr,clusArrM1,clusArrM2
    HMdcCluster          *clusArr;          // array of clusters parameters
    Int_t                 nClsArr;          // counter of clusters in array pClustersArrs
    HMdcCluster          *cluster;          // current cluster

    HMdcDriftTimeParSec  *pDriftTimeParSec;
    Double_t              dDistCut;         // Cut:  dDist < dDistCut*dDCutCorr[mod][lay]
    Double_t              dDistYCorr;       // Cut correction for y-bins
    Double_t              dDCutCorr[12];    // Correction for layer cut
    Bool_t                useDriftTime;     //
    // Cut for track kick:
    Char_t                useDxDyCut;       //
    TCutG                 cutDxDyArr[36];   // 36 regions of cut
    struct DxDyBinsCut {
      Short_t xBMin;
      Short_t xBMax;
    };
    DxDyBinsCut*          cutXBins[36];     // 36 - number of regions
    Short_t               nYLinesInCut[36];
    Short_t               yLineMin[36];
    Short_t               yLineMax[36];
    Double_t              x0;               // Coor. of cross point of inner segment/cluster
    Double_t              y0;               // with PrPlotSeg2.
    Short_t               xBin0;            // Bin number which cross current
    Short_t               yBin0;            // inner segment/cluster on PrPlotSeg2.
    Int_t                 dXdYCutReg;       // Cut region number (0-8)
    Int_t                 yMinDxDyCut;      // In project plot bins
    Int_t                 yMaxDxDyCut;      // In project plot bins
    Int_t                 yBinToDxDyInd;    // = yBin0+yLineMin[dXdYCutReg]
    
    // Parameters of ghosts removing:
    Char_t                fakeSuppFlag;     // 0-don't do; 1-do; 2-set flag only (don't remove obj.)
    Int_t                 wLev;             // weight of cluster finder level
    Int_t                 wBin;             // weight of bins number in cluster
    Int_t                 wLay;             // weight of cluster amplitude
    Int_t                 dWtCut;           // cut
    
    HMdcKickCor          *pKickCor;

  protected:
    HMdc34ClFinderSec(void) : cFLayArr(NULL) {}
    ~HMdc34ClFinderSec();
    void     makeModS2Plot(Int_t mod);
    void     makeSeg2PlotAmpCut(void);
    Int_t    calcYbin(Int_t upDo,Int_t leRi,Int_t c);
    Int_t    scanPlotSeg2(void);
    Bool_t   calcClusterSeg2FixedLevel(Int_t nBin,UChar_t amp);
    Bool_t   calcClusterSeg2FloatLevel(Int_t nBin,UChar_t amp);
    Bool_t   fillClusterSeg2(void);
    Int_t    findClustersSeg2(void);
    void     initCluster(Int_t nBin,UChar_t amp);
    void     reinitCluster(Int_t nBin,UChar_t amp);
    void     addBinInCluster(Int_t nBin,UChar_t wt);
    Bool_t   increaseClusterNum(void);
    void     mergeClustSeg2(void);
    Int_t    fillClusCat(void);
    Bool_t   calcLayerProjVar(Int_t lay);
    Bool_t   setRegionVar(void);
    void     makeLayProjV1(void);
    void     makeLayProjV2(void);
    void     clearPrSeg2(void);
    Bool_t   testMaxAmp(void);
    void     calcYbinDrTm(Double_t dDCutYCellCorr);
    void     setArrays(Int_t lay);
    void     calcDriftDist(void);
    Double_t calcKickCor(void);
    void     removeGhosts(void);
    void     checkMetaMatch(void);
    void     setFirstLayerPart(Int_t c);
    void     setLayerPart(Int_t c);
    Bool_t   calcXBinsCut(Int_t nReg, TCutG& cutDxDy);
    Int_t    calcCrosses(TCutG &cutDxDy,Double_t yb,DxDyBinsCut& cutB);
    inline void fillBins(Int_t ny);

  public:
    HMdc34ClFinderMod& operator[](Int_t i) {
        return *static_cast<HMdc34ClFinderMod*>((*array)[i]);
    }
    void     clear(void);
    void     setMinBin(Int_t *mBin);
    Bool_t   notEnoughWires(void) const            {return notEnoughWrs;}
//    Int_t    findClustersSeg2(HMdcSeg* fSeg,HMdcClus* pClus,Int_t *mBin=0);
    Int_t    findClustersSeg2(HMdcClus* pClus,Int_t *mBin=0);
    Int_t    findClustersSeg2(HMdcTrackParam *tSeg1, HMdcClus* pClus,Int_t *mBin=0);
    TH2C*    getPlot(Char_t* name,Char_t* title,Int_t ver=0);
    HMdcProjPlot* getPlotSeg2(void)                {return prPlotSeg2;}

    Int_t    getNBinX(void)                        {return prPlotSeg2->nBinX;}
    Int_t    getNBinY(void)                        {return prPlotSeg2->nBinY;}
    void     setTargetF(const HGeomVector& vec)    {target[0]=vec;}
    void     setTargetL(const HGeomVector& vec)    {target[1]=vec;}
    const    HGeomVector& getTargetF(void)         {return target[0];}
    const    HGeomVector& getTargetL(void)         {return target[1];}
    void     setTypeClFinder(Int_t type)           {typeClFinder=type;}
    Int_t    getTypeClFinder(void)                 {return typeClFinder;} 
    void     setCellsList(HMdcSecListCells& event);
    
    HMdc34ClFinderSec(Int_t sec, Int_t inBinX, Int_t inBinY);
    HGeomVector* getTargetArr(void)                {return target;}
    UChar_t *getMSeg(void)                         {return mSeg;}
    void     setClusCut(HCategory* pClCat)         {fClusCat    = pClCat;}
    void     setKickPlane(HMdcKickPlane* pkick)    {fkick       = pkick;}
    void     setXMinClLines(Short_t* xMin)         {xMinClLines = xMin;}
    void     setXMaxClLines(Short_t* xMax)         {xMaxClLines = xMax;}
    void     setClFnStack(HMdcClFnStack* pst)      {stack       = pst;}
    void     setClFnStArr(HMdcClFnStacksArr* psa)  {stacksArr   = psa;}
    Int_t    mdcFlag(Int_t m)                      {return lMods[m];}
    void     doMetaMatch(HMdcClusMetaMatch* pMM)   {pMetaMatch  = pMM;}
    Bool_t   setDxDyCut(TCutG* cutR);
    void     setFakeSupprFlag(Char_t fl)           {fakeSuppFlag = fl;}
    void     resetCounter(void)                    {} //nClsArr = 0;}

     void    setKickCorr(HMdcKickCor *p)           {pKickCor     = p;}
           
    ClassDef(HMdc34ClFinderSec,0)
};

//----------------------------------------------------------
class HMdc34ClFinder : public HParSet {
  protected:
    static HMdc34ClFinder* fMdc34ClFinder;
    TObjArray*             array;           // array of HMdc34ClFinderSec objects
    HMdcGetContainers*     fGetCont;
    HSpecGeomPar*          fSpecGeomPar;
    HMdcSizesCells*        fSizesCells;
    HMdcKickPlane          kickPlane;
    HMdcGeomPar*           fMdcGeomPar;
    HCategory*             fMdcClusCat;
    Short_t*               xMinClLines;
    Short_t*               xMaxClLines;
    HMdcClFnStack*         stack;           // stack
    HMdcClFnStacksArr*     stacksArr;       // array of stacks
    static Bool_t          quietMode;
    HMdcClusMetaMatch*     pMetaMatch;      // !=NULL - do meta matching cut
    
    TCutG                  cutDxDyArr[36];  // 36 regions of cut
    Bool_t                 useDxDyCut;      //
    
    Bool_t                 useKickCor;      // kTRUE - use correction from HMdcKickCor class
    HMdcKickCor           *pKickCor;
    
  public:
    static HMdc34ClFinder* getExObject(void);
    static HMdc34ClFinder* getObject(void);
    static void            deleteCont(void);
    static void            setQuietMode(Bool_t quiet) {quietMode=quiet;}
    static Bool_t          getQuietMode()             {return quietMode;}
    HMdc34ClFinderSec& operator[](Int_t i) {
      return *static_cast<HMdc34ClFinderSec*>((*array)[i]);
    }
    Bool_t init(HParIo* input,Int_t* set)             {return kTRUE;}
    Bool_t initContainer(HMdcEvntListCells& event);
    void   setCellsList(HMdcEvntListCells& event);
    void   clear(void);
    void   doMetaMatch(HMdcClusMetaMatch* pMM)        {pMetaMatch = pMM;}
    static Int_t calcDxDyCutRegion(const HGeomVector& pnt);
    void   printClFinderParam(void);
    
  protected:
    HMdc34ClFinder(const Char_t* name    = "Mdc34ClFinder",
                   const Char_t* title   = "Cluster finder for outer MDCs",
                   const Char_t* context = "");
    ~HMdc34ClFinder();
    Bool_t   calcTarget(Int_t sec);
    Bool_t   calcProjPlaneSeg2(Int_t sec);
    Bool_t   calcSizePlotSeg2(Int_t sec);
    Bool_t   calcWiresProj(Int_t sec);
    void     calcCrossLines(HGeomVector& p1l1, HGeomVector& p2l1,
                            HGeomVector& p1l2, HGeomVector& p2l2,HGeomVector& cross);
    Double_t xLine(HGeomVector& p1, HGeomVector& p2, Double_t yi);

    ClassDef(HMdc34ClFinder,0)
};

// inline void HMdc34ClFinderSec::fillBins(Int_t ny) {
// //   UChar_t* wt    = weightsArr + nBinX*ny;
// //   UChar_t* wtEnd = wt + nbL;
// //   for(wt+=nbF; wt<=wtEnd; wt++) (*wt)++; // From one layer only once !!!
//   
//   Int_t   nb    = nbL-nbF+1;
//   Int_t   nbR   = nb&3; // = nb%4;
//   UInt_t* wt4    = (UInt_t*)(weightsArr+nbF + ny*nBinX); //wt;
//   UInt_t* wt4Max = wt4 + (nb>>2); //((nbL-nbF+1)>>2);
//   for(; wt4<wt4Max; wt4++) (*wt4) += 16843009; // += 01010101h
// /*  if(nbR>0)*/ (*wt4) += oneArr[nbR];
// }

inline void HMdc34ClFinderSec::fillBins(Int_t ny) {
//   UChar_t* wt    = weightsArr + nBinX*ny;
//   UChar_t* wtEnd = wt + nbL;
//   for(wt+=nbF; wt<=wtEnd; wt++) (*wt)++; // From one layer only once !!!
  
  Int_t   nb    = nbL-nbF+1;
  Int_t   nbR   = nb&3; // = nb%4;
  UInt_t* wt4    = (UInt_t*)(weightsArr+nbF + ny*nBinX); //wt;
  UInt_t* wt4Max = wt4 + (nb>>2); //((nbL-nbF+1)>>2);
  for(; wt4<wt4Max; wt4++) (*wt4) |= bitsSet;
/*  if(nbR>0)*/ (*wt4) |= oneArr[nbR];
}

#endif  /*!HMDC34CLFINDER_H*/
 hmdc34clfinder.h:1
 hmdc34clfinder.h:2
 hmdc34clfinder.h:3
 hmdc34clfinder.h:4
 hmdc34clfinder.h:5
 hmdc34clfinder.h:6
 hmdc34clfinder.h:7
 hmdc34clfinder.h:8
 hmdc34clfinder.h:9
 hmdc34clfinder.h:10
 hmdc34clfinder.h:11
 hmdc34clfinder.h:12
 hmdc34clfinder.h:13
 hmdc34clfinder.h:14
 hmdc34clfinder.h:15
 hmdc34clfinder.h:16
 hmdc34clfinder.h:17
 hmdc34clfinder.h:18
 hmdc34clfinder.h:19
 hmdc34clfinder.h:20
 hmdc34clfinder.h:21
 hmdc34clfinder.h:22
 hmdc34clfinder.h:23
 hmdc34clfinder.h:24
 hmdc34clfinder.h:25
 hmdc34clfinder.h:26
 hmdc34clfinder.h:27
 hmdc34clfinder.h:28
 hmdc34clfinder.h:29
 hmdc34clfinder.h:30
 hmdc34clfinder.h:31
 hmdc34clfinder.h:32
 hmdc34clfinder.h:33
 hmdc34clfinder.h:34
 hmdc34clfinder.h:35
 hmdc34clfinder.h:36
 hmdc34clfinder.h:37
 hmdc34clfinder.h:38
 hmdc34clfinder.h:39
 hmdc34clfinder.h:40
 hmdc34clfinder.h:41
 hmdc34clfinder.h:42
 hmdc34clfinder.h:43
 hmdc34clfinder.h:44
 hmdc34clfinder.h:45
 hmdc34clfinder.h:46
 hmdc34clfinder.h:47
 hmdc34clfinder.h:48
 hmdc34clfinder.h:49
 hmdc34clfinder.h:50
 hmdc34clfinder.h:51
 hmdc34clfinder.h:52
 hmdc34clfinder.h:53
 hmdc34clfinder.h:54
 hmdc34clfinder.h:55
 hmdc34clfinder.h:56
 hmdc34clfinder.h:57
 hmdc34clfinder.h:58
 hmdc34clfinder.h:59
 hmdc34clfinder.h:60
 hmdc34clfinder.h:61
 hmdc34clfinder.h:62
 hmdc34clfinder.h:63
 hmdc34clfinder.h:64
 hmdc34clfinder.h:65
 hmdc34clfinder.h:66
 hmdc34clfinder.h:67
 hmdc34clfinder.h:68
 hmdc34clfinder.h:69
 hmdc34clfinder.h:70
 hmdc34clfinder.h:71
 hmdc34clfinder.h:72
 hmdc34clfinder.h:73
 hmdc34clfinder.h:74
 hmdc34clfinder.h:75
 hmdc34clfinder.h:76
 hmdc34clfinder.h:77
 hmdc34clfinder.h:78
 hmdc34clfinder.h:79
 hmdc34clfinder.h:80
 hmdc34clfinder.h:81
 hmdc34clfinder.h:82
 hmdc34clfinder.h:83
 hmdc34clfinder.h:84
 hmdc34clfinder.h:85
 hmdc34clfinder.h:86
 hmdc34clfinder.h:87
 hmdc34clfinder.h:88
 hmdc34clfinder.h:89
 hmdc34clfinder.h:90
 hmdc34clfinder.h:91
 hmdc34clfinder.h:92
 hmdc34clfinder.h:93
 hmdc34clfinder.h:94
 hmdc34clfinder.h:95
 hmdc34clfinder.h:96
 hmdc34clfinder.h:97
 hmdc34clfinder.h:98
 hmdc34clfinder.h:99
 hmdc34clfinder.h:100
 hmdc34clfinder.h:101
 hmdc34clfinder.h:102
 hmdc34clfinder.h:103
 hmdc34clfinder.h:104
 hmdc34clfinder.h:105
 hmdc34clfinder.h:106
 hmdc34clfinder.h:107
 hmdc34clfinder.h:108
 hmdc34clfinder.h:109
 hmdc34clfinder.h:110
 hmdc34clfinder.h:111
 hmdc34clfinder.h:112
 hmdc34clfinder.h:113
 hmdc34clfinder.h:114
 hmdc34clfinder.h:115
 hmdc34clfinder.h:116
 hmdc34clfinder.h:117
 hmdc34clfinder.h:118
 hmdc34clfinder.h:119
 hmdc34clfinder.h:120
 hmdc34clfinder.h:121
 hmdc34clfinder.h:122
 hmdc34clfinder.h:123
 hmdc34clfinder.h:124
 hmdc34clfinder.h:125
 hmdc34clfinder.h:126
 hmdc34clfinder.h:127
 hmdc34clfinder.h:128
 hmdc34clfinder.h:129
 hmdc34clfinder.h:130
 hmdc34clfinder.h:131
 hmdc34clfinder.h:132
 hmdc34clfinder.h:133
 hmdc34clfinder.h:134
 hmdc34clfinder.h:135
 hmdc34clfinder.h:136
 hmdc34clfinder.h:137
 hmdc34clfinder.h:138
 hmdc34clfinder.h:139
 hmdc34clfinder.h:140
 hmdc34clfinder.h:141
 hmdc34clfinder.h:142
 hmdc34clfinder.h:143
 hmdc34clfinder.h:144
 hmdc34clfinder.h:145
 hmdc34clfinder.h:146
 hmdc34clfinder.h:147
 hmdc34clfinder.h:148
 hmdc34clfinder.h:149
 hmdc34clfinder.h:150
 hmdc34clfinder.h:151
 hmdc34clfinder.h:152
 hmdc34clfinder.h:153
 hmdc34clfinder.h:154
 hmdc34clfinder.h:155
 hmdc34clfinder.h:156
 hmdc34clfinder.h:157
 hmdc34clfinder.h:158
 hmdc34clfinder.h:159
 hmdc34clfinder.h:160
 hmdc34clfinder.h:161
 hmdc34clfinder.h:162
 hmdc34clfinder.h:163
 hmdc34clfinder.h:164
 hmdc34clfinder.h:165
 hmdc34clfinder.h:166
 hmdc34clfinder.h:167
 hmdc34clfinder.h:168
 hmdc34clfinder.h:169
 hmdc34clfinder.h:170
 hmdc34clfinder.h:171
 hmdc34clfinder.h:172
 hmdc34clfinder.h:173
 hmdc34clfinder.h:174
 hmdc34clfinder.h:175
 hmdc34clfinder.h:176
 hmdc34clfinder.h:177
 hmdc34clfinder.h:178
 hmdc34clfinder.h:179
 hmdc34clfinder.h:180
 hmdc34clfinder.h:181
 hmdc34clfinder.h:182
 hmdc34clfinder.h:183
 hmdc34clfinder.h:184
 hmdc34clfinder.h:185
 hmdc34clfinder.h:186
 hmdc34clfinder.h:187
 hmdc34clfinder.h:188
 hmdc34clfinder.h:189
 hmdc34clfinder.h:190
 hmdc34clfinder.h:191
 hmdc34clfinder.h:192
 hmdc34clfinder.h:193
 hmdc34clfinder.h:194
 hmdc34clfinder.h:195
 hmdc34clfinder.h:196
 hmdc34clfinder.h:197
 hmdc34clfinder.h:198
 hmdc34clfinder.h:199
 hmdc34clfinder.h:200
 hmdc34clfinder.h:201
 hmdc34clfinder.h:202
 hmdc34clfinder.h:203
 hmdc34clfinder.h:204
 hmdc34clfinder.h:205
 hmdc34clfinder.h:206
 hmdc34clfinder.h:207
 hmdc34clfinder.h:208
 hmdc34clfinder.h:209
 hmdc34clfinder.h:210
 hmdc34clfinder.h:211
 hmdc34clfinder.h:212
 hmdc34clfinder.h:213
 hmdc34clfinder.h:214
 hmdc34clfinder.h:215
 hmdc34clfinder.h:216
 hmdc34clfinder.h:217
 hmdc34clfinder.h:218
 hmdc34clfinder.h:219
 hmdc34clfinder.h:220
 hmdc34clfinder.h:221
 hmdc34clfinder.h:222
 hmdc34clfinder.h:223
 hmdc34clfinder.h:224
 hmdc34clfinder.h:225
 hmdc34clfinder.h:226
 hmdc34clfinder.h:227
 hmdc34clfinder.h:228
 hmdc34clfinder.h:229
 hmdc34clfinder.h:230
 hmdc34clfinder.h:231
 hmdc34clfinder.h:232
 hmdc34clfinder.h:233
 hmdc34clfinder.h:234
 hmdc34clfinder.h:235
 hmdc34clfinder.h:236
 hmdc34clfinder.h:237
 hmdc34clfinder.h:238
 hmdc34clfinder.h:239
 hmdc34clfinder.h:240
 hmdc34clfinder.h:241
 hmdc34clfinder.h:242
 hmdc34clfinder.h:243
 hmdc34clfinder.h:244
 hmdc34clfinder.h:245
 hmdc34clfinder.h:246
 hmdc34clfinder.h:247
 hmdc34clfinder.h:248
 hmdc34clfinder.h:249
 hmdc34clfinder.h:250
 hmdc34clfinder.h:251
 hmdc34clfinder.h:252
 hmdc34clfinder.h:253
 hmdc34clfinder.h:254
 hmdc34clfinder.h:255
 hmdc34clfinder.h:256
 hmdc34clfinder.h:257
 hmdc34clfinder.h:258
 hmdc34clfinder.h:259
 hmdc34clfinder.h:260
 hmdc34clfinder.h:261
 hmdc34clfinder.h:262
 hmdc34clfinder.h:263
 hmdc34clfinder.h:264
 hmdc34clfinder.h:265
 hmdc34clfinder.h:266
 hmdc34clfinder.h:267
 hmdc34clfinder.h:268
 hmdc34clfinder.h:269
 hmdc34clfinder.h:270
 hmdc34clfinder.h:271
 hmdc34clfinder.h:272
 hmdc34clfinder.h:273
 hmdc34clfinder.h:274
 hmdc34clfinder.h:275
 hmdc34clfinder.h:276
 hmdc34clfinder.h:277
 hmdc34clfinder.h:278
 hmdc34clfinder.h:279
 hmdc34clfinder.h:280
 hmdc34clfinder.h:281
 hmdc34clfinder.h:282
 hmdc34clfinder.h:283
 hmdc34clfinder.h:284
 hmdc34clfinder.h:285
 hmdc34clfinder.h:286
 hmdc34clfinder.h:287
 hmdc34clfinder.h:288
 hmdc34clfinder.h:289
 hmdc34clfinder.h:290
 hmdc34clfinder.h:291
 hmdc34clfinder.h:292
 hmdc34clfinder.h:293
 hmdc34clfinder.h:294
 hmdc34clfinder.h:295
 hmdc34clfinder.h:296
 hmdc34clfinder.h:297
 hmdc34clfinder.h:298
 hmdc34clfinder.h:299
 hmdc34clfinder.h:300
 hmdc34clfinder.h:301
 hmdc34clfinder.h:302
 hmdc34clfinder.h:303
 hmdc34clfinder.h:304
 hmdc34clfinder.h:305
 hmdc34clfinder.h:306
 hmdc34clfinder.h:307
 hmdc34clfinder.h:308
 hmdc34clfinder.h:309
 hmdc34clfinder.h:310
 hmdc34clfinder.h:311
 hmdc34clfinder.h:312
 hmdc34clfinder.h:313
 hmdc34clfinder.h:314
 hmdc34clfinder.h:315
 hmdc34clfinder.h:316
 hmdc34clfinder.h:317
 hmdc34clfinder.h:318
 hmdc34clfinder.h:319
 hmdc34clfinder.h:320
 hmdc34clfinder.h:321
 hmdc34clfinder.h:322
 hmdc34clfinder.h:323
 hmdc34clfinder.h:324
 hmdc34clfinder.h:325
 hmdc34clfinder.h:326
 hmdc34clfinder.h:327
 hmdc34clfinder.h:328
 hmdc34clfinder.h:329
 hmdc34clfinder.h:330
 hmdc34clfinder.h:331
 hmdc34clfinder.h:332
 hmdc34clfinder.h:333
 hmdc34clfinder.h:334
 hmdc34clfinder.h:335
 hmdc34clfinder.h:336
 hmdc34clfinder.h:337
 hmdc34clfinder.h:338
 hmdc34clfinder.h:339
 hmdc34clfinder.h:340
 hmdc34clfinder.h:341
 hmdc34clfinder.h:342
 hmdc34clfinder.h:343
 hmdc34clfinder.h:344
 hmdc34clfinder.h:345
 hmdc34clfinder.h:346
 hmdc34clfinder.h:347
 hmdc34clfinder.h:348
 hmdc34clfinder.h:349
 hmdc34clfinder.h:350
 hmdc34clfinder.h:351
 hmdc34clfinder.h:352
 hmdc34clfinder.h:353
 hmdc34clfinder.h:354
 hmdc34clfinder.h:355
 hmdc34clfinder.h:356
 hmdc34clfinder.h:357
 hmdc34clfinder.h:358
 hmdc34clfinder.h:359
 hmdc34clfinder.h:360
 hmdc34clfinder.h:361
 hmdc34clfinder.h:362
 hmdc34clfinder.h:363
 hmdc34clfinder.h:364
 hmdc34clfinder.h:365
 hmdc34clfinder.h:366
 hmdc34clfinder.h:367
 hmdc34clfinder.h:368
 hmdc34clfinder.h:369
 hmdc34clfinder.h:370
 hmdc34clfinder.h:371
 hmdc34clfinder.h:372
 hmdc34clfinder.h:373
 hmdc34clfinder.h:374
 hmdc34clfinder.h:375
 hmdc34clfinder.h:376
 hmdc34clfinder.h:377
 hmdc34clfinder.h:378
 hmdc34clfinder.h:379
 hmdc34clfinder.h:380
 hmdc34clfinder.h:381
 hmdc34clfinder.h:382
 hmdc34clfinder.h:383
 hmdc34clfinder.h:384
 hmdc34clfinder.h:385
 hmdc34clfinder.h:386
 hmdc34clfinder.h:387
 hmdc34clfinder.h:388
 hmdc34clfinder.h:389
 hmdc34clfinder.h:390
 hmdc34clfinder.h:391
 hmdc34clfinder.h:392
 hmdc34clfinder.h:393
 hmdc34clfinder.h:394
 hmdc34clfinder.h:395
 hmdc34clfinder.h:396
 hmdc34clfinder.h:397
 hmdc34clfinder.h:398
 hmdc34clfinder.h:399
 hmdc34clfinder.h:400
 hmdc34clfinder.h:401
 hmdc34clfinder.h:402
 hmdc34clfinder.h:403
 hmdc34clfinder.h:404
 hmdc34clfinder.h:405
 hmdc34clfinder.h:406
 hmdc34clfinder.h:407
 hmdc34clfinder.h:408
 hmdc34clfinder.h:409
 hmdc34clfinder.h:410
 hmdc34clfinder.h:411
 hmdc34clfinder.h:412
 hmdc34clfinder.h:413
 hmdc34clfinder.h:414
 hmdc34clfinder.h:415
 hmdc34clfinder.h:416
 hmdc34clfinder.h:417
 hmdc34clfinder.h:418
 hmdc34clfinder.h:419
 hmdc34clfinder.h:420
 hmdc34clfinder.h:421
 hmdc34clfinder.h:422
 hmdc34clfinder.h:423
 hmdc34clfinder.h:424
 hmdc34clfinder.h:425
 hmdc34clfinder.h:426
 hmdc34clfinder.h:427
 hmdc34clfinder.h:428
 hmdc34clfinder.h:429
 hmdc34clfinder.h:430
 hmdc34clfinder.h:431
 hmdc34clfinder.h:432
 hmdc34clfinder.h:433
 hmdc34clfinder.h:434
 hmdc34clfinder.h:435
 hmdc34clfinder.h:436
 hmdc34clfinder.h:437
 hmdc34clfinder.h:438
 hmdc34clfinder.h:439
 hmdc34clfinder.h:440
 hmdc34clfinder.h:441
 hmdc34clfinder.h:442
 hmdc34clfinder.h:443
 hmdc34clfinder.h:444
 hmdc34clfinder.h:445
 hmdc34clfinder.h:446
 hmdc34clfinder.h:447
 hmdc34clfinder.h:448
 hmdc34clfinder.h:449
 hmdc34clfinder.h:450
 hmdc34clfinder.h:451
 hmdc34clfinder.h:452
 hmdc34clfinder.h:453
 hmdc34clfinder.h:454