StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEStructPairLUT.h
1 /**********************************************************************
2  *
3  * $Id: StEStructPairLUT.h,v 1.2 2010/09/02 21:24:08 prindle Exp $
4  *
5  * Author: Duncan Prindle
6  *
7  **********************************************************************
8  *
9  * Description: If a pair of tracks gets too close it may be lost (due to splitting
10  * or merging). Separation distance depends on reference radius, radii
11  * of the two tracks, difference in phi, difference in eta and charge
12  * signs of the tracks. (Actually, there is an eta dependence, but it is small)
13  * Create Look Up Tables (LUT) by integrating over eta and reference
14  * radius. Use these tables to accept/reject pairs.
15  *
16  *
17  ***********************************************************************/
18 
19 #ifndef _StEStructPairLUT
20 #define _StEStructPairLUT
21 
22 #include "TH2F.h"
23 #include "TH2D.h"
24 
26  public:
27  TH2D *mDists[4];
28  TH2F *mCutLS[55], *mCutUS[55];
29  double mR1, mEta1, mPhi1, mSign1;
30  double mR2, mEta2, mPhi2, mSign2;
31  double mDelEta, mDelPhi;
32  int nDelEta, nDelPhi;
33  double mX1_50, mY1_50, mX2_50, mY2_50, mDPhi_50, mDPhi_Ref;
34  double mDelXYCut, mDelZCut;
35  double mRad[10];
36  double mPi;
37  double mRRefMin, mRRefMax;
38 
40  virtual ~StEStructPairLUT();
41  double s (double Ref, double Rad, double eta);
42  double alpha (double Ref, double Rad, double eta, double sign);
43  double lambda (double eta);
44  double delZ (double Ref);
45  double delXY (double Ref);
46  void initHists();
47  void fillDists();
48  void integrateEta(TH2F *h);
49  void fillLUTs();
50  // Note that curvature is signed.
51  int cut(double curvature1, double curvature2, double delPhi, double delEta);
52 
53  ClassDef(StEStructPairLUT,1)
54 };
55 
56 #endif