StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StDcaGeometry.h
1 
5 /***************************************************************************
6  *
7  * $Id: StDcaGeometry.h,v 2.8 2017/06/01 23:48:44 smirnovd Exp $
8  *
9  * Author: Victor Perevoztchikov, Thomas Ullrich, May 2006
10  ***************************************************************************
11  *
12  * Description:
13  *
14  ***************************************************************************
15  *
16  * $Log: StDcaGeometry.h,v $
17  * Revision 2.8 2017/06/01 23:48:44 smirnovd
18  * [Cosmetic] StDcaGeometry: Whitespace adjustments
19  *
20  * Revision 2.7 2012/05/07 14:42:57 fisyak
21  * Add handilings for Track to Fast Detectors Matching
22  *
23  * Revision 2.6 2012/03/28 13:39:46 fisyak
24  * Add default parameter for Print
25  *
26  * Revision 2.5 2010/01/26 20:34:39 fisyak
27  * Add print out and conversion from DCA to x,y,z,px,py,pz
28  *
29  * Revision 2.4 2009/10/28 13:54:35 fisyak
30  * Forgot one more set
31  *
32  * Revision 2.3 2008/03/04 01:03:14 perev
33  * remove redundant mHz
34  *
35  * Revision 2.2 2006/08/04 19:08:43 perev
36  * CleanUpOnly
37  *
38  * Revision 2.1 2006/05/24 17:27:43 ullrich
39  * Initial Revision.
40  *
41  **************************************************************************/
42 #ifndef StDcaGeometry_hh
43 #define StDcaGeometry_hh
44 #include "StObject.h"
45 #include "StThreeVectorF.hh"
46 #include "StPhysicalHelixD.hh"
47 #include "THelixTrack.h"
48 
49 class StDcaGeometry : public StObject {
50 public:
51  StDcaGeometry();
52  virtual ~StDcaGeometry();
53 
54  Int_t charge() const {return (mPti>0)? -1:1;} // synchro with StiTrackNode charge definition
55  Double_t impact() const {return mImp;}
56  Double_t curvature() const {return mCurv;}
57  Double_t psi() const {return mPsi ;}
58  Double_t dipAngle() const {return atan(mTan);}
59  Double_t tanDip() const {return mTan ;}
60  Double_t pt() const {return 1./fabs(mPti);}
61  Double_t z() const {return mZ ;}
62  Double_t hz() const {return mCurv/mPti;}
63  StThreeVectorF origin() const;
64  StThreeVectorF momentum() const;
65  StPhysicalHelixD helix() const;
66  THelixTrack thelix() const;
67  const float* params() const {return &mImp;}
68  const float* errMatrix() const {return &mImpImp;}
69  void GetXYZ(Double_t xyzp[6], Double_t CovXyzp[21]) const;
70  virtual void Print(Option_t *option = "") const;
71  //
72  // Experts only set function
73  //
74  void set(const Float_t pars[6], const Float_t errs[15]);
75  void set(const Double_t pars[6], const Double_t errs[15]);
76 
77 private:
78  Char_t mBeg[1];
79  Float_t mImp;
84  Float_t mZ;
86  Float_t mPsi;
88  Float_t mPti;
90  Float_t mTan;
92  Float_t mCurv;
93 
95  Float_t mImpImp;
96  Float_t mZImp, mZZ;
97  Float_t mPsiImp, mPsiZ, mPsiPsi;
98  Float_t mPtiImp, mPtiZ, mPtiPsi, mPtiPti;
99  Float_t mTanImp, mTanZ, mTanPsi, mTanPti, mTanTan;
100  Char_t mEnd[1];
101 
102  ClassDef(StDcaGeometry,3)
103 };
104 ostream& operator<<(ostream& os, StDcaGeometry const & dca);
105 
106 #endif