ROOT logo
#ifndef HKalInput_h
#define HKalInput_h

// from ROOT
#include "TObjArray.h"
#include "TVector3.h"

// from hydra
class HMdcSizesCells;
class HMdcTrackGFieldPar;
class HMagnetPar;
class HMdcTrkCand;
class HMdcTrkCandIdeal;
class HGeantKine;
class HGeantMdc;
class HMdcGetContainers;
class HMdcSeg;
class HMdcSegIdeal;
class HCategory;
#include "hiterator.h"
// from kalman
#include "hkaldetcradle.h"

class HKalInput : public TObject {

private:
    Bool_t bPrint;                          //! Debug prints.
    HMdcTrackGFieldPar *pField;             //!
    HMdcSizesCells     *fSizesCells;        //!
    HMagnetPar         *pMagnet;            //!
    HCategory          *geantMdcCat;        //!
    HCategory          *kineCat;            //!
    HCategory          *mdcCal1Cat;         //!
    HCategory          *mdcHitCat;          //!
    HCategory          *mdcTrkCandCat;      //!
    HCategory          *mdcSegCat;          //!
    HCategory          *mdcHitIdealCat;     //!
    HCategory          *mdcSegIdealCat;     //!
    HCategory          *mdcTrkCandIdealCat; //!
    HCategory          *metaMatchCat;       //!
    HIterator          *iterKine;           //!
    HIterator          *iterMdcTrkCand;     //!
    HIterator          *iterMdcTrkCandIdeal;//!
    HIterator          *iterMetaMatch;      //!
    HKalDetCradle      *pCradleHades;       //! Pointer to detector cradle.
    HMdcGetContainers  *mdcGetContainers;   //!

public:

    HKalInput();

    HKalInput(HKalDetCradle *detCradle);

    virtual ~HKalInput();

    static  void                calcSegPoints           (const HMdcSeg *seg, Double_t& x1,  Double_t& y1, Double_t& z1, Double_t& x2, Double_t& y2, Double_t& z2);

    virtual void                clearCategories         ();

    virtual void                getCategories           ();

    virtual void                resetIterKine           () { if(iterKine) iterKine->Reset(); }

    virtual void                resetIterMdcTrkCand     () { if(iterMdcTrkCand) iterMdcTrkCand->Reset(); }

    virtual void                resetIterMdcTrkCandIdeal() { if(iterMdcTrkCandIdeal) iterMdcTrkCandIdeal->Reset(); }

    virtual void                resetIterMetaMatch      () { if(iterMetaMatch) iterMetaMatch->Reset(); }

    virtual Bool_t              init                 (Int_t refID);

    virtual Bool_t              initBField           (Int_t refID);

    virtual Bool_t              initSizesCells       (Int_t refID);

    virtual HMdcSizesCells*     getSizesCells        ();

    virtual HMdcTrackGFieldPar* getGFieldPar         () { return pField; }

    virtual HMagnetPar*         getMagnetPar         () { return pMagnet; }

    virtual HMdcTrkCand*        nextMdcTrackCand     (TObjArray &allhits, Int_t measDim=2, Double_t scaleErr=1.);

    virtual HMdcTrkCand*        nextWireTrack        (TObjArray &allhits, Int_t minLayInSeg=5, Int_t minLayOutSeg=5);

    virtual HMdcTrkCand*        nextWireTrackNoComp  (TObjArray &allhits, Int_t minLayInSeg=5, Int_t minLayOutSeg=5);

    virtual HGeantKine*         getGeantKine         (const HMdcTrkCand *cand);

    virtual HGeantKine*         getGeantKine         (const HMdcTrkCandIdeal *cand);

    virtual void                getGeantMdcRawpoints (TObjArray &allhits, HGeantKine *kine, Bool_t midplane);

    virtual void                getPosAndDir         (TVector3 &pos, TVector3 &dir, HGeantMdc *geantMdc, Bool_t sectorCoord);

    virtual void                getMdcSegs           (const HMdcTrkCand *cand, HMdcSeg **segs);

    virtual void                getMdcSegs           (const HMdcTrkCandIdeal *cand, HMdcSegIdeal **segs);

    virtual void                setDetectorCradle    (HKalDetCradle *detCradle) { pCradleHades = detCradle; }
    virtual const HKalDetCradle* getDetectorCradle   () const { return pCradleHades ; }

    virtual void                setPrint             (Bool_t print) { bPrint = print; }

    ClassDef(HKalInput, 1)
};


#endif // HKalInput_h
 hkalinput.h:1
 hkalinput.h:2
 hkalinput.h:3
 hkalinput.h:4
 hkalinput.h:5
 hkalinput.h:6
 hkalinput.h:7
 hkalinput.h:8
 hkalinput.h:9
 hkalinput.h:10
 hkalinput.h:11
 hkalinput.h:12
 hkalinput.h:13
 hkalinput.h:14
 hkalinput.h:15
 hkalinput.h:16
 hkalinput.h:17
 hkalinput.h:18
 hkalinput.h:19
 hkalinput.h:20
 hkalinput.h:21
 hkalinput.h:22
 hkalinput.h:23
 hkalinput.h:24
 hkalinput.h:25
 hkalinput.h:26
 hkalinput.h:27
 hkalinput.h:28
 hkalinput.h:29
 hkalinput.h:30
 hkalinput.h:31
 hkalinput.h:32
 hkalinput.h:33
 hkalinput.h:34
 hkalinput.h:35
 hkalinput.h:36
 hkalinput.h:37
 hkalinput.h:38
 hkalinput.h:39
 hkalinput.h:40
 hkalinput.h:41
 hkalinput.h:42
 hkalinput.h:43
 hkalinput.h:44
 hkalinput.h:45
 hkalinput.h:46
 hkalinput.h:47
 hkalinput.h:48
 hkalinput.h:49
 hkalinput.h:50
 hkalinput.h:51
 hkalinput.h:52
 hkalinput.h:53
 hkalinput.h:54
 hkalinput.h:55
 hkalinput.h:56
 hkalinput.h:57
 hkalinput.h:58
 hkalinput.h:59
 hkalinput.h:60
 hkalinput.h:61
 hkalinput.h:62
 hkalinput.h:63
 hkalinput.h:64
 hkalinput.h:65
 hkalinput.h:66
 hkalinput.h:67
 hkalinput.h:68
 hkalinput.h:69
 hkalinput.h:70
 hkalinput.h:71
 hkalinput.h:72
 hkalinput.h:73
 hkalinput.h:74
 hkalinput.h:75
 hkalinput.h:76
 hkalinput.h:77
 hkalinput.h:78
 hkalinput.h:79
 hkalinput.h:80
 hkalinput.h:81
 hkalinput.h:82
 hkalinput.h:83
 hkalinput.h:84
 hkalinput.h:85
 hkalinput.h:86
 hkalinput.h:87
 hkalinput.h:88
 hkalinput.h:89
 hkalinput.h:90
 hkalinput.h:91
 hkalinput.h:92
 hkalinput.h:93
 hkalinput.h:94
 hkalinput.h:95
 hkalinput.h:96
 hkalinput.h:97
 hkalinput.h:98
 hkalinput.h:99
 hkalinput.h:100
 hkalinput.h:101
 hkalinput.h:102
 hkalinput.h:103
 hkalinput.h:104
 hkalinput.h:105
 hkalinput.h:106
 hkalinput.h:107
 hkalinput.h:108
 hkalinput.h:109