ROOT logo
#ifndef __HPARTICLEBTRINGF_H__
#define __HPARTICLEBTRINGF_H__

#include "TObject.h"
#include "hparticledef.h"
#include "hparticlebtpar.h"
#include "hparticlebtringinfo.h"
#include "hparticleanglecor.h"

using namespace std;


class TF2;
class HCategory;
class HParticleCand;
class HEventHeader;
class HVertex;

class HParticleBtRingF : public TObject {

protected:

    HParticleBtPar* fBtPar;
    HParticleAngleCor fAngleCor;

    Int_t    fNSector;
    Int_t    fNVertex;
    Int_t    fNParMean;
    Int_t    fNParSigma;
    Int_t    fNRingSeg;
    Int_t    fNRingSegStep;
    Int_t    fNRingSegOffset;

    Int_t    fNRichSeg;
    Int_t    fRichSegBorderX;
    Int_t    fRichSegBorderY;
   
    Float_t  fThetaAngleMin;
    Float_t  fThetaAngleMax;
    Float_t  fParThetaAngleMin;
    Float_t  fParThetaAngleMax;
    Int_t    fSizeMatrix;
    Float_t  fChargeLimit[6];
    Float_t  fChargeLimitMaximum[6];

    Int_t    fNSigma;
    Int_t    fMaxSigmaRange;
    Float_t  fMinimumSigmaValue;
    Float_t  fSigmaErrorPad;

    Float_t  fVertexPosMin;
    Float_t  fVertexPosMax;
    Float_t  fVertexStep;

    Float_t  fPhiOff[6];
    Float_t  fPhiOff2[6];
    Int_t    fPhiOffsetPar;


    vector <Float_t> fRad2Deg;
    vector <Float_t> fRad2DegX;
    vector <Float_t> fRad2DegY;

    vector <vector <TF2*> >   fPol2DMean;
    vector <vector <TF2*> >   fPol2DSigma;

    vector < vector <Int_t> > fFiredPads;

    vector < vector<Int_t> > fPrediction;
    vector < vector<Int_t> > fRingMatrix;
    vector <Int_t>           fRichHitAdd;
    vector <Float_t>         fRichHitCharge;
    vector <Float_t>         fTrackTheta;
    vector <Float_t>         fTrackPhi;
    vector <Int_t>           fTrackVertex;
    vector <Int_t>           fTrackSec;
    vector <Int_t>           fTrackPCandIdx;
    vector <Bool_t>          fIsGoodTrack;
    vector <Float_t>         fPosXCenter;
    vector <Float_t>         fPosYCenter;

 
public:

    HParticleBtRingF(void);

    ~HParticleBtRingF(void);

  
    // -----------------------------------------------------

    Bool_t init(void);
    Bool_t finalize(void) { return kTRUE; }

    // -----------------------------------------------------

    void fillRichCal(HCategory* catRichCal);
    void fillPrediction(const HParticleCand* cand,HVertex &vertex, Bool_t isGoodTrack, const Bool_t doAngleCorr);
    void clearData(void);
   

    // -----------------------------------------------------

    Float_t                   getRingMatrix(const Int_t trackNo);
    vector < vector<Int_t> >& getPrediction(void) { return fPrediction;}
    vector <Int_t>&           getRichHitAdd(void) { return fRichHitAdd; }
    vector <Float_t>&         getRichHitCharge(void) { return fRichHitCharge; }
    Float_t                   getTrackTheta(Int_t trackNo);
    Float_t                   getTrackPhi(Int_t trackNo);
    Int_t     	              getTrackVertex(Int_t trackNo);
    Int_t     	              getTrackSec(Int_t trackNo);
    Float_t                   getPosXCenter(Int_t trackNo);
    Float_t                   getPosYCenter(Int_t trackNo);
    Bool_t                    isGoodTrack(Int_t trackNo);
    Bool_t                    fillRingInfo(HParticleBtRingInfo* btRingInfo);
    Bool_t                    hasNoisyRichSeg(Bool_t *trackInSec);
    Int_t                     plotPrediction(Int_t trackNo);
    void                      plotRichHit(Int_t trackNo);


private:
    void   addressToColRow(const Int_t address, Int_t &sec, Int_t &row, Int_t &col);
    Int_t  correctPhi(const Int_t sec,  const Float_t phi);
    Int_t  getVertexNum(const Float_t vertex);
    void   sortElements(Double_t &entry1 , Double_t &entry2);
    void   fillMatrix(Int_t xPad, Int_t yPad, Int_t sec);
    ClassDef(HParticleBtRingF, 0)
};

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