1 #ifndef __StiNodePars_h_
2 #define __StiNodePars_h_
5 #define kEC 2.99792458e-4
6 #define kZEROHZ 2e-6 //minimal/zero mag field
7 #define kZEROPTI 1e-3 //minimal/zero 1/pt
8 #define kZEROCURV (kZEROHZ*kZEROPTI) //minimal/zero curvature
9 #define kBIGPT 10 //Pt when energy loss ignored
15 enum {kX=0,kY=1,kZ=2,kPhi=3,kPtin=4,kTan=5,kCurv=6,kHz=7};
18 int isZeroH()
const {
return fabs(P[kHz]) <= kZEROHZ;}
21 void rotate(
double alfa);
26 double x()
const {
return P[kX];}
27 double y()
const {
return P[kY];}
28 double z()
const {
return P[kZ];}
29 double eta()
const {
return P[kPhi];}
30 double phi()
const {
return P[kPhi];}
31 double ptin()
const {
return P[kPtin];}
32 double tanl()
const {
return P[kTan];}
33 double curv()
const {
return P[kCurv];}
34 double rxy2()
const {
return (P[kX]*P[kX]+P[kY]*P[kY]);}
35 double rxy()
const {
return sqrt(P[kX]*P[kX]+P[kY]*P[kY]);}
36 double hz()
const {
return P[kHz];}
37 double &x() {
return P[kX];}
38 double &y() {
return P[kY];}
39 double &z() {
return P[kZ];}
40 double &eta() {
return P[kPhi];}
41 double &ptin() {
return P[kPtin];}
42 double &tanl() {
return P[kTan];}
43 double &curv() {
return P[kCurv];}
44 double &hz() {
return P[kHz];}
45 double *A(Int_t i) {
return &P[i];}
47 Int_t check(
const char *pri=0)
const;
59 float mELoss,mLen,mDens,mX0;
62 inline void StiNodePars::ready()
64 _cosCA=cos(P[kPhi]);_sinCA=sin(P[kPhi]);
65 if (fabs(P[kHz])<= kZEROHZ) {
66 P[kCurv] = kZEROCURV; P[kPtin]= kZEROPTI;
68 P[kCurv] = P[kHz]*P[kPtin];
double _cosCA
sine and cosine of cross angle
double operator[](Int_t idx) const
accessors