00001 #ifndef StiKalmanTrackFinderParameters_h
00002 #define StiKalmanTrackFinderParameters_h
00003 #include <string.h>
00004 #include "TChair.h"
00005 #include "tables/St_KalmanTrackFinderParameters_Table.h"
00006
00007 class StiKalmanTrackFinderParameters : public TChair {
00008 public:
00009 static StiKalmanTrackFinderParameters* instance();
00010 KalmanTrackFinderParameters_st *Struct(Int_t i = 0) {return ((St_KalmanTrackFinderParameters*) Table())->GetTable()+i;}
00011 UInt_t getNumRows() {return GetNRows();}
00012 Int_t useMcAsRec(Int_t i = 0) {return Struct(i)->useMcAsRec;}
00013 Int_t useTrackFilter(Int_t i = 0) {return Struct(i)->useTrackFilter;}
00014 Int_t elossCalculated(Int_t i = 0) {return Struct(i)->elossCalculated;}
00015 Int_t mcsCalculated(Int_t i = 0) {return Struct(i)->mcsCalculated;}
00016
00017 Int_t maxNullCount(Int_t i = 0) {return Struct(i)->maxNullCount;}
00018 Int_t maxContigNullCount(Int_t i = 0) {return Struct(i)->maxContigNullCount;}
00019 Int_t minCountForReset(Int_t i = 0) {return Struct(i)->minCountForReset;}
00020 Int_t HitRegions(Int_t i = 0) {return Struct(i)->mHitRegions;}
00021 Int_t HitWeights(Int_t i = 0) {return Struct(i)->mHitWeights;}
00022 Double_t maxChi2Vertex(Int_t i = 0) {return Struct(i)->maxChi2Vertex;}
00023 Double_t massHypothesis(Int_t i = 0) {return Struct(i)->massHypothesis;}
00024 Double_t maxDca2dZeroXY(Int_t i = 0) {return Struct(i)->maxDca2dZeroXY;}
00025 Double_t maxDca3dVertex(Int_t i = 0) {return Struct(i)->maxDca3dVertex;}
00026 Double_t getMassHypothesis() {return massHypothesis();}
00027 Int_t maxContiguousNullCount() {return maxContigNullCount();}
00028 Int_t minContiguousHitCountForNullReset() {return minCountForReset();}
00029 void setHitRegions(Int_t rs) {
00030 Int_t i=0;
00031 for (i=0;rs;i++) {mHitRegions[i]=rs%100; rs/=100;}
00032 mHitRegions[i]=10000;
00033 }
00034 void setHitWeights(Int_t ws) {
00035 Int_t i=0;
00036 for (i=0;ws;i++) {mHitWeights[i]=ws%100; ws/=100;}
00037 mHitWeights[i]=0;
00038 }
00039 Int_t hitWeight(Int_t rxy) const {
00040 if (rxy>50) return 0;
00041 Int_t i=0; for (i=0;rxy>mHitRegions[i];i++) {}
00042 return mHitWeights[i];
00043 }
00044 Int_t sumWeight() const {return 20;}
00045
00046 protected:
00047 StiKalmanTrackFinderParameters(St_KalmanTrackFinderParameters *table=0) :
00048 TChair(table) {
00049 memset(mBeg,0,mEnd-mBeg+1);
00050 setHitRegions(HitRegions());
00051 setHitWeights(HitWeights());
00052 }
00053 virtual ~StiKalmanTrackFinderParameters() {fgInstance = 0;}
00054 Char_t mBeg[1];
00055 Int_t mHitRegions[4];
00056 Int_t mHitWeights[4];
00057 Char_t mEnd[1];
00058 private:
00059 static StiKalmanTrackFinderParameters* fgInstance;
00060 ClassDefineChair(StiKalmanTrackFinderParameters,St_KalmanTrackFinderParameters, KalmanTrackFinderParameters_st )
00061 ClassDef(StiKalmanTrackFinderParameters,1)
00062 };
00063 #endif