ROOT logo
#ifndef HMDCCLUSTERTOHIT_H
#define HMDCCLUSTERTOHIT_H

#include "hreconstructor.h"
#include "hlocation.h"
#include "hmdchitsegfiller.h"

class HCategory;
class HIterator;
class HMdcDetector;
class HMdcGetContainers;
class HMdcClus;
class HGeomVector;
class HMdcSeg;
class HMdcHit;
class HMdcTrkCand;
class HMdcSizesCells;
class HMdcClusInf;

class HMdcClusterToHit : public HReconstructor {
  private:
    HLocation          locHit;          // location for new "hit" object
    HLocation          locSeg;          // location for new "segment" object
    HLocation          loc;             // 
    HLocation          locTrkCand;      // location for new HMdcTrkCand object
    HCategory         *fHitCat;         // pointer to HMdcHit data category
    HCategory         *fSegCat;         // pointer to HMdcSeg data category
    HCategory         *fClusInfCat;     // pointer to HMdcSeg data category
    HCategory         *fTrkCandCat;     // pointer to HMdcTrkCand data category
    HIterator         *iter;
    HCategory         *fClustCat;       // pointer to Cluster data category
    HMdcDetector      *fMdcDet;
    HMdcGetContainers *fGetCont;
    HMdcSizesCells    *fSizesCells;
    HMdcClus          *fClst;
    Int_t              clusIndex;       // index of fClst in catMdcClus
    HMdcHit           *fHit;
    HMdcSeg           *fSeg;
    HMdcTrkCand       *fTrkCand;
    HMdcHitSegFiller   hitSegFiller;
    Bool_t             isGeant;
    Bool_t             slotNotAv;
    Int_t              tFillSeg[2];     // [0]-segment 1, [1]-segment 2
                                        // =-1 - don't fill HMdcSeg
                                        // =0,1 (2,3) - at the typeClustFinder=1
                                        // (see hmdctrackfinder.cc) HMdcSeg will filled
                                        // by hits from MDC1,MDC2 (MDC3,MDC4)
                                        // If in segment used only one MDC and tFillSeg=0,1
                                        // HMdcSeg will filled by Hit in this MDC.
    Int_t              nMdcs;           // Numb. mdc's in cluster
    Bool_t             prntSt;          // kTRUE - status printed already
    
  private:
    void         fillSeg(void);
    Bool_t       fillHit(Short_t mod);
    void         setParContainers(void);
    HMdcClusInf* fillClusInf(Int_t iMod);
    void         fillContainers(void);                        
    void         fillTrkCandISeg(Short_t sec,Int_t indexSeg); 
    void         fillTrkCandOSeg(Short_t sec,Int_t indexSeg); 
    void         fillTrkCandOSeg(Int_t indexSeg);             
  public:
    HMdcClusterToHit();
    HMdcClusterToHit(const Text_t *name,const Text_t *title);
    HMdcClusterToHit(Int_t fSeg1, Int_t fSeg2);
    HMdcClusterToHit(const Text_t *name,const Text_t *title,
                     Int_t fSeg1,Int_t fSeg2);
    ~HMdcClusterToHit(void);
    Bool_t       init(void);
    Bool_t       reinit(void);
    Bool_t       finalize(void) {return kTRUE;}
    Int_t        execute(void);
    void         printStatus(void);

  ClassDef(HMdcClusterToHit,0)
};

#endif
 hmdcclustertohit.h:1
 hmdcclustertohit.h:2
 hmdcclustertohit.h:3
 hmdcclustertohit.h:4
 hmdcclustertohit.h:5
 hmdcclustertohit.h:6
 hmdcclustertohit.h:7
 hmdcclustertohit.h:8
 hmdcclustertohit.h:9
 hmdcclustertohit.h:10
 hmdcclustertohit.h:11
 hmdcclustertohit.h:12
 hmdcclustertohit.h:13
 hmdcclustertohit.h:14
 hmdcclustertohit.h:15
 hmdcclustertohit.h:16
 hmdcclustertohit.h:17
 hmdcclustertohit.h:18
 hmdcclustertohit.h:19
 hmdcclustertohit.h:20
 hmdcclustertohit.h:21
 hmdcclustertohit.h:22
 hmdcclustertohit.h:23
 hmdcclustertohit.h:24
 hmdcclustertohit.h:25
 hmdcclustertohit.h:26
 hmdcclustertohit.h:27
 hmdcclustertohit.h:28
 hmdcclustertohit.h:29
 hmdcclustertohit.h:30
 hmdcclustertohit.h:31
 hmdcclustertohit.h:32
 hmdcclustertohit.h:33
 hmdcclustertohit.h:34
 hmdcclustertohit.h:35
 hmdcclustertohit.h:36
 hmdcclustertohit.h:37
 hmdcclustertohit.h:38
 hmdcclustertohit.h:39
 hmdcclustertohit.h:40
 hmdcclustertohit.h:41
 hmdcclustertohit.h:42
 hmdcclustertohit.h:43
 hmdcclustertohit.h:44
 hmdcclustertohit.h:45
 hmdcclustertohit.h:46
 hmdcclustertohit.h:47
 hmdcclustertohit.h:48
 hmdcclustertohit.h:49
 hmdcclustertohit.h:50
 hmdcclustertohit.h:51
 hmdcclustertohit.h:52
 hmdcclustertohit.h:53
 hmdcclustertohit.h:54
 hmdcclustertohit.h:55
 hmdcclustertohit.h:56
 hmdcclustertohit.h:57
 hmdcclustertohit.h:58
 hmdcclustertohit.h:59
 hmdcclustertohit.h:60
 hmdcclustertohit.h:61
 hmdcclustertohit.h:62
 hmdcclustertohit.h:63
 hmdcclustertohit.h:64
 hmdcclustertohit.h:65
 hmdcclustertohit.h:66
 hmdcclustertohit.h:67
 hmdcclustertohit.h:68
 hmdcclustertohit.h:69
 hmdcclustertohit.h:70
 hmdcclustertohit.h:71
 hmdcclustertohit.h:72
 hmdcclustertohit.h:73
 hmdcclustertohit.h:74
 hmdcclustertohit.h:75
 hmdcclustertohit.h:76
 hmdcclustertohit.h:77
 hmdcclustertohit.h:78