]>
Commit | Line | Data |
---|---|---|
bc92a3aa | 1 | //Christine Nattrass, University of Tennessee at Knoxville |
2 | //This macro is to calculate the contributions to Et from various particles based on Levy fits to ALICE data at 900 GeV | |
3 | //It uses d^2N/dpTdy from the papers, weighs it by Et, and integrates over all pT. | |
4 | //A=0 for mesons | |
5 | //A=1 for antinucleons since they would anihilate in the calorimeter if they were observed by a calorimeter | |
6 | //A=-1 for nucleons since they would not anihilate and their mass would not be measured | |
7 | //At the end this is used to calculate the neutral energy correction | |
8 | class AliAnalysisLevyPtModified{ | |
9 | public: | |
10 | virtual ~AliAnalysisLevyPtModified(){;}; | |
11 | ||
12 | ||
13 | Double_t Evaluate(Double_t *pt, Double_t *par) | |
14 | { | |
15 | Double_t ldNdy = par[0]; | |
16 | Double_t l2pi = 2*TMath::Pi(); | |
17 | Double_t lTemp = par[1]; | |
18 | Double_t lPower = par[2]; | |
19 | Double_t lMass = par[3]; | |
20 | Double_t A = par[4]; | |
21 | Double_t Et = TMath::Sqrt(pt[0]*pt[0]+lMass*lMass)+A*lMass; | |
22 | ||
23 | Double_t lBigCoef = ((lPower-1)*(lPower-2)) / (l2pi*lPower*lTemp*(lPower*lTemp+lMass*(lPower-2))); | |
24 | Double_t lInPower = 1 + (TMath::Sqrt(pt[0]*pt[0]+lMass*lMass)-lMass) / (lPower*lTemp); | |
25 | ||
26 | return ldNdy *Et* pt[0] * lBigCoef * TMath::Power(lInPower,(-1)*lPower); | |
27 | } | |
28 | ClassDef(AliAnalysisLevyPtModified, 1); | |
29 | }; | |
30 | ||
31 | void CorrNeutralLevyFit(){ | |
32 | ||
33 | // particle & $\frac{dN}{dy}$ & T (GeV) & n & $\frac{dE_T}{dy}$& a &\ET \\ \hline | |
34 | // $\pi^{+}+\pi^{-}$ & 2.977 $\pm$ 0.15 & 0.126 $\pm$ 0.001 & 7.82 $\pm$ 0.1 & & & \\ | |
35 | AliAnalysisLevyPtModified *function = new AliAnalysisLevyPtModified(); | |
36 | fPion = new TF1("fPion",function, &AliAnalysisLevyPtModified::Evaluate,0,50,5,"AliAnalysisLevyPtModified","Evaluate"); | |
37 | fPion->SetParameter(0,2.977);//dN/dy | |
38 | fPion->SetParameter(1,0.126);//T | |
39 | fPion->SetParameter(2,7.82);//n | |
40 | fPion->SetParameter(3,0.13957);//mass | |
41 | fPion->SetParameter(4,0);//A=0 for pions | |
42 | float integralPion = fPion->Integral(0,50); | |
43 | float integralErrPion = integralPion*0.15/2.977; | |
44 | float myerrorPionT = 0.0; | |
45 | float myerrorPionn = 0.0; | |
46 | float tmpPion; | |
47 | float T = 0.126; | |
48 | float Terr = 0.001; | |
49 | float n = 7.82; | |
50 | float nerr = 0.1; | |
51 | fPion->SetParameter(1,T+Terr);//T | |
52 | tmpPion = fPion->Integral(0,50); | |
53 | myerrorPionT = TMath::Abs(integralPion-tmpPion); | |
54 | fPion->SetParameter(1,T-Terr);//T | |
55 | tmpPion = fPion->Integral(0,50); | |
56 | if(TMath::Abs(integralPion-tmpPion)>myerrorPionT) myerrorPionT = TMath::Abs(integralPion-tmpPion); | |
57 | fPion->SetParameter(1,T);//T | |
58 | fPion->SetParameter(2,n+nerr);//n | |
59 | tmpPion = fPion->Integral(0,50); | |
60 | cout<<"integral "<<tmpPion<<endl; | |
61 | myerrorPionn = TMath::Abs(integralPion-tmpPion); | |
62 | fPion->SetParameter(2,n-nerr);//n | |
63 | tmpPion = fPion->Integral(0,50); | |
64 | cout<<"integral "<<tmpPion<<endl; | |
65 | if(TMath::Abs(integralPion-tmpPion)>myerrorPionn) myerrorPionn = TMath::Abs(integralPion-tmpPion); | |
66 | cout<<"Pion Et = "<<integralPion<<"$\\pm$"<<integralErrPion<<"$\\pm$"<<myerrorPionT<<"$\\pm$"<<myerrorPionn<<endl; | |
67 | //This isn't strictly correct because the errors on the parameters should be correlated but it's close | |
68 | integralErrPion = TMath::Sqrt(TMath::Power(integralErrPion,2)+TMath::Power(myerrorPionT,2)+TMath::Power(myerrorPionn,2)); | |
69 | cout<<"Pion Et = "<<integralPion<<"$\\pm$"<<integralErrPion<<endl; | |
70 | ||
71 | // particle & $\frac{dN}{dy}$ & T (GeV) & n & $\frac{dE_T}{dy}$& a &\ET \\ \hline | |
72 | // $K^{+}+K^{-}$ & 0.366 $\pm$ 0.03 & 0.160 $\pm$ 0.006 & 6.087 $\pm$ 0.4 & & & \\ | |
73 | fKaon = new TF1("fKaon",function, &AliAnalysisLevyPtModified::Evaluate,0,50,5,"AliAnalysisLevyPtModified","Evaluate"); | |
74 | fKaon->SetParameter(0,0.366);//dN/dy | |
75 | fKaon->SetParameter(1,0.160);//T | |
76 | fKaon->SetParameter(2,6.087);//n | |
77 | fKaon->SetParameter(3,0.493677);//mass | |
78 | fKaon->SetParameter(4,0);//A=0 for kaons | |
79 | float integralKaon = fKaon->Integral(0,50); | |
80 | float integralErrKaon = integralKaon*0.03/0.366; | |
81 | float myerrorKaonT = 0.0; | |
82 | float myerrorKaonn = 0.0; | |
83 | float tmpKaon; | |
84 | float T = 0.160; | |
85 | float Terr = 0.006; | |
86 | float n = 6.087; | |
87 | float nerr = 0.4; | |
88 | fKaon->SetParameter(1,T+Terr);//T | |
89 | tmpKaon = fKaon->Integral(0,50); | |
90 | myerrorKaonT = TMath::Abs(integralKaon-tmpKaon); | |
91 | fKaon->SetParameter(1,T-Terr);//T | |
92 | tmpKaon = fKaon->Integral(0,50); | |
93 | if(TMath::Abs(integralKaon-tmpKaon)>myerrorKaonT) myerrorKaonT = TMath::Abs(integralKaon-tmpKaon); | |
94 | fKaon->SetParameter(1,T);//T | |
95 | fKaon->SetParameter(2,n+nerr);//n | |
96 | tmpKaon = fKaon->Integral(0,50); | |
97 | cout<<"integral "<<tmpKaon<<endl; | |
98 | myerrorKaonn = TMath::Abs(integralKaon-tmpKaon); | |
99 | fKaon->SetParameter(2,n-nerr);//n | |
100 | tmpKaon = fKaon->Integral(0,50); | |
101 | cout<<"integral "<<tmpKaon<<endl; | |
102 | if(TMath::Abs(integralKaon-tmpKaon)>myerrorKaonn) myerrorKaonn = TMath::Abs(integralKaon-tmpKaon); | |
103 | cout<<"Kaon Et = "<<integralKaon<<"$\\pm$"<<integralErrKaon<<"$\\pm$"<<myerrorKaonT<<"$\\pm$"<<myerrorKaonn<<endl; | |
104 | //This isn't strictly correct because the errors on the parameters should be correlated but it's close | |
105 | integralErrKaon = TMath::Sqrt(TMath::Power(integralErrKaon,2)+TMath::Power(myerrorKaonT,2)+TMath::Power(myerrorKaonn,2)); | |
106 | cout<<"Kaon Et = "<<integralKaon<<"$\\pm$"<<integralErrKaon<<endl; | |
107 | ||
108 | // particle & $\frac{dN}{dy}$ & T (GeV) & n & $\frac{dE_T}{dy}$& a &\ET \\ \hline | |
109 | // $p + \bar{p}$ & 0.157 $\pm$ 0.012 & 0.196 $\pm$ 0.009 & 8.6 $\pm$ 1.1 & & & \\ | |
110 | fProton = new TF1("fProton",function, &AliAnalysisLevyPtModified::Evaluate,0,50,5,"AliAnalysisLevyPtModified","Evaluate"); | |
111 | fProton->SetParameter(0,0.157/2.0);//dN/dy | |
112 | fProton->SetParameter(1,0.196);//T | |
113 | fProton->SetParameter(2,8.6);//n | |
114 | fProton->SetParameter(3,0.938272);//mass | |
115 | fProton->SetParameter(4,-1);//A=0 for protons | |
116 | float integralProton = fProton->Integral(0,50); | |
117 | float integralErrProton = integralProton*0.012/0.157; | |
118 | float myerrorProtonT = 0.0; | |
119 | float myerrorProtonn = 0.0; | |
120 | float tmpProton; | |
121 | float T = 0.196; | |
122 | float Terr = 0.009; | |
123 | float n = 8.6; | |
124 | float nerr = 1.1; | |
125 | fProton->SetParameter(1,T+Terr);//T | |
126 | tmpProton = fProton->Integral(0,50); | |
127 | myerrorProtonT = TMath::Abs(integralProton-tmpProton); | |
128 | fProton->SetParameter(1,T-Terr);//T | |
129 | tmpProton = fProton->Integral(0,50); | |
130 | if(TMath::Abs(integralProton-tmpProton)>myerrorProtonT) myerrorProtonT = TMath::Abs(integralProton-tmpProton); | |
131 | fProton->SetParameter(1,T);//T | |
132 | fProton->SetParameter(2,n+nerr);//n | |
133 | tmpProton = fProton->Integral(0,50); | |
134 | cout<<"integral "<<tmpProton<<endl; | |
135 | myerrorProtonn = TMath::Abs(integralProton-tmpProton); | |
136 | fProton->SetParameter(2,n-nerr);//n | |
137 | tmpProton = fProton->Integral(0,50); | |
138 | cout<<"integral "<<tmpProton<<endl; | |
139 | if(TMath::Abs(integralProton-tmpProton)>myerrorProtonn) myerrorProtonn = TMath::Abs(integralProton-tmpProton); | |
140 | cout<<"Proton Et = "<<integralProton<<"$\\pm$"<<integralErrProton<<"$\\pm$"<<myerrorProtonT<<"$\\pm$"<<myerrorProtonn<<endl; | |
141 | //This isn't strictly correct because the errors on the parameters should be correlated but it's close | |
142 | integralErrProton = TMath::Sqrt(TMath::Power(integralErrProton,2)+TMath::Power(myerrorProtonT,2)+TMath::Power(myerrorProtonn,2)); | |
143 | cout<<"Proton Et = "<<integralProton<<"$\\pm$"<<integralErrProton<<endl; | |
144 | ||
145 | ||
146 | ||
147 | //Antiprotons... | |
148 | fProton->SetParameter(2,n);//n | |
149 | fProton->SetParameter(4,1);//A=0 for protons | |
150 | float integralAntiProton = fProton->Integral(0,50); | |
151 | float integralErrAntiProton = integralAntiProton*0.012/0.157; | |
152 | float myerrorAntiProtonT = 0.0; | |
153 | float myerrorAntiProtonn = 0.0; | |
154 | float tmpAntiProton; | |
155 | float T = 0.196; | |
156 | float Terr = 0.009; | |
157 | float n = 8.6; | |
158 | float nerr = 1.1; | |
159 | fProton->SetParameter(1,T+Terr);//T | |
160 | tmpAntiProton = fProton->Integral(0,50); | |
161 | myerrorAntiProtonT = TMath::Abs(integralAntiProton-tmpAntiProton); | |
162 | fProton->SetParameter(1,T-Terr);//T | |
163 | tmpAntiProton = fProton->Integral(0,50); | |
164 | if(TMath::Abs(integralAntiProton-tmpAntiProton)>myerrorAntiProtonT) myerrorAntiProtonT = TMath::Abs(integralAntiProton-tmpAntiProton); | |
165 | fProton->SetParameter(1,T);//T | |
166 | fProton->SetParameter(2,n+nerr);//n | |
167 | tmpAntiProton = fProton->Integral(0,50); | |
168 | cout<<"integral "<<tmpAntiProton<<endl; | |
169 | myerrorAntiProtonn = TMath::Abs(integralAntiProton-tmpAntiProton); | |
170 | fProton->SetParameter(2,n-nerr);//n | |
171 | tmpAntiProton = fProton->Integral(0,50); | |
172 | cout<<"integral "<<tmpAntiProton<<endl; | |
173 | if(TMath::Abs(integralAntiProton-tmpAntiProton)>myerrorAntiProtonn) myerrorAntiProtonn = TMath::Abs(integralAntiProton-tmpAntiProton); | |
174 | cout<<"AntiProton Et = "<<integralAntiProton<<"$\\pm$"<<integralErrAntiProton<<"$\\pm$"<<myerrorAntiProtonT<<"$\\pm$"<<myerrorAntiProtonn<<endl; | |
175 | //This isn't strictly correct because the errors on the parameters should be correlated but it's close | |
176 | integralErrAntiProton = TMath::Sqrt(TMath::Power(integralErrAntiProton,2)+TMath::Power(myerrorAntiProtonT,2)+TMath::Power(myerrorAntiProtonn,2)); | |
177 | cout<<"AntiProton Et = "<<integralAntiProton<<"$\\pm$"<<integralErrAntiProton<<endl; | |
178 | ||
179 | ||
180 | // particle & $\frac{dN}{dy}$ & T (GeV) & n & $\frac{dE_T}{dy}$& a &\ET \\ \hline | |
181 | // \kzeroshort &0.184 $\pm$ 0.006 & 0.168 $\pm$ 0.005 & 6.6 $\pm$ 0.3 & & & \\ | |
182 | fK0S = new TF1("fK0S",function, &AliAnalysisLevyPtModified::Evaluate,0,50,5,"AliAnalysisLevyPtModified","Evaluate"); | |
183 | fK0S->SetParameter(0,0.184);//dN/dy | |
184 | fK0S->SetParameter(1,0.168);//T | |
185 | fK0S->SetParameter(2,6.6);//n | |
186 | fK0S->SetParameter(3,.497614);//mass | |
187 | fK0S->SetParameter(4,0);//A=0 for kaons | |
188 | float integralK0S = fK0S->Integral(0,50); | |
189 | float integralErrK0S = integralK0S*0.006/0.184; | |
190 | float myerrorK0ST = 0.0; | |
191 | float myerrorK0Sn = 0.0; | |
192 | float tmpK0S; | |
193 | float T = 0.184; | |
194 | float Terr = 0.006; | |
195 | float n = 6.6; | |
196 | float nerr = 0.3; | |
197 | fK0S->SetParameter(1,T+Terr);//T | |
198 | tmpK0S = fK0S->Integral(0,50); | |
199 | myerrorK0ST = TMath::Abs(integralK0S-tmpK0S); | |
200 | fK0S->SetParameter(1,T-Terr);//T | |
201 | tmpK0S = fK0S->Integral(0,50); | |
202 | if(TMath::Abs(integralK0S-tmpK0S)>myerrorK0ST) myerrorK0ST = TMath::Abs(integralK0S-tmpK0S); | |
203 | fK0S->SetParameter(1,T);//T | |
204 | fK0S->SetParameter(2,n+nerr);//n | |
205 | tmpK0S = fK0S->Integral(0,50); | |
206 | cout<<"integral "<<tmpK0S<<endl; | |
207 | myerrorK0Sn = TMath::Abs(integralK0S-tmpK0S); | |
208 | fK0S->SetParameter(2,n-nerr);//n | |
209 | tmpK0S = fK0S->Integral(0,50); | |
210 | cout<<"integral "<<tmpK0S<<endl; | |
211 | if(TMath::Abs(integralK0S-tmpK0S)>myerrorK0Sn) myerrorK0Sn = TMath::Abs(integralK0S-tmpK0S); | |
212 | cout<<"K0S Et = "<<integralK0S<<"$\\pm$"<<integralErrK0S<<"$\\pm$"<<myerrorK0ST<<"$\\pm$"<<myerrorK0Sn<<endl; | |
213 | //This isn't strictly correct because the errors on the parameters should be correlated but it's close | |
214 | integralErrK0S = TMath::Sqrt(TMath::Power(integralErrK0S,2)+TMath::Power(myerrorK0ST,2)+TMath::Power(myerrorK0Sn,2)); | |
215 | cout<<"K0S Et = "<<integralK0S<<"$\\pm$"<<integralErrK0S<<endl; | |
216 | ||
217 | // particle & $\frac{dN}{dy}$ & T (GeV) & n & $\frac{dE_T}{dy}$& a &\ET \\ \hline | |
218 | // \lam &0.048 $\pm$ 0.004 & 0.229 $\pm$ 0.015 & 10.8 $\pm$ 2.0 & & & \\ | |
219 | fLambda = new TF1("fLambda",function, &AliAnalysisLevyPtModified::Evaluate,0,50,5,"AliAnalysisLevyPtModified","Evaluate"); | |
220 | fLambda->SetParameter(0,0.048);//dN/dy | |
221 | fLambda->SetParameter(1,0.229);//T | |
222 | fLambda->SetParameter(2,10.8);//n | |
223 | fLambda->SetParameter(3,1.115683);//mass | |
224 | fLambda->SetParameter(4,0);//A=0 for kaons | |
225 | float integralLambda = fLambda->Integral(0,50); | |
226 | float integralErrLambda = integralLambda*0.004/0.048; | |
227 | float myerrorLambdaT = 0.0; | |
228 | float myerrorLambdan = 0.0; | |
229 | float tmpLambda; | |
230 | float T = 0.229; | |
231 | float Terr = 0.015; | |
232 | float n = 10.8; | |
233 | float nerr = 2.0; | |
234 | fLambda->SetParameter(1,T+Terr);//T | |
235 | tmpLambda = fLambda->Integral(0,50); | |
236 | myerrorLambdaT = TMath::Abs(integralLambda-tmpLambda); | |
237 | fLambda->SetParameter(1,T-Terr);//T | |
238 | tmpLambda = fLambda->Integral(0,50); | |
239 | if(TMath::Abs(integralLambda-tmpLambda)>myerrorLambdaT) myerrorLambdaT = TMath::Abs(integralLambda-tmpLambda); | |
240 | fLambda->SetParameter(1,T);//T | |
241 | fLambda->SetParameter(2,n+nerr);//n | |
242 | tmpLambda = fLambda->Integral(0,50); | |
243 | cout<<"integral "<<tmpLambda<<endl; | |
244 | myerrorLambdan = TMath::Abs(integralLambda-tmpLambda); | |
245 | fLambda->SetParameter(2,n-nerr);//n | |
246 | tmpLambda = fLambda->Integral(0,50); | |
247 | cout<<"integral "<<tmpLambda<<endl; | |
248 | if(TMath::Abs(integralLambda-tmpLambda)>myerrorLambdan) myerrorLambdan = TMath::Abs(integralLambda-tmpLambda); | |
249 | cout<<"Lambda Et = "<<integralLambda<<"$\\pm$"<<integralErrLambda<<"$\\pm$"<<myerrorLambdaT<<"$\\pm$"<<myerrorLambdan<<endl; | |
250 | //This isn't strictly correct because the errors on the parameters should be correlated but it's close | |
251 | integralErrLambda = TMath::Sqrt(TMath::Power(integralErrLambda,2)+TMath::Power(myerrorLambdaT,2)+TMath::Power(myerrorLambdan,2)); | |
252 | cout<<"Lambda Et = "<<integralLambda<<"$\\pm$"<<integralErrLambda<<endl; | |
253 | ||
254 | ||
255 | // particle & $\frac{dN}{dy}$ & T (GeV) & n & $\frac{dE_T}{dy}$& a &\ET \\ \hline | |
256 | // \alam & 0.047 $\pm$ 0.005 & 0.210 $\pm$ 0.015 & 9.2 $\pm$ 1.4 & & & \\ & & \\ | |
257 | fAntiLambda = new TF1("fAntiLambda",function, &AliAnalysisLevyPtModified::Evaluate,0,50,5,"AliAnalysisLevyPtModified","Evaluate"); | |
258 | fAntiLambda->SetParameter(0,0.047);//dN/dy | |
259 | fAntiLambda->SetParameter(1,0.210);//T | |
260 | fAntiLambda->SetParameter(2,9.2);//n | |
261 | fAntiLambda->SetParameter(3,1.115683);//mass | |
262 | fAntiLambda->SetParameter(4,0);//A=0 for kaons | |
263 | float integralAntiLambda = fAntiLambda->Integral(0,50); | |
264 | float integralErrAntiLambda = integralAntiLambda*0.005/0.047; | |
265 | float myerrorAntiLambdaT = 0.0; | |
266 | float myerrorAntiLambdan = 0.0; | |
267 | float tmpAntiLambda; | |
268 | float T = 0.210; | |
269 | float Terr = 0.015; | |
270 | float n = 9.2; | |
271 | float nerr = 1.4; | |
272 | fAntiLambda->SetParameter(1,T+Terr);//T | |
273 | tmpAntiLambda = fAntiLambda->Integral(0,50); | |
274 | myerrorAntiLambdaT = TMath::Abs(integralAntiLambda-tmpAntiLambda); | |
275 | fAntiLambda->SetParameter(1,T-Terr);//T | |
276 | tmpAntiLambda = fAntiLambda->Integral(0,50); | |
277 | if(TMath::Abs(integralAntiLambda-tmpAntiLambda)>myerrorAntiLambdaT) myerrorAntiLambdaT = TMath::Abs(integralAntiLambda-tmpAntiLambda); | |
278 | fAntiLambda->SetParameter(1,T);//T | |
279 | fAntiLambda->SetParameter(2,n+nerr);//n | |
280 | tmpAntiLambda = fAntiLambda->Integral(0,50); | |
281 | cout<<"integral "<<tmpAntiLambda<<endl; | |
282 | myerrorAntiLambdan = TMath::Abs(integralAntiLambda-tmpAntiLambda); | |
283 | fAntiLambda->SetParameter(2,n-nerr);//n | |
284 | tmpAntiLambda = fAntiLambda->Integral(0,50); | |
285 | cout<<"integral "<<tmpAntiLambda<<endl; | |
286 | if(TMath::Abs(integralAntiLambda-tmpAntiLambda)>myerrorAntiLambdan) myerrorAntiLambdan = TMath::Abs(integralAntiLambda-tmpAntiLambda); | |
287 | cout<<"AntiLambda Et = "<<integralAntiLambda<<"$\\pm$"<<integralErrAntiLambda<<"$\\pm$"<<myerrorAntiLambdaT<<"$\\pm$"<<myerrorAntiLambdan<<endl; | |
288 | //This isn't strictly correct because the errors on the parameters should be correlated but it's close | |
289 | integralErrAntiLambda = TMath::Sqrt(TMath::Power(integralErrAntiLambda,2)+TMath::Power(myerrorAntiLambdaT,2)+TMath::Power(myerrorAntiLambdan,2)); | |
290 | cout<<"AntiLambda Et = "<<integralAntiLambda<<"$\\pm$"<<integralErrAntiLambda<<endl; | |
291 | ||
292 | //now we apply various assumptions | |
293 | float integralK0L = integralK0S; | |
294 | float integralErrK0L = integralErrK0S; | |
295 | float integralNeutron = integralProton; | |
296 | float integralErrNeutron = integralErrProton; | |
297 | ||
298 | float totalEt = integralPion+integralKaon+2.0*integralProton+2.0*integralAntiProton+2.0*integralK0S+integralLambda+integralAntiLambda; | |
299 | float measuredEt = integralPion+integralKaon+1.0*integralProton+1.0*integralAntiProton; | |
300 | float fneutral = measuredEt/totalEt; | |
301 | cout<<"fneutral = "<<fneutral<<endl; | |
302 | //this is from ugly derivative taking for error propagation | |
303 | //form 1: pions, kaons, protons | |
304 | //for f=(xa+A)/(ya+B) | |
305 | //df/da=(xf-yf^2)/(xa+A) | |
306 | //x=y=1; xa+A=measuredEt | |
307 | float errPion = (fneutral-fneutral*fneutral)/measuredEt*integralErrPion; | |
308 | float errKaon = (fneutral-fneutral*fneutral)/measuredEt*integralErrKaon; | |
309 | //x=1,y=2 | |
310 | float errProton = (fneutral-2.0*fneutral*fneutral)/measuredEt*integralErrProton; | |
311 | float errAntiProton = (fneutral-2.0*fneutral*fneutral)/measuredEt*integralErrAntiProton; | |
312 | //form 2: K0S, lambda, antilambda | |
313 | //for f=A/(B+xa) | |
314 | //df/da=-xf^2/A | |
315 | //x=1,A=measuredEt | |
316 | float errLambda = fneutral*fneutral/measuredEt*integralErrLambda; | |
317 | float errAntiLambda = fneutral*fneutral/measuredEt*integralErrAntiLambda; | |
318 | //x=2,A=measuredEt | |
319 | float errK0S = 2.0*fneutral*fneutral/measuredEt*integralErrK0S; | |
320 | cout<<"Errors Pion "<<errPion<<" Kaon "<<errKaon<<" Proton "<<errProton<<" Lambda "<<errLambda<<" AntiLambda "<<errAntiLambda<<" K0S "<<errK0S<<endl; | |
321 | float totalErr = TMath::Sqrt( TMath::Power(errPion,2) + TMath::Power(errKaon,2) + TMath::Power(errProton,2)+ TMath::Power(errAntiProton,2) + TMath::Power(errLambda,2) + TMath::Power(errAntiLambda,2) + TMath::Power(errK0S,2) ); | |
322 | ||
323 | cout<<"fneutral = "<<fneutral<<"$\\pm$"<<totalErr<<endl; | |
324 | cout<<"1/fneutral = "<<1.0/fneutral<<"$\\pm$"<<1.0/fneutral*totalErr/fneutral<<endl; | |
325 | cout<<"Percentage error "<<totalErr/fneutral*100.0<<endl; | |
326 | } | |
327 |