StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Helper.h
1 /***************************************************************************
2  *
3  * $Id: Helper.h,v 1.1 2002/05/31 22:03:18 jklay Exp $
4  *
5  * Author: Bum Choi, UT Austin, Apr 2002
6  *
7  ***************************************************************************
8  *
9  * Description: This class contains methods used by StHiMicroMaker to
10  * generate highpt uDST's from StEvent for highpt Analysis.
11  *
12  ***************************************************************************
13  *
14  * $Log: Helper.h,v $
15  * Revision 1.1 2002/05/31 22:03:18 jklay
16  * Collected common utilities into one location
17  *
18  * Revision 1.2 2002/04/03 00:37:41 jklay
19  * Fixed some bugs, added new version of dcaz
20  *
21  * Revision 1.2 2002/04/03 00:23:27 jklay
22  * Fixed private member access bugs in analysis code
23  *
24  * Revision 1.1 2002/04/02 20:00:41 jklay
25  * Bums highpt uDST Maker
26  *
27  *
28  **************************************************************************/
29 #ifndef Helper_HH
30 #define Helper_HH
31 
32 #include "StEventTypes.h"
33 #include "StPhysicalHelixD.hh"
34 //#include "StThreeVectorD.hh"
35 //#include "StThreeVectorF.hh"
36 
37 
38 double distance(double a1, double b1, double a2, double b2);
39 double distance(const StThreeVectorF& point1,
40  const StThreeVectorF& point2);
41 
42 double dca3d(const StPhysicalHelixD&, const StThreeVectorF& point);
43 
44 double dca2d(const StPhysicalHelixD&, const StThreeVectorF& point,
45  const StThreeVectorF* origin=0);
46 
47 double dcaz(const StPhysicalHelixD&, const StThreeVectorF& point,
48  const StTrack* track=0);
49 
50 /* This was replaced by the above function - JLK 2.APR.2002
51 double dcaz(const StPhysicalHelixD&, const StThreeVectorF& point);
52 */
53 
54 double crossingAngle(const StPhysicalHelixD& helix,
55  const StTpcHit* hit, float bField=0);
56 
57 double padrowDca(const StPhysicalHelixD& helix,
58  const StTpcHit* hit);
59 
60 // helix stuff
61 //
62 double propagateToPadrow(const StPhysicalHelixD& helix,
63  const StTpcHit* hit);
64 double helixPadrowDca(const StPhysicalHelixD& helix,
65  const StTpcHit* hit);
66 double helixCrossingAngle(const StPhysicalHelixD& helix,
67  const StTpcHit* hit, float bField);
68 
69 double helixDca2D(const StPhysicalHelixD&,const StThreeVectorF& point);
70 
71 
72 // straight line residual stuff
73 //
74 StThreeVectorF lineAt2d(const StPhysicalHelixD&, const StThreeVectorF& point);
75 
76 double
77 linePadrowDca(const StPhysicalHelixD& helix,
78  const StTpcHit* hit);
79 
80 double
81 lineCrossingAngle(const StPhysicalHelixD& helix,
82  const StTpcHit* hit);
83 
84 double
85 lineCrossingAngle(const StPhysicalHelixD& helix,
86  const int sector);
87 
88 double
89 lineDca2D(const StPhysicalHelixD& helix,
90  const StThreeVectorF& hit,
91  const StThreeVectorF& origin);
92 
93 #endif