StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
multStruct.cxx
1 #define multStruct_cxx
2 
3 #include "TStyle.h"
4 #include "TCanvas.h"
5 #include "multStruct.h"
6 
7 ClassImp( multStruct )
8 
9 int multStruct::NewEvent(float xv, float yv, float zv) {
10  mCalcRefMult = true;
11  mRefMult = 0;
12  mXVertex = xv;
13  mYVertex = yv;
14  mZVertex = zv;
15  for (int iPt=0;iPt<NPTBINS;iPt++) {
16  for (int iPhi=0;iPhi<NPHIBINS;iPhi++) {
17  for (int iEta=0;iEta<NETABINS;iEta++) {
18  mTrackBinPlus[iPt][iPhi][iEta][0] = 0;
19  mTrackBinPlus[iPt][iPhi][iEta][1] = 0;
20  mTrackBinPlus[iPt][iPhi][iEta][2] = 0;
21  mTrackBinMinus[iPt][iPhi][iEta][0] = 0;
22  mTrackBinMinus[iPt][iPhi][iEta][1] = 0;
23  mTrackBinMinus[iPt][iPhi][iEta][2] = 0;
24  }
25  }
26  }
27  return 1;
28 }
29 int multStruct::GetRefMult() {
30  return mRefMult;
31 }
32 void multStruct::SetRefMult(int refMult) {
33  mCalcRefMult = false;
34  mRefMult = refMult;
35 }
36 int multStruct::AddTrack(int phiBin, int etaBin, int iPt, int sign, double pt) {
37  if (mCalcRefMult) {
38  mRefMult++;
39  }
40  int jPt = iPt;
41  if (jPt < 0) {
42  iPt = mNPtBins;
43  } else if (jPt >= mNPtBins) {
44  printf("!!!!! in multStruct: Trying to store into Pt bin %i. Larger than number of bins %i\n", iPt, mNPtBins);
45  iPt = mNPtBins;
46  }
47  if (sign > 0) {
48  mTrackBinPlus[iPt][phiBin][etaBin][0] += 1;
49  mTrackBinPlus[iPt][phiBin][etaBin][1] += pt;
50  mTrackBinPlus[iPt][phiBin][etaBin][2] += pt*pt;
51  } else if (sign < 0) {
52  mTrackBinMinus[iPt][phiBin][etaBin][0] += 1;
53  mTrackBinMinus[iPt][phiBin][etaBin][1] += pt;
54  mTrackBinMinus[iPt][phiBin][etaBin][2] += pt*pt;
55  }
56  return 1;
57 }
58 double multStruct::GetNSum( int iPhi, int iEta, int iPt ) {
59  if (iPhi < 0) {
60  return -1;
61  } else if (iPhi >= NPHIBINS) {
62  return -2;
63  } else if (iEta < 0) {
64  return -3;
65  } else if (iEta >= NETABINS) {
66  return -4;
67  } else if (iPt < 0) {
68  return -5;
69  } else if (iPt > mNPtBins) {
70  return -6;
71  } else {
72  return mTrackBinPlus[iPt][iPhi][iEta][0] + mTrackBinMinus[iPt][iPhi][iEta][0];
73  }
74 }
75 double multStruct::GetNPlus( int iPhi, int iEta, int iPt ) {
76  if (iPhi < 0) {
77  return -1;
78  } else if (iPhi >= NPHIBINS) {
79  return -2;
80  } else if (iEta < 0) {
81  return -3;
82  } else if (iEta >= NETABINS) {
83  return -4;
84  } else if (iPt < 0) {
85  return -5;
86  } else if (iPt > mNPtBins) {
87  return -6;
88  } else {
89  return mTrackBinPlus[iPt][iPhi][iEta][0];
90  }
91 }
92 double multStruct::GetNMinus( int iPhi, int iEta, int iPt ) {
93  if (iPhi < 0) {
94  return -1;
95  } else if (iPhi >= NPHIBINS) {
96  return -2;
97  } else if (iEta < 0) {
98  return -3;
99  } else if (iEta >= NETABINS) {
100  return -4;
101  } else if (iPt < 0) {
102  return -5;
103  } else if (iPt > mNPtBins) {
104  return -6;
105  } else {
106  return mTrackBinMinus[iPt][iPhi][iEta][0];
107  }
108 }
109 double multStruct::GetNDiff( int iPhi, int iEta, int iPt ) {
110  if (iPhi < 0) {
111  return -1;
112  } else if (iPhi >= NPHIBINS) {
113  return -2;
114  } else if (iEta < 0) {
115  return -3;
116  } else if (iEta >= NETABINS) {
117  return -4;
118  } else if (iPt < 0) {
119  return -5;
120  } else if (iPt > mNPtBins) {
121  return -6;
122  } else {
123  return mTrackBinPlus[iPt][iPhi][iEta][0] - mTrackBinMinus[iPt][iPhi][iEta][0];
124  }
125 }
126 double multStruct::GetPtSum( int iPhi, int iEta, int iPt ) {
127  if (iPhi < 0) {
128  return -1;
129  } else if (iPhi >= NPHIBINS) {
130  return -2;
131  } else if (iEta < 0) {
132  return -3;
133  } else if (iEta >= NETABINS) {
134  return -4;
135  } else if (iPt < 0) {
136  return -5;
137  } else if (iPt > mNPtBins) {
138  return -6;
139  } else {
140  return mTrackBinPlus[iPt][iPhi][iEta][1] + mTrackBinMinus[iPt][iPhi][iEta][1];
141  }
142 }
143 double multStruct::GetPtPlus( int iPhi, int iEta, int iPt ) {
144  if (iPhi < 0) {
145  return -1;
146  } else if (iPhi >= NPHIBINS) {
147  return -2;
148  } else if (iEta < 0) {
149  return -3;
150  } else if (iEta >= NETABINS) {
151  return -4;
152  } else if (iPt < 0) {
153  return -5;
154  } else if (iPt > mNPtBins) {
155  return -6;
156  } else {
157  return mTrackBinPlus[iPt][iPhi][iEta][1];
158  }
159 }
160 double multStruct::GetPtMinus( int iPhi, int iEta, int iPt ) {
161  if (iPhi < 0) {
162  return -1;
163  } else if (iPhi >= NPHIBINS) {
164  return -2;
165  } else if (iEta < 0) {
166  return -3;
167  } else if (iEta >= NETABINS) {
168  return -4;
169  } else if (iPt < 0) {
170  return -5;
171  } else if (iPt > mNPtBins) {
172  return -6;
173  } else {
174  return mTrackBinMinus[iPt][iPhi][iEta][1];
175  }
176 }
177 double multStruct::GetPtSqSum( int iPhi, int iEta, int iPt ) {
178  if (iPhi < 0) {
179  return -1;
180  } else if (iPhi >= NPHIBINS) {
181  return -2;
182  } else if (iEta < 0) {
183  return -3;
184  } else if (iEta >= NETABINS) {
185  return -4;
186  } else if (iPt < 0) {
187  return -5;
188  } else if (iPt > mNPtBins) {
189  return -6;
190  } else {
191  return mTrackBinPlus[iPt][iPhi][iEta][2] + mTrackBinMinus[iPt][iPhi][iEta][2];
192  }
193 }
194 double multStruct::GetPtSqPlus( int iPhi, int iEta, int iPt ) {
195  if (iPhi < 0) {
196  return -1;
197  } else if (iPhi >= NPHIBINS) {
198  return -2;
199  } else if (iEta < 0) {
200  return -3;
201  } else if (iEta >= NETABINS) {
202  return -4;
203  } else if (iPt < 0) {
204  return -5;
205  } else if (iPt > mNPtBins) {
206  return -6;
207  } else {
208  return mTrackBinPlus[iPt][iPhi][iEta][2];
209  }
210 }
211 double multStruct::GetPtSqMinus( int iPhi, int iEta, int iPt ) {
212  if (iPhi < 0) {
213  return -1;
214  } else if (iPhi >= NPHIBINS) {
215  return -2;
216  } else if (iEta < 0) {
217  return -3;
218  } else if (iEta >= NETABINS) {
219  return -4;
220  } else if (iPt < 0) {
221  return -5;
222  } else if (iPt > mNPtBins) {
223  return -6;
224  } else {
225  return mTrackBinMinus[iPt][iPhi][iEta][2];
226  }
227 }