ROOT logo
#ifndef __HPARTICLEBTRINGINFO_H__
#define __HPARTICLEBTRINGINFO_H__

#include "TObject.h"

class HParticleBtRingInfo : public TObject
{
private:


    Int_t   fPrediction      [128][128]; //tracks,predicted pads
    Int_t   fRingMatrix      [128][128];
    Int_t   fRichHitAdd      [1024];    //fired pads
    Float_t fRichHitCharge   [1024];
    Int_t   fIsInCluster     [1024];    

    Float_t fTrackTheta      [128];
    Float_t fTrackPhi        [128];
    Int_t   fTrackVertex     [128];
    Int_t   fTrackSec        [128];
    Int_t   fTrackPCandIdx   [128];
    Bool_t  fIsGoodTrack     [128];
    Float_t fPosXCenter      [128];
    Float_t fPosYCenter      [128];


    //Cluster information
    Int_t   fClusTrackNo     [32][32];  //clusters, tracks
    Bool_t  fClusIsGood      [32];      //clusters
    Int_t   fClusPadSum      [32];
    Int_t   fClusPadRing     [32];
    Float_t fClusChargeSum   [32];
    Float_t fClusChargeRing  [32];
    Float_t fClusPosX        [32];
    Float_t fClusPosY        [32];
    Int_t   fClusClass       [32];

    //Maxima and maxima position
    Int_t   fClusNMaxima     [32][32];       //clusters,tracks
    Int_t   fClusNMaximaPad  [32][32][32];   //clusters,tracks,maxima
    Float_t fClusNMaximaPosX [32][32][32];
    Float_t fClusNMaximaPosY [32][32][32];

    //Chi2
    Float_t fClusChi2        [32][32][32];
    Float_t fClusChi2XMM     [32][32][32];
    Float_t fClusChi2YMM     [32][32][32];

    //Debug info
    Float_t fClusCircleX     [32][32][32];
    Float_t fClusCircleY     [32][32][32];
    Float_t fClusSig1X       [32][32][32];
    Float_t fClusSig1Y       [32][32][32];
    Float_t fClusSig2X       [32][32][32];
    Float_t fClusSig2Y       [32][32][32];
    void init();

public:

    HParticleBtRingInfo();
    ~HParticleBtRingInfo();

    // ------------ set functions -----------

    void setPrediction       ( Int_t    val[][128] )   { for(Int_t i=0;i<128;i++){ for(Int_t j=0;j<128;j++){ fPrediction[i][j] = val[i][j];}}}
    void setRingMatrix       ( Int_t    val[][128] )   { for(Int_t i=0;i<128;i++){ for(Int_t j=0;j<128;j++){ fRingMatrix[i][j] = val[i][j];}}}
    void setRichHitAdd       ( Int_t*   val        )   { for(Int_t i=0;i<1024;i++) fRichHitAdd[i]    = val[i];}
    void setRichHitCharge    ( Float_t* val        )   { for(Int_t i=0;i<1024;i++) fRichHitCharge[i] = val[i];}
    void setIsInCluster      ( Int_t*   val        )   { for(Int_t i=0;i<1024;i++) fIsInCluster[i]   = val[i];}


    void setTrackTheta       ( Float_t* val )       { for(Int_t i=0;i<128;i++) fTrackTheta[i]    = val[i];}
    void setTrackPhi         ( Float_t* val )       { for(Int_t i=0;i<128;i++) fTrackPhi[i]      = val[i];}
    void setTrackVertex      ( Int_t*   val )       { for(Int_t i=0;i<128;i++) fTrackVertex[i]   = val[i];}
    void setTrackSec         ( Int_t*   val )       { for(Int_t i=0;i<128;i++) fTrackSec[i]      = val[i];}
    void setTrackPCandIdx    ( Int_t*   val )       { for(Int_t i=0;i<128;i++) fTrackPCandIdx[i] = val[i];}
    void setIsGoodTrack      ( Bool_t*  val )       { for(Int_t i=0;i<128;i++) fIsGoodTrack[i]   = val[i];}
    void setPosXCenter       ( Float_t* val )       { for(Int_t i=0;i<128;i++) fPosXCenter[i]    = val[i];}
    void setPosYCenter       ( Float_t* val )       { for(Int_t i=0;i<128;i++) fPosYCenter[i]    = val[i];}


    void setClusTrackNo      ( Int_t    val[][32])  { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ fClusTrackNo[i][j] = val[i][j];}}}
    void setClusIsGood       ( Bool_t*  val )       { for(Int_t i=0;i<32;i++) fClusIsGood[i]     = val[i];}
    void setClusPadSum       ( Int_t*   val )       { for(Int_t i=0;i<32;i++) fClusPadSum[i]     = val[i];}
    void setClusPadRing      ( Int_t*   val )       { for(Int_t i=0;i<32;i++) fClusPadRing[i]    = val[i];}
    void setClusChargeSum    ( Float_t* val )       { for(Int_t i=0;i<32;i++) fClusChargeSum[i]  = val[i];}
    void setClusChargeRing   ( Float_t* val )       { for(Int_t i=0;i<32;i++) fClusChargeRing[i] = val[i];}
    void setClusPosX         ( Float_t* val )       { for(Int_t i=0;i<32;i++) fClusPosX[i]       = val[i];}
    void setClusPosY         ( Float_t* val )       { for(Int_t i=0;i<32;i++) fClusPosY[i]       = val[i];}
    void setClusClass        ( Int_t*   val )       { for(Int_t i=0;i<32;i++) fClusClass[i]      = val[i];}

    void setClusNMaxima      ( Int_t   val[][32]     )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ fClusNMaxima[i][j] = val[i][j];}}}
    void setClusNMaximaPad   ( Int_t   val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusNMaximaPad[i][j][k]  = val[i][j][k];}}}}
    void setClusNMaximaPosX  ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusNMaximaPosX[i][j][k] = val[i][j][k];}}}}
    void setClusNMaximaPosY  ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusNMaximaPosY[i][j][k] = val[i][j][k];}}}}

    void setClusChi2         ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusChi2[i][j][k]     = val[i][j][k];}}}}
    void setClusChi2XMM      ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusChi2XMM[i][j][k]  = val[i][j][k];}}}}
    void setClusChi2YMM      ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusChi2YMM[i][j][k]  = val[i][j][k];}}}}


    void setClusCircleX      ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusCircleX[i][j][k] = val[i][j][k];}}}}
    void setClusCircleY      ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusCircleY[i][j][k] = val[i][j][k];}}}}
    void setClusSig1X        ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusSig1X[i][j][k]   = val[i][j][k];}}}}
    void setClusSig1Y        ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusSig1Y[i][j][k]   = val[i][j][k];}}}}
    void setClusSig2X        ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusSig2X[i][j][k]   = val[i][j][k];}}}}
    void setClusSig2Y        ( Float_t val[][32][32] )       { for(Int_t i=0;i<32;i++){ for(Int_t j=0;j<32;j++){ for(Int_t k=0;k<32;k++){ fClusSig2Y[i][j][k]   = val[i][j][k];}}}}


    // ------------ get functions -----------

    Int_t*   getPrediction       ( void )       { return &fPrediction[0][0] ;}
    Int_t*   getRingMatrix       ( void )       { return &fRingMatrix[0][0] ;}
    Int_t*   getRichHitAdd       ( void )       { return &fRichHitAdd[0]    ;}
    Float_t* getRichHitCharge    ( void )       { return &fRichHitCharge[0] ;}
    Int_t*   getIsInCluster      ( void )       { return &fIsInCluster[0]   ;}


    Float_t* getTrackTheta       ( void )       { return &fTrackTheta[0]   ;}
    Float_t* getTrackPhi         ( void )       { return &fTrackPhi[0]     ;}
    Int_t*   getTrackVertex      ( void )       { return &fTrackVertex[0]  ;}
    Int_t*   getTrackSec         ( void )       { return &fTrackSec[0]     ;}
    Int_t*   getTrackPCandIdx    ( void )       { return &fTrackPCandIdx[0];}
    Bool_t*  getIsGoodTrack      ( void )       { return &fIsGoodTrack[0]  ;}
    Float_t* getPosXCenter       ( void )       { return &fPosXCenter[0]   ;}
    Float_t* getPosYCenter       ( void )       { return &fPosYCenter[0]   ;}

    Int_t*   getClusTrackNo      ( void )       { return &fClusTrackNo[0][0] ;}
    Bool_t*  getClusIsGood       ( void )       { return &fClusIsGood[0]     ;}
    Int_t*   getClusPadSum       ( void )       { return &fClusPadSum[0]     ;}
    Int_t*   getClusPadRing      ( void )       { return &fClusPadRing[0]    ;}
    Float_t* getClusChargeSum    ( void )       { return &fClusChargeSum[0]  ;}
    Float_t* getClusChargeRing   ( void )       { return &fClusChargeRing[0] ;}
    Float_t* getClusPosX         ( void )       { return &fClusPosX[0]       ;}
    Float_t* getClusPosY         ( void )       { return &fClusPosY[0]       ;}
    Int_t*   getClusClass        ( void )       { return &fClusClass[0]      ;}

    Int_t*   getClusNMaxima      ( void )       { return &fClusNMaxima[0][0]        ;}
    Int_t*   getClusNMaximaPad   ( void )       { return &fClusNMaximaPad[0][0][0]  ;}
    Float_t* getClusNMaximaPosX  ( void )       { return &fClusNMaximaPosX[0][0][0] ;}
    Float_t* getClusNMaximaPosY  ( void )       { return &fClusNMaximaPosY[0][0][0] ;}

    Float_t* getClusChi2         ( void )       { return &fClusChi2[0][0][0]     ;}
    Float_t* getClusChi2XMM      ( void )       { return &fClusChi2XMM[0][0][0]  ;}
    Float_t* getClusChi2YMM      ( void )       { return &fClusChi2YMM[0][0][0]  ;}


    Float_t* getClusCircleX      ( void )       { return &fClusCircleX[0][0][0] ;}
    Float_t* getClusCircleY      ( void )       { return &fClusCircleY[0][0][0] ;}
    Float_t* getClusSig1X        ( void )       { return &fClusSig1X[0][0][0]   ;}
    Float_t* getClusSig1Y        ( void )       { return &fClusSig1Y[0][0][0]   ;}
    Float_t* getClusSig2X        ( void )       { return &fClusSig2X[0][0][0]   ;}
    Float_t* getClusSig2Y        ( void )       { return &fClusSig2Y[0][0][0]   ;}




    ClassDef(HParticleBtRingInfo,1)
};

#endif  //--HPARTICLEBTRINGINFO_H__
 hparticlebtringinfo.h:1
 hparticlebtringinfo.h:2
 hparticlebtringinfo.h:3
 hparticlebtringinfo.h:4
 hparticlebtringinfo.h:5
 hparticlebtringinfo.h:6
 hparticlebtringinfo.h:7
 hparticlebtringinfo.h:8
 hparticlebtringinfo.h:9
 hparticlebtringinfo.h:10
 hparticlebtringinfo.h:11
 hparticlebtringinfo.h:12
 hparticlebtringinfo.h:13
 hparticlebtringinfo.h:14
 hparticlebtringinfo.h:15
 hparticlebtringinfo.h:16
 hparticlebtringinfo.h:17
 hparticlebtringinfo.h:18
 hparticlebtringinfo.h:19
 hparticlebtringinfo.h:20
 hparticlebtringinfo.h:21
 hparticlebtringinfo.h:22
 hparticlebtringinfo.h:23
 hparticlebtringinfo.h:24
 hparticlebtringinfo.h:25
 hparticlebtringinfo.h:26
 hparticlebtringinfo.h:27
 hparticlebtringinfo.h:28
 hparticlebtringinfo.h:29
 hparticlebtringinfo.h:30
 hparticlebtringinfo.h:31
 hparticlebtringinfo.h:32
 hparticlebtringinfo.h:33
 hparticlebtringinfo.h:34
 hparticlebtringinfo.h:35
 hparticlebtringinfo.h:36
 hparticlebtringinfo.h:37
 hparticlebtringinfo.h:38
 hparticlebtringinfo.h:39
 hparticlebtringinfo.h:40
 hparticlebtringinfo.h:41
 hparticlebtringinfo.h:42
 hparticlebtringinfo.h:43
 hparticlebtringinfo.h:44
 hparticlebtringinfo.h:45
 hparticlebtringinfo.h:46
 hparticlebtringinfo.h:47
 hparticlebtringinfo.h:48
 hparticlebtringinfo.h:49
 hparticlebtringinfo.h:50
 hparticlebtringinfo.h:51
 hparticlebtringinfo.h:52
 hparticlebtringinfo.h:53
 hparticlebtringinfo.h:54
 hparticlebtringinfo.h:55
 hparticlebtringinfo.h:56
 hparticlebtringinfo.h:57
 hparticlebtringinfo.h:58
 hparticlebtringinfo.h:59
 hparticlebtringinfo.h:60
 hparticlebtringinfo.h:61
 hparticlebtringinfo.h:62
 hparticlebtringinfo.h:63
 hparticlebtringinfo.h:64
 hparticlebtringinfo.h:65
 hparticlebtringinfo.h:66
 hparticlebtringinfo.h:67
 hparticlebtringinfo.h:68
 hparticlebtringinfo.h:69
 hparticlebtringinfo.h:70
 hparticlebtringinfo.h:71
 hparticlebtringinfo.h:72
 hparticlebtringinfo.h:73
 hparticlebtringinfo.h:74
 hparticlebtringinfo.h:75
 hparticlebtringinfo.h:76
 hparticlebtringinfo.h:77
 hparticlebtringinfo.h:78
 hparticlebtringinfo.h:79
 hparticlebtringinfo.h:80
 hparticlebtringinfo.h:81
 hparticlebtringinfo.h:82
 hparticlebtringinfo.h:83
 hparticlebtringinfo.h:84
 hparticlebtringinfo.h:85
 hparticlebtringinfo.h:86
 hparticlebtringinfo.h:87
 hparticlebtringinfo.h:88
 hparticlebtringinfo.h:89
 hparticlebtringinfo.h:90
 hparticlebtringinfo.h:91
 hparticlebtringinfo.h:92
 hparticlebtringinfo.h:93
 hparticlebtringinfo.h:94
 hparticlebtringinfo.h:95
 hparticlebtringinfo.h:96
 hparticlebtringinfo.h:97
 hparticlebtringinfo.h:98
 hparticlebtringinfo.h:99
 hparticlebtringinfo.h:100
 hparticlebtringinfo.h:101
 hparticlebtringinfo.h:102
 hparticlebtringinfo.h:103
 hparticlebtringinfo.h:104
 hparticlebtringinfo.h:105
 hparticlebtringinfo.h:106
 hparticlebtringinfo.h:107
 hparticlebtringinfo.h:108
 hparticlebtringinfo.h:109
 hparticlebtringinfo.h:110
 hparticlebtringinfo.h:111
 hparticlebtringinfo.h:112
 hparticlebtringinfo.h:113
 hparticlebtringinfo.h:114
 hparticlebtringinfo.h:115
 hparticlebtringinfo.h:116
 hparticlebtringinfo.h:117
 hparticlebtringinfo.h:118
 hparticlebtringinfo.h:119
 hparticlebtringinfo.h:120
 hparticlebtringinfo.h:121
 hparticlebtringinfo.h:122
 hparticlebtringinfo.h:123
 hparticlebtringinfo.h:124
 hparticlebtringinfo.h:125
 hparticlebtringinfo.h:126
 hparticlebtringinfo.h:127
 hparticlebtringinfo.h:128
 hparticlebtringinfo.h:129
 hparticlebtringinfo.h:130
 hparticlebtringinfo.h:131
 hparticlebtringinfo.h:132
 hparticlebtringinfo.h:133
 hparticlebtringinfo.h:134
 hparticlebtringinfo.h:135
 hparticlebtringinfo.h:136
 hparticlebtringinfo.h:137
 hparticlebtringinfo.h:138
 hparticlebtringinfo.h:139
 hparticlebtringinfo.h:140
 hparticlebtringinfo.h:141
 hparticlebtringinfo.h:142
 hparticlebtringinfo.h:143
 hparticlebtringinfo.h:144
 hparticlebtringinfo.h:145
 hparticlebtringinfo.h:146
 hparticlebtringinfo.h:147
 hparticlebtringinfo.h:148
 hparticlebtringinfo.h:149
 hparticlebtringinfo.h:150
 hparticlebtringinfo.h:151
 hparticlebtringinfo.h:152
 hparticlebtringinfo.h:153
 hparticlebtringinfo.h:154
 hparticlebtringinfo.h:155
 hparticlebtringinfo.h:156
 hparticlebtringinfo.h:157
 hparticlebtringinfo.h:158
 hparticlebtringinfo.h:159
 hparticlebtringinfo.h:160
 hparticlebtringinfo.h:161