StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEpdEpInfo.h
1 #ifndef StEpdEpInfo_H
2 #define StEpdEpInfo_H
3 
4 #define _EpOrderMax 3 // maximum order of EP to worry about.
5 
6 #include "TVector2.h"
7 
12 
13  // making StEpdEpFinder a "friend class" just gives it direct access to the arrays.
14  // But the general User is required to use accessors, since the numbering/index convention can be confusing
15  friend class StEpdEpFinder;
16 
17 
18  public:
19  StEpdEpInfo();
20  ~StEpdEpInfo(){/* no op */};
21 
22 
23  // in the below, when it says "of order," then "order" begins at 1. E.g. order=2 means second-order q vector
24 
25  //-----------------------------------------------------------------------------------------
28  TVector2 EastRawQ(int order);
31  TVector2 WestRawQ(int order);
32 
33  //-----------------------------------------------------------------------------------------
36  TVector2 EastPhiWeightedQ(int order);
39  TVector2 WestPhiWeightedQ(int order);
40 
41  //-----------------------------------------------------------------------------------------
46  double EastRawPsi(int order);
49  double WestRawPsi(int order);
52  double FullRawPsi(int order);
53 
54  //-----------------------------------------------------------------------------------------
59  double EastPhiWeightedPsi(int order);
62  double WestPhiWeightedPsi(int order);
65  double FullPhiWeightedPsi(int order);
66 
67  //-----------------------------------------------------------------------------------------
72  double EastPhiWeightedAndShiftedPsi(int order);
75  double WestPhiWeightedAndShiftedPsi(int order);
79  double FullPhiWeightedAndShiftedPsi(int order);
80 
81  // ============================== Ring-by-ring stuff below ========================
82 
83  //-----------------------------------------------------------------------------------------
87  TVector2 EastRingRawQ(int order, int ring);
91  TVector2 WestRingRawQ(int order, int ring);
92 
93  //-----------------------------------------------------------------------------------------
97  TVector2 EastRingPhiWeightedQ(int order, int ring);
101  TVector2 WestRingPhiWeightedQ(int order, int ring);
102 
103  //-----------------------------------------------------------------------------------------
109  double EastRingRawPsi(int order, int ring);
113  double WestRingRawPsi(int order, int ring);
114 
115  //-----------------------------------------------------------------------------------------
121  double EastRingPhiWeightedPsi(int order, int ring);
125  double WestRingPhiWeightedPsi(int order, int ring);
126 
127  //-----------------------------------------------------------------------------------------
131  double EastRingSumWeightsRaw(int ring);
135  double WestRingSumWeightsRaw(int ring);
136 
137  //-----------------------------------------------------------------------------------------
141  double EastRingSumWeightsPhiWeighted(int ring);
145  double WestRingSumWeightsPhiWeighted(int ring);
146 
147  //-----------------------------------------------------------------------------------------
153  double EastSumWeightsRaw(int order);
159  double WestSumWeightsRaw(int order);
160 
161  //-----------------------------------------------------------------------------------------
167  double EastSumWeightsPhiWeighted(int order);
173  double WestSumWeightsPhiWeighted(int order);
174 
175 
176 
177  private:
178 
179  bool ArgumentOutOfBounds(int order);
180  bool ArgumentOutOfBounds(int order, int ring);
181 
182  TVector2 RawQ(int ew, int order);
183  TVector2 PhiWeightedQ(int ew, int order);
184  TVector2 RingRawQ(int ew, int order, int ring);
185  TVector2 RingPhiWeightedQ(int ew, int order, int ring);
186 
187  double RawPsi(int ewfull, int order);
188  double PhiWeightedPsi(int ewfull, int order);
189  double PhiWeightedAndShiftedPsi(int ewfull, int order);
190  double RingRawPsi(int ew, int order, int ring);
191  double RingPhiWeightedPsi(int ew, int order, int ring);
192 
193  double RingSW_Raw(int ew, int ring);
194  double RingSW_PhiWeighted(int ew, int ring);
195  double WheelSW_Raw(int ew, int order);
196  double WheelSW_PhiWeighted(int ew, int order);
197 
198  double Range(double psi, int order);
199 
200 
201 
202  double QrawOneSide[2][_EpOrderMax][2];
203  double QphiWeightedOneSide[2][_EpOrderMax][2];
204  double PsiRaw[3][_EpOrderMax];
205  double PsiPhiWeighted[3][_EpOrderMax];
206  double PsiPhiWeightedAndShifted[3][_EpOrderMax];
207  // ring-by-ring
208  double QringRaw[2][_EpOrderMax][2][16];
209  double QringPhiWeighted[2][_EpOrderMax][2][16];
210  double PsiRingRaw[2][_EpOrderMax][16];
211  double PsiRingPhiWeighted[2][_EpOrderMax][16];
212  // following are sums of weights so that Xiaoyu can "unnormalize" the Q-vectors
213  double RingSumWeightsRaw[2][16];
214  double RingSumWeightsPhiWeighted[2][16];
215  double WheelSumWeightsRaw[2][_EpOrderMax];
216  double WheelSumWeightsPhiWeighted[2][_EpOrderMax];
217 
218 };
219 
220 #endif
double EastRawPsi(int order)
double EastSumWeightsPhiWeighted(int order)
TVector2 EastRingPhiWeightedQ(int order, int ring)
Definition: StEpdEpInfo.cxx:79
double FullPhiWeightedAndShiftedPsi(int order)
double WestRingSumWeightsRaw(int ring)
Definition: StEpdEpInfo.cxx:91
double WestPhiWeightedAndShiftedPsi(int order)
double FullRawPsi(int order)
double EastRingSumWeightsPhiWeighted(int ring)
Definition: StEpdEpInfo.cxx:97
TVector2 WestRingPhiWeightedQ(int order, int ring)
Definition: StEpdEpInfo.cxx:80
double EastPhiWeightedPsi(int order)
double WestRingPhiWeightedPsi(int order, int ring)
double EastPhiWeightedAndShiftedPsi(int order)
double WestPhiWeightedPsi(int order)
double EastRingRawPsi(int order, int ring)
TVector2 EastPhiWeightedQ(int order)
Definition: StEpdEpInfo.cxx:53
TVector2 WestPhiWeightedQ(int order)
Definition: StEpdEpInfo.cxx:54
TVector2 EastRingRawQ(int order, int ring)
Definition: StEpdEpInfo.cxx:66
double FullPhiWeightedPsi(int order)
double EastSumWeightsRaw(int order)
double WestRawPsi(int order)
TVector2 WestRingRawQ(int order, int ring)
Definition: StEpdEpInfo.cxx:67
TVector2 WestRawQ(int order)
Definition: StEpdEpInfo.cxx:41
TVector2 EastRawQ(int order)
Definition: StEpdEpInfo.cxx:40
double WestRingSumWeightsPhiWeighted(int ring)
Definition: StEpdEpInfo.cxx:98
double WestRingRawPsi(int order, int ring)
double WestSumWeightsPhiWeighted(int order)
double EastRingSumWeightsRaw(int ring)
Definition: StEpdEpInfo.cxx:90
double EastRingPhiWeightedPsi(int order, int ring)
double WestSumWeightsRaw(int order)