00001 #ifndef __StiNodePars_h_
00002 #define __StiNodePars_h_
00003 #include "Rtypes.h"
00004 class StiNodePars {
00005 public:
00006 void reset(){memset(this,0,sizeof(StiNodePars));_cosCA=1;}
00007 void ready(){_cosCA=cos(eta());_sinCA=sin(eta()); curv() = hz()*ptin();
00008 if (fabs(curv()) < 1e-9) curv()=1e-9;}
00009 StiNodePars &merge(Double_t wt,StiNodePars &other);
00010
00012 Double_t operator[](Int_t idx) const {return P[idx];}
00013 Double_t &operator[](Int_t idx) {return P[idx];}
00014 Double_t x() const {return P[0];}
00015 Double_t y() const {return P[1];}
00016 Double_t z() const {return P[2];}
00017 Double_t eta() const {return P[3];}
00018 Double_t ptin() const {return P[4];}
00019 Double_t tanl() const {return P[5];}
00020 Double_t curv() const {return P[6];}
00021 Double_t hz() const {return P[7];}
00022 Double_t &x() {return P[0];}
00023 Double_t &y() {return P[1];}
00024 Double_t &z() {return P[2];}
00025 Double_t &eta() {return P[3];}
00026 Double_t &ptin() {return P[4];}
00027 Double_t &tanl() {return P[5];}
00028 Double_t &curv() {return P[6];}
00029 Double_t &hz() {return P[7];}
00030 Double_t *A(Int_t i = 0) {return &P[i];}
00031
00032 Int_t check(const char *pri=0) const;
00033 void print() const;
00034
00035 enum {kX=0,kY,kZ,kEta,kCurv,kTanL};
00036
00038 Double_t _cosCA;
00039 Double_t _sinCA;
00040 Double_t P[8];
00041 };
00042 #endif