ROOT logo
#ifndef HKalDafSingleWire_h
#define HKalDafSingleWire_h

// from ROOT
#include "TArrayD.h"

// from hydra
class HCategory;
class HMdcTrackGField;

#include "hkalfiltwire.h"


class HKalDafSingleWire : public HKalFiltWire {

private:
    Double_t dafChi2Cut;     // Cut-off parameter for the annealing filter.
    TArrayD  dafT;           // Annealing factors ("temperatures") used in the DAF iterations.
    Int_t    wireNr;         // Index of wire measurement currently filtered (0 or 1)

protected:

    virtual Bool_t   calcEffErrMat        (Int_t iSite, Int_t iWire) const;

    virtual Bool_t   calcEffMeasVec       (Int_t iSite, Int_t iWire) const;

    virtual Int_t    getWireNr            ()            const { return wireNr; }

    virtual void     setWireNr            (Int_t w)     { wireNr = w; }

public:

    HKalDafSingleWire(Int_t nHits, Int_t measDim, Int_t stateDim, HMdcTrackGField *fMap, Double_t fpol);

    virtual ~HKalDafSingleWire() {}

    virtual Bool_t              fitTrack        (const TObjArray &hits, const TVectorD &iniSv,
                                                 const TMatrixD &iniCovMat, Int_t pId);

    virtual Double_t            getDafChi2Cut   () const           { return dafChi2Cut; }

    virtual const Double_t*     getDafT         () const           { return dafT.GetArray(); }

    virtual Bool_t              getDoDaf        () const           { return kTRUE; }

    virtual TMatrixD const&     getHitErrMat    (HKalTrackSite* const site) const;

    virtual TVectorD const&     getHitVec       (HKalTrackSite* const site) const;

    virtual Int_t               getNdafs        () const           { return dafT.GetSize(); }

    virtual Double_t            getNdf          () const;

    virtual void                setDafPars      (Double_t chi2cut, const Double_t *T, Int_t n);

    virtual void                updateSites(const TObjArray &hits);

    ClassDef(HKalDafSingleWire,0)
};

#endif // HKalDafSingleWire_h

 hkaldafsinglewire.h:1
 hkaldafsinglewire.h:2
 hkaldafsinglewire.h:3
 hkaldafsinglewire.h:4
 hkaldafsinglewire.h:5
 hkaldafsinglewire.h:6
 hkaldafsinglewire.h:7
 hkaldafsinglewire.h:8
 hkaldafsinglewire.h:9
 hkaldafsinglewire.h:10
 hkaldafsinglewire.h:11
 hkaldafsinglewire.h:12
 hkaldafsinglewire.h:13
 hkaldafsinglewire.h:14
 hkaldafsinglewire.h:15
 hkaldafsinglewire.h:16
 hkaldafsinglewire.h:17
 hkaldafsinglewire.h:18
 hkaldafsinglewire.h:19
 hkaldafsinglewire.h:20
 hkaldafsinglewire.h:21
 hkaldafsinglewire.h:22
 hkaldafsinglewire.h:23
 hkaldafsinglewire.h:24
 hkaldafsinglewire.h:25
 hkaldafsinglewire.h:26
 hkaldafsinglewire.h:27
 hkaldafsinglewire.h:28
 hkaldafsinglewire.h:29
 hkaldafsinglewire.h:30
 hkaldafsinglewire.h:31
 hkaldafsinglewire.h:32
 hkaldafsinglewire.h:33
 hkaldafsinglewire.h:34
 hkaldafsinglewire.h:35
 hkaldafsinglewire.h:36
 hkaldafsinglewire.h:37
 hkaldafsinglewire.h:38
 hkaldafsinglewire.h:39
 hkaldafsinglewire.h:40
 hkaldafsinglewire.h:41
 hkaldafsinglewire.h:42
 hkaldafsinglewire.h:43
 hkaldafsinglewire.h:44
 hkaldafsinglewire.h:45
 hkaldafsinglewire.h:46
 hkaldafsinglewire.h:47
 hkaldafsinglewire.h:48
 hkaldafsinglewire.h:49
 hkaldafsinglewire.h:50
 hkaldafsinglewire.h:51
 hkaldafsinglewire.h:52
 hkaldafsinglewire.h:53
 hkaldafsinglewire.h:54
 hkaldafsinglewire.h:55
 hkaldafsinglewire.h:56
 hkaldafsinglewire.h:57
 hkaldafsinglewire.h:58
 hkaldafsinglewire.h:59
 hkaldafsinglewire.h:60
 hkaldafsinglewire.h:61
 hkaldafsinglewire.h:62