ROOT logo
#ifndef HMDCHITSEGFILLER_H
#define HMDCHITSEGFILLER_H

using namespace std;
#include "TObject.h"
#include "hsymmat.h"

class HMdcPlane;
class HMdcClus;
class HMdcHit;
class HMdcSeg;
class HMdcSizesCellsMod;
class HGeomVector;
class HMdcTrackParam;

class HMdcHitSegFiller : public TObject {
  protected:
    Float_t dP2dP1[4][4];
    // Fitter or cluster track paramet.
    HMdcPlane* plane1;
    Double_t A1;
    Double_t B1;
    Double_t x1;
    Double_t y1;
    HMdcPlane* plane2;
    Double_t A2;
    Double_t B2;
    Double_t x2;
    Double_t y2;
    HSymMat4* covMatr;
    Double_t timeOffSet[4];
    Double_t errTimeOffSet[4];

    Double_t z1;
    Double_t z2;
    
    Int_t typeClusVert;    // 0 - target, 1 - kick plane
    HSymMat4 clusErrMatr;

    // HMdcSeg paramet.
    Double_t z;
    Double_t r;
    Double_t theta;
    Double_t phi;
    Float_t dP1dP2[4][4];
    Double_t zPrime;  // z coordinate wrt axis centered on target position
    Double_t rPrime;  // r coordinate wrt axis centered on target position
    
    Double_t xTarget;
    Double_t yTarget;

    // HMdcHit paramet.
    Double_t x;
    Double_t y;
    Double_t xDir;
    Double_t yDir;
    HSymMat4 hitErr;
  public:
    HMdcHitSegFiller(void) {clear();}
    ~HMdcHitSegFiller(void) {}

    void clear(void) {plane1=plane2=0;}
    void setFitParam(HMdcTrackParam& par);
    void setFitParamForSecondSec(HMdcTrackParam& par);
    void calcSegPar(const HGeomVector* targ=0);

    HMdcPlane* getPlane1(void) {return plane1;}
    HMdcPlane* getPlane2(void) {return plane2;}
    Double_t getX1(void) {return x1;}
    Double_t getY1(void) {return y1;}
    Double_t getZ1(void) {return z1;}
    Double_t getX2(void) {return x2;}
    Double_t getZ2(void) {return z2;}

    void setSegParam(HMdcPlane* pl1, HMdcPlane* pl2,
        Double_t zm, Double_t r0, Double_t th, Double_t ph);
    void setClusParam(HMdcClus* clus, Bool_t isCoilOff);

    Double_t getZm(void) {return z;}
    Double_t getR(void) {return r;}
    Double_t getTheta(void) {return theta;}
    Double_t getPhi(void) {return phi;}

    void propogErrToSeg(HSymMat4& errMatOut);
    void fillMdcSeg(HMdcSeg* mdcSeg, const HGeomVector* targ);
    void fillMdcSegByClus(HMdcSeg* mdcSeg, const HGeomVector* targ,HMdcTrackParam* trPar=NULL);
    void fillMdcHit(HMdcSizesCellsMod* fSCMod,HMdcHit* mdcHit);
    void fillMdcHitByClus(HMdcSizesCellsMod* fSCMod,HMdcHit* mdcHit);
    
    void propogErrToFit(HSymMat4& errMatIn, HSymMat4& errMatOut);

  private:
    void calcDerMatrToSeg(void);
    void calcDerMatrClus1ToSeg(void);
    void calcDerMatrToFit(void);
    void calcFitPar(void);
    void fillSegPar(HMdcSeg* mdcSeg);

  ClassDef(HMdcHitSegFiller,0)
};

#endif  /* HMdcHitSegFiller_H */














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