#ifndef HMETAMATCH2_H #define HMETAMATCH2_H #include "hreconstructor.h" #include "TString.h" #include "TObject.h" #define RICH_TAB_SIZE 3 #define META_TAB_SIZE 3 class HMetaMatch2:public TObject { private: Int_t trkCandInd; // index of HTrkCand object Int_t ownIndex; // index of "this" object in categoty Char_t sector; // sector number UChar_t nRpcClust; // Number of matched rpc clusters UChar_t nShrHits; // Number of matched shower hits UChar_t nTofHits; // Number of matched tof clusters or hits Short_t rungeKuttaInd; Short_t rkIndShower[META_TAB_SIZE]; Short_t rkIndTofCl[META_TAB_SIZE]; Short_t rkIndTof1[META_TAB_SIZE]; Short_t rkIndTof2[META_TAB_SIZE]; Short_t rkIndRpc[META_TAB_SIZE]; Short_t kalmanFilterInd; // index of HKalTrack in catKalTrack Short_t kfIndShower[META_TAB_SIZE]; Short_t kfIndTofCl [META_TAB_SIZE]; Short_t kfIndTof1 [META_TAB_SIZE]; Short_t kfIndTof2 [META_TAB_SIZE]; Short_t kfIndRpc [META_TAB_SIZE]; Short_t rpcClstInd[META_TAB_SIZE]; // Index of HRpcCluster object Short_t shrHitInd[META_TAB_SIZE]; // Index of HShowerHit object Short_t tofClstInd[META_TAB_SIZE]; // Index of HTofCluster object Short_t tofHit1Ind[META_TAB_SIZE]; // Index of HTofHit object ??? Short_t tofHit2Ind[META_TAB_SIZE]; // Index of HTofHit object ??? // System 0: Float_t rpcQuality[META_TAB_SIZE]; // Matching quality Float_t rpcDX[META_TAB_SIZE]; // Deviation in X-coordinate Float_t rpcDY[META_TAB_SIZE]; // Deviation in Y-coordinate Float_t shrQuality[META_TAB_SIZE]; // Matching quality Float_t shrDX[META_TAB_SIZE]; // Deviation in X-coordinate Float_t shrDY[META_TAB_SIZE]; // Deviation in Y-coordinate // System 1: Float_t tofClstQuality[META_TAB_SIZE]; // Matching quality Float_t tofClstDX[META_TAB_SIZE]; // Deviation in X-coordinate Float_t tofClstDY[META_TAB_SIZE]; // Deviation in Y-coordinate Float_t tofHit1Quality[META_TAB_SIZE]; // Matching quality Float_t tofHit1DX[META_TAB_SIZE]; // Deviation in X-coordinate Float_t tofHit1DY[META_TAB_SIZE]; // Deviation in Y-coordinate Float_t tofHit2Quality[META_TAB_SIZE]; // Matching quality Float_t tofHit2DX[META_TAB_SIZE]; // Deviation in X-coordinate Float_t tofHit2DY[META_TAB_SIZE]; // Deviation in Y-coordinate Int_t splineInd; // index of HSplineTrack object UChar_t nRichId; // number of matched rings in richInd[] UChar_t nRichIPUId; // number of matched rings in richIPUInd[] Int_t richInd[RICH_TAB_SIZE]; // arr.of indexes of HRichHit objects Int_t richIPUInd[RICH_TAB_SIZE]; // arr.of indexes of HRichHitIPU objects // arrais are sorted by matching quality Char_t flag; // User flags bit array (8 flags, one bit / flag) // First bit for spline track // Sixth bit reserved for rungeKutta track // Seventh bit reserved for KalmanFilter track (not yet implemented) // If flag for corresponding track =1, this track is accepted public: HMetaMatch2(); ~HMetaMatch2(){} HMetaMatch2(Short_t sec, Int_t tkInd, Int_t ind); void setTrkCandInd(Int_t tr) {trkCandInd = tr;} void setOwnIndex(Int_t ind) {ownIndex = ind;} void setNRpcClust(UChar_t n) {nRpcClust = n