ROOT logo
#ifndef HKALHIT_H
#define HKALHIT_H

#include "TObject.h"

class HKalSite : public TObject {

private:
    Int_t sec;        // Index of sector.
    Int_t mod;        // Index of module.
    Int_t lay;        // Index of layer.

    Float_t CxxReco;  // Covariance matrix elements.
    Float_t CyyReco;  // Covariance matrix elements.
    Float_t CtxReco;  // Covariance matrix elements.
    Float_t CtyReco;  // Covariance matrix elements.
    Float_t CqpReco;  // Covariance matrix elements.
    Float_t chi2;     // This site's contribution to the chi^2 of the fit.
    Float_t enerLoss; // Calculated energy loss up to this site.
    Int_t   idxFirst; // Index of site's first competing hit.
    Int_t   idxLast;  // Index of site's last competing hit.
    Float_t momFilt;  // Momentum from filter step.
    Float_t momReal;  // Momentum from simulation data.
    Float_t momSmoo;  // Smoothed momentum.
    Int_t   nComp;    // Number of competing hits.
    Int_t   trackNum; // Geant track number.
    Float_t txReco;   // tan(px/pz) from smoothing.
    Float_t txReal;   // tan(px/pz) from simulation
    Float_t tyReco;   // tan(py/pz) from smoothing.
    Float_t tyReal;   // tan(py/pz) from simulation

public:

    HKalSite();

    virtual ~HKalSite() { ; }

    virtual Float_t getChi2    () const { return chi2; }

    virtual Float_t getCxxReco () const { return CxxReco; }

    virtual Float_t getCyyReco () const { return CyyReco; }

    virtual Float_t getCtxReco () const { return CtxReco; }

    virtual Float_t getCtyReco () const { return CtyReco; }

    virtual Float_t getCqpReco () const { return CqpReco; }

    virtual Int_t   getSec     () const { return sec; }

    virtual Int_t   getMod     () const { return mod; }

    virtual Int_t   getLay     () const { return lay; }

    virtual Float_t getEnerLoss() const { return enerLoss; }

    virtual Int_t   getIdxFirst() const { return idxFirst; }

    virtual Int_t   getIdxLast () const { return idxLast; }

    virtual Float_t getMomFilt () const { return momFilt; }

    virtual Float_t getMomReal () const { return momReal; }

    virtual Float_t getMomSmoo () const { return momSmoo; }

    virtual Int_t   getNcomp   () const { return nComp; }

    virtual Int_t   getTrackNum() const { return trackNum; }

    virtual Float_t getTxReal  () const { return txReal; }

    virtual Float_t getTxReco  () const { return txReco; }

    virtual Float_t getTyReal  () const { return tyReal; }

    virtual Float_t getTyReco  () const { return tyReco; }

    virtual void    setSec     (Int_t s)      { sec = s; }

    virtual void    setMod     (Int_t m)      { mod = m; }

    virtual void    setLay     (Int_t l)      { lay = l; }

    virtual void    setCxxReco (Float_t c)    { CxxReco = c; }

    virtual void    setCyyReco (Float_t c)    { CyyReco = c; }

    virtual void    setCtxReco (Float_t c)    { CtxReco = c; }

    virtual void    setCtyReco (Float_t c)    { CtyReco = c; }

    virtual void    setCqpReco (Float_t c)    { CqpReco = c; }

    virtual void    setChi2    (Double_t c)   { chi2 = c; }

    virtual void    setEnerLoss(Float_t dedx) { enerLoss = dedx; }

    virtual void    setIdxFirst(Int_t i)      { idxFirst = i; }

    virtual void    setIdxLast (Int_t i)      { idxLast = i; }

    virtual void    setMomFilt (Float_t mom)  { momFilt = mom; }

    virtual void    setMomReal (Float_t mom)  { momReal = mom; }

    virtual void    setMomSmoo (Float_t mom)  { momSmoo = mom; }

    virtual void    setNcomp   (Int_t n)      { nComp = n; }

    virtual void    setTrackNum(Int_t n)      { trackNum = n; }

    virtual void    setTxReal  (Float_t tx)   { txReal = tx; }

    virtual void    setTxReco  (Float_t tx)   { txReco = tx; }

    virtual void    setTyReal  (Float_t ty)   { tyReal = ty; }

    virtual void    setTyReco  (Float_t ty)   { tyReco = ty; }

    ClassDef (HKalSite,1)
};



class HKalHit2d : public TObject {

private:

    Float_t xMeas; // Measured position in sector coordinates in mm.
    Float_t yMeas; // Measured position in sector coordinates in mm.
    Float_t xReal; // Geant position in sector coordinates in mm.
    Float_t yReal; // Geant position in sector coordinates in mm.
    Float_t xReco; // Reconstructed position in sector coordinates in mm.
    Float_t yReco; // Reconstructed position in sector coordinates in mm.

public:

    HKalHit2d();

    virtual ~HKalHit2d() { ; }

    virtual Float_t getXmeas() const { return xMeas; }

    virtual Float_t getYmeas() const { return yMeas; }

    virtual Float_t getXreal() const { return xReal; }

    virtual Float_t getYreal() const { return yReal; }

    virtual Float_t getXreco() const { return xReco; }

    virtual Float_t getYreco() const { return yReco; }

    virtual void    setXmeas   (Float_t x) { xMeas = x; }

    virtual void    setYmeas   (Float_t y) { yMeas = y; }

    virtual void    setXreal   (Float_t x) { xReal = x; }

    virtual void    setYreal   (Float_t y) { yReal = y; }

    virtual void    setXreco   (Float_t x) { xReco = x; }

    virtual void    setYreco   (Float_t y) { yReco = y; }

    ClassDef (HKalHit2d,1)
};



class HKalHitWire : public TObject {

private:

    static const Int_t nDafs = 5; // Max. number of iterations done in the annealing filter.

    Float_t alpha;           // Reconstructed angle of track and wire plane in degrees. 0 < alpha < 90°
    Int_t   cell;            // Student's prison cell number.
    Float_t chi2Daf;         // Hit's chi2, i.e. the weighted, squared distance of the measurement to the smoothed track state.
    Float_t mindist;         // Reconstructed drift radius in mm.
    Float_t t1;              // Drift time of first hit in ns = time1 from HMdcCal1Sim.
    Float_t t2;              // Drift time of second hit in ns = time 2 from HMdcCal1Sim.
    Float_t t1Err;           // Error of time 1 from HMdcCal1Sim in ns.
    Float_t tReco;           // Reconstructed drift time 1 in ns. Calculated from alpha and mindist.
    Float_t tMeas;           // Measured time. Input for the Kalman filter. Includes tWireOffset and tTof.
    Float_t tTof;            // Time of flight correction of time 1 used by the Kalman filter.
    Float_t tTofCal1;        // Time of flight correction of time 1 from HMdcCal1Sim.
    Float_t tWireOffset;     // Travel time on wire correction of time 1.
    Float_t weight[nDafs];   // Assignment probabilities in each iteration.

public:

    HKalHitWire();

    virtual ~HKalHitWire() { ; }

    virtual Float_t getAlpha         () const  { return alpha; }

    virtual Int_t   getCell          () const  { return cell; }

    virtual Float_t getChi2Daf       () const { return chi2Daf; }

    virtual Float_t getMinDist       () const  { return mindist; }

    virtual Int_t   getNdafs         () const { return nDafs; }

    virtual Float_t getTime1         () const  { return t1; }

    virtual Float_t getTime2         () const  { return t2; }

    virtual Float_t getTime1Err      () const  { return t1Err; }

    virtual Float_t getTimeMeas      () const  { return tMeas; }

    virtual Float_t getTimeReco      () const  { return tReco; }

    virtual Float_t getTimeTof       () const  { return tTof; }

    virtual Float_t getTimeTofCal1   () const  { return tTofCal1; }

    virtual Float_t getTimeWireOffset() const  { return tWireOffset; }

    virtual Float_t getWeight        (Int_t i) const { if(i >=0 && i < nDafs) { return weight[i]; } return -1.F; }

    virtual void    setAlpha         (Float_t a)          { alpha = a; }

    virtual void    setCell          (Int_t c)            { cell = c; }

    virtual void    setChi2Daf       (Float_t chi2) { chi2Daf = chi2; }

    virtual void    setTime1         (Float_t t)          { t1 = t; }

    virtual void    setTime2         (Float_t t)          { t2 = t; }

    virtual void    setTime1Err      (Float_t tErr)       { t1Err = tErr; }

    virtual void    setTimeMeas      (Float_t t)          { tMeas = t; }

    virtual void    setTimeReco      (Float_t t)          { tReco = t; }

    virtual void    setTimeTof       (Float_t t)          { tTof = t; }

    virtual void    setTimeTofCal1   (Float_t t)          { tTofCal1 = t; }

    virtual void    setTimeWireOffset(Float_t t)          { tWireOffset = t; }

    virtual void    setMinDist       (Float_t d)          { mindist = d; }

    virtual void    setWeight        (Float_t w, Int_t i) { if(i >= 0 && i < nDafs) weight[i] = w; }

    ClassDef (HKalHitWire,1)
};

#endif
 hkalhit.h:1
 hkalhit.h:2
 hkalhit.h:3
 hkalhit.h:4
 hkalhit.h:5
 hkalhit.h:6
 hkalhit.h:7
 hkalhit.h:8
 hkalhit.h:9
 hkalhit.h:10
 hkalhit.h:11
 hkalhit.h:12
 hkalhit.h:13
 hkalhit.h:14
 hkalhit.h:15
 hkalhit.h:16
 hkalhit.h:17
 hkalhit.h:18
 hkalhit.h:19
 hkalhit.h:20
 hkalhit.h:21
 hkalhit.h:22
 hkalhit.h:23
 hkalhit.h:24
 hkalhit.h:25
 hkalhit.h:26
 hkalhit.h:27
 hkalhit.h:28
 hkalhit.h:29
 hkalhit.h:30
 hkalhit.h:31
 hkalhit.h:32
 hkalhit.h:33
 hkalhit.h:34
 hkalhit.h:35
 hkalhit.h:36
 hkalhit.h:37
 hkalhit.h:38
 hkalhit.h:39
 hkalhit.h:40
 hkalhit.h:41
 hkalhit.h:42
 hkalhit.h:43
 hkalhit.h:44
 hkalhit.h:45
 hkalhit.h:46
 hkalhit.h:47
 hkalhit.h:48
 hkalhit.h:49
 hkalhit.h:50
 hkalhit.h:51
 hkalhit.h:52
 hkalhit.h:53
 hkalhit.h:54
 hkalhit.h:55
 hkalhit.h:56
 hkalhit.h:57
 hkalhit.h:58
 hkalhit.h:59
 hkalhit.h:60
 hkalhit.h:61
 hkalhit.h:62
 hkalhit.h:63
 hkalhit.h:64
 hkalhit.h:65
 hkalhit.h:66
 hkalhit.h:67
 hkalhit.h:68
 hkalhit.h:69
 hkalhit.h:70
 hkalhit.h:71
 hkalhit.h:72
 hkalhit.h:73
 hkalhit.h:74
 hkalhit.h:75
 hkalhit.h:76
 hkalhit.h:77
 hkalhit.h:78
 hkalhit.h:79
 hkalhit.h:80
 hkalhit.h:81
 hkalhit.h:82
 hkalhit.h:83
 hkalhit.h:84
 hkalhit.h:85
 hkalhit.h:86
 hkalhit.h:87
 hkalhit.h:88
 hkalhit.h:89
 hkalhit.h:90
 hkalhit.h:91
 hkalhit.h:92
 hkalhit.h:93
 hkalhit.h:94
 hkalhit.h:95
 hkalhit.h:96
 hkalhit.h:97
 hkalhit.h:98
 hkalhit.h:99
 hkalhit.h:100
 hkalhit.h:101
 hkalhit.h:102
 hkalhit.h:103
 hkalhit.h:104
 hkalhit.h:105
 hkalhit.h:106
 hkalhit.h:107
 hkalhit.h:108
 hkalhit.h:109
 hkalhit.h:110
 hkalhit.h:111
 hkalhit.h:112
 hkalhit.h:113
 hkalhit.h:114
 hkalhit.h:115
 hkalhit.h:116
 hkalhit.h:117
 hkalhit.h:118
 hkalhit.h:119
 hkalhit.h:120
 hkalhit.h:121
 hkalhit.h:122
 hkalhit.h:123
 hkalhit.h:124
 hkalhit.h:125
 hkalhit.h:126
 hkalhit.h:127
 hkalhit.h:128
 hkalhit.h:129
 hkalhit.h:130
 hkalhit.h:131
 hkalhit.h:132
 hkalhit.h:133
 hkalhit.h:134
 hkalhit.h:135
 hkalhit.h:136
 hkalhit.h:137
 hkalhit.h:138
 hkalhit.h:139
 hkalhit.h:140
 hkalhit.h:141
 hkalhit.h:142
 hkalhit.h:143
 hkalhit.h:144
 hkalhit.h:145
 hkalhit.h:146
 hkalhit.h:147
 hkalhit.h:148
 hkalhit.h:149
 hkalhit.h:150
 hkalhit.h:151
 hkalhit.h:152
 hkalhit.h:153
 hkalhit.h:154
 hkalhit.h:155
 hkalhit.h:156
 hkalhit.h:157
 hkalhit.h:158
 hkalhit.h:159
 hkalhit.h:160
 hkalhit.h:161
 hkalhit.h:162
 hkalhit.h:163
 hkalhit.h:164
 hkalhit.h:165
 hkalhit.h:166
 hkalhit.h:167
 hkalhit.h:168
 hkalhit.h:169
 hkalhit.h:170
 hkalhit.h:171
 hkalhit.h:172
 hkalhit.h:173
 hkalhit.h:174
 hkalhit.h:175
 hkalhit.h:176
 hkalhit.h:177
 hkalhit.h:178
 hkalhit.h:179
 hkalhit.h:180
 hkalhit.h:181
 hkalhit.h:182
 hkalhit.h:183
 hkalhit.h:184
 hkalhit.h:185
 hkalhit.h:186
 hkalhit.h:187
 hkalhit.h:188
 hkalhit.h:189
 hkalhit.h:190
 hkalhit.h:191
 hkalhit.h:192
 hkalhit.h:193
 hkalhit.h:194
 hkalhit.h:195
 hkalhit.h:196
 hkalhit.h:197
 hkalhit.h:198
 hkalhit.h:199
 hkalhit.h:200
 hkalhit.h:201
 hkalhit.h:202
 hkalhit.h:203
 hkalhit.h:204
 hkalhit.h:205
 hkalhit.h:206
 hkalhit.h:207
 hkalhit.h:208
 hkalhit.h:209
 hkalhit.h:210
 hkalhit.h:211
 hkalhit.h:212
 hkalhit.h:213
 hkalhit.h:214
 hkalhit.h:215
 hkalhit.h:216
 hkalhit.h:217
 hkalhit.h:218
 hkalhit.h:219
 hkalhit.h:220
 hkalhit.h:221
 hkalhit.h:222
 hkalhit.h:223
 hkalhit.h:224
 hkalhit.h:225
 hkalhit.h:226
 hkalhit.h:227
 hkalhit.h:228
 hkalhit.h:229
 hkalhit.h:230
 hkalhit.h:231
 hkalhit.h:232
 hkalhit.h:233
 hkalhit.h:234
 hkalhit.h:235
 hkalhit.h:236
 hkalhit.h:237
 hkalhit.h:238
 hkalhit.h:239
 hkalhit.h:240
 hkalhit.h:241
 hkalhit.h:242
 hkalhit.h:243
 hkalhit.h:244
 hkalhit.h:245
 hkalhit.h:246
 hkalhit.h:247
 hkalhit.h:248
 hkalhit.h:249
 hkalhit.h:250
 hkalhit.h:251
 hkalhit.h:252
 hkalhit.h:253
 hkalhit.h:254
 hkalhit.h:255
 hkalhit.h:256