BmnRoot
Loading...
Searching...
No Matches
BmnParticleTriple.h
Go to the documentation of this file.
1
2#include <TNamed.h>
3#include <TVector3.h>
4#include <vector>
5
6using namespace std;
7
8#ifndef BMNPARTICLETRIPLE_H
9#define BMNPARTICLETRIPLE_H 1
10
11class BmnParticleTriple : public TNamed
12{
13 public:
16
18 virtual ~BmnParticleTriple();
19
20 void SetV0X(Double_t val) { fV0X = val; }
21
22 void SetV0Y(Double_t val) { fV0Y = val; }
23
24 void SetV0Z(Double_t val) { fV0Z = val; }
25
26 void SetDCA0(Double_t val) { fDCA0 = val; }
27
28 void SetDCA1(Double_t val) { fDCA1 = val; }
29
30 void SetDCA2(Double_t val) { fDCA2 = val; }
31
32 void SetDCA3(Double_t val) { fDCA3 = val; }
33
34 void SetDCA123(Double_t val) { fDCA123 = val; }
35
36 void SetdDCA1(Double_t val) { fdDCA1 = val; }
37
38 void SetdDCA2(Double_t val) { fdDCA2 = val; }
39
40 void SetdDCA3(Double_t val) { fdDCA3 = val; }
41
42 void SetdDCA123(Double_t val) { fdDCA123 = val; }
43
44 void SetPath(Double_t val) { fPath = val; }
45
46 void SetInvMass(Double_t val) { fInvMass = val; }
47
48 void SetAngleDecayProducts(Double_t val) { fAngleDecayProducts = val; }
49
50 void SetMomTriple(Double_t val1, Double_t val2, Double_t val3)
51 {
52 fMomPart1 = val1;
53 fMomPart2 = val2;
54 fMomPart3 = val3;
55 }
56
57 void SetEtaTriple(Double_t val1, Double_t val2, Double_t val3)
58 {
59 fEtaPart1 = val1;
60 fEtaPart2 = val2;
61 fEtaPart3 = val3;
62 }
63
64 void SetTxTriple(Double_t val1, Double_t val2, Double_t val3)
65 {
66 fTxPart1 = val1;
67 fTxPart2 = val2;
68 fTxPart3 = val3;
69 }
70
71 void SetTyTriple(Double_t val1, Double_t val2, Double_t val3)
72 {
73 fTyPart1 = val1;
74 fTyPart2 = val2;
75 fTyPart3 = val3;
76 }
77
78 void SetChi2Triple(Double_t val1, Double_t val2, Double_t val3)
79 {
80 fChi2Part1 = val1;
81 fChi2Part2 = val2;
82 fChi2Part3 = val3;
83 }
84
85 void SetNDFTriple(Int_t val1, Int_t val2, Int_t val3)
86 {
87 fNDFPart1 = val1;
88 fNDFPart2 = val2;
89 fNDFPart3 = val3;
90 }
91
92 void SetBeta400Triple(Double_t val1, Double_t val2, Double_t val3)
93 {
94 fBeta400Part1 = val1;
95 fBeta400Part2 = val2;
96 fBeta400Part3 = val3;
97 }
98
99 void SetBeta700Triple(Double_t val1, Double_t val2, Double_t val3)
100 {
101 fBeta700Part1 = val1;
102 fBeta700Part2 = val2;
103 fBeta700Part3 = val3;
104 }
105
106 void SetMass400Triple(Double_t val1, Double_t val2, Double_t val3)
107 {
108 fMass400Part1 = val1;
109 fMass400Part2 = val2;
110 fMass400Part3 = val3;
111 }
112
113 void SetMass700Triple(Double_t val1, Double_t val2, Double_t val3)
114 {
115 fMass700Part1 = val1;
116 fMass700Part2 = val2;
117 fMass700Part3 = val3;
118 }
119
120 void SetMCTrackIdPart1(Int_t id);
121 void SetMCTrackIdPart2(Int_t id);
122 void SetMCTrackIdPart3(Int_t id);
123 void SetRecoTrackIdPart1(Int_t id); // actually it is GEM track Id
124 void SetRecoTrackIdPart2(Int_t id); // actually it is GEM track Id
125 void SetRecoTrackIdPart3(Int_t id);
126
127 void SetMCMomPart1(Double_t px, Double_t py, Double_t pz);
128 void SetMCMomPart2(Double_t px, Double_t py, Double_t pz);
129 void SetMCMomPart3(Double_t px, Double_t py, Double_t pz);
130
131 void SetNHitsTriple(vector<Int_t> part1, vector<Int_t> part2, vector<Int_t> part3)
132 {
133 fNHitsSilPart1 = part1[0]; // SILICON
134 fNHitsGemPart1 = part1[1]; // GEM
135
136 fNHitsSilPart2 = part2[0]; // SILICON
137 fNHitsGemPart2 = part2[1]; // GEM
138
139 fNHitsSilPart3 = part3[0]; // SILICON
140 fNHitsGemPart3 = part3[1]; // GEM
141 }
142
143 void SetNHitsTriple(Int_t nHitsPart1, Int_t nHitsPart2, Int_t nHitsPart3)
144 {
145 fNHitsGemPart1 = nHitsPart1;
146 // fNHitsSilPart1 = 0;
147
148 fNHitsGemPart2 = nHitsPart2;
149 // fNHitsSilPart2 = 0;
150
151 fNHitsGemPart3 = nHitsPart3;
152 }
153
154 Int_t GetNHitsPart1(TString det = "")
155 {
156 if (det.IsNull())
157 return fNHitsSilPart1 + fNHitsGemPart1; // nHits per glob. track
158
159 else if (det.Contains("GEM"))
160 return fNHitsGemPart1;
161
162 else if (det.Contains("SILICON"))
163 return fNHitsSilPart1;
164
165 else
166 return 0;
167 }
168
169 Int_t GetNHitsPart2(TString det = "")
170 {
171 if (det.IsNull())
172 return fNHitsSilPart2 + fNHitsGemPart2; // nHits per glob. track
173
174 else if (det.Contains("GEM"))
175 return fNHitsGemPart2;
176
177 else if (det.Contains("SILICON"))
178 return fNHitsSilPart2;
179
180 else
181 return 0;
182 }
183
184 Int_t GetNHitsPart3(TString det = "")
185 {
186 if (det.IsNull())
187 return fNHitsSilPart3 + fNHitsGemPart3; // nHits per glob. track
188
189 else if (det.Contains("GEM"))
190 return fNHitsGemPart3;
191
192 else if (det.Contains("SILICON"))
193 return fNHitsSilPart3;
194
195 else
196 return 0;
197 }
198
199 Double_t GetInvMass() { return fInvMass; }
200
201 Double_t GetAngleDecayProducts() { return fAngleDecayProducts; }
202
203 Double_t GetDCA123() { return fDCA123; }
204
205 Double_t GetdDCA123() { return fdDCA123; }
206
207 Double_t GetPath() { return fPath; }
208
209 Double_t GetDCA1() { return fDCA1; }
210
211 Double_t GetDCA2() { return fDCA2; }
212
213 Double_t GetDCA3() { return fDCA3; }
214
215 Double_t GetdDCA1() { return fdDCA1; }
216
217 Double_t GetdDCA2() { return fdDCA2; }
218
219 Double_t GetdDCA3() { return fdDCA3; }
220
221 Double_t GetDCA0() { return fDCA0; }
222
223 Double_t GetMomPart1() { return fMomPart1; }
224
225 Double_t GetMomPart2() { return fMomPart2; }
226
227 Double_t GetMomPart3() { return fMomPart3; }
228
229 Double_t GetEtaPart1() { return fEtaPart1; }
230
231 Double_t GetEtaPart2() { return fEtaPart2; }
232
233 Double_t GetEtaPart3() { return fEtaPart3; }
234
235 Double_t GetV0X() { return fV0X; }
236
237 Double_t GetV0Y() { return fV0Y; }
238
239 Double_t GetV0Z() { return fV0Z; }
240
241 Double_t GetTxPart1() { return fTxPart1; }
242
243 Double_t GetTxPart2() { return fTxPart2; }
244
245 Double_t GetTxPart3() { return fTxPart3; }
246
247 Double_t GetTyPart1() { return fTyPart1; }
248
249 Double_t GetTyPart2() { return fTyPart2; }
250
251 Double_t GetTyPart3() { return fTyPart3; }
252
253 Double_t GetChi2Part1() { return fChi2Part1; }
254
255 Double_t GetChi2Part2() { return fChi2Part2; }
256
257 Double_t GetChi2Part3() { return fChi2Part3; }
258
259 Int_t GetNDFPart1() { return fNDFPart1; }
260
261 Int_t GetNDFPart2() { return fNDFPart2; }
262
263 Int_t GetNDFPart3() { return fNDFPart3; }
264
265 void SetAlpha1(Double_t val) { fAlpha1 = val; }
266
267 void SetAlpha2(Double_t val) { fAlpha2 = val; }
268
269 void SetPtPodol(Double_t val) { fPtPodol = val; }
270
271 Double_t GetAlpha1() { return fAlpha1; }
272
273 Double_t GetAlpha2() { return fAlpha2; }
274
275 Double_t GetPtPodol() { return fPtPodol; }
276
277 Double_t GetBeta400Part1() { return fBeta400Part1; }
278
279 Double_t GetBeta400Part2() { return fBeta400Part2; }
280
281 Double_t GetBeta400Part3() { return fBeta400Part3; }
282
283 Double_t GetBeta700Part1() { return fBeta700Part1; }
284
285 Double_t GetBeta700Part2() { return fBeta700Part2; }
286
287 Double_t GetBeta700Part3() { return fBeta700Part3; }
288
289 Double_t GetMass400Part1() { return fMass400Part1; }
290
291 Double_t GetMass400Part2() { return fMass400Part2; }
292
293 Double_t GetMass400Part3() { return fMass400Part3; }
294
295 Double_t GetMass700Part1() { return fMass700Part1; }
296
297 Double_t GetMass700Part2() { return fMass700Part2; }
298
299 Double_t GetMass700Part3() { return fMass700Part3; }
300
301 TVector3 GetMCMomPart1();
302 TVector3 GetMCMomPart2();
303 TVector3 GetMCMomPart3();
304
305 Int_t GetMCTrackIdPart1();
306 Int_t GetMCTrackIdPart2();
307 Int_t GetMCTrackIdPart3();
308
309 Int_t GetRecoTrackIdPart1(); // actually it is GEM track Id
310 Int_t GetRecoTrackIdPart2(); // actually it is GEM track Id
311 Int_t GetRecoTrackIdPart3(); // actually it is GEM track Id
312
313 // Omega cut from M. Zavertyaev
314
315 Double_t Omega() { return (fDCA123 * fDCA123) / (fDCA0 * fDCA0 + 4 * fDCA1 * fDCA2 * fDCA3); }
316
317 private:
318 Double_t fInvMass; // Invariant mass of a considering pair
319
320 Double_t fAngleDecayProducts; // Angle between the two products of decay
321
322 Double_t fBeta400Part1;
323 Double_t fBeta400Part2;
324 Double_t fBeta400Part3;
325
326 Double_t fBeta700Part1;
327 Double_t fBeta700Part2;
328 Double_t fBeta700Part3;
329
330 Double_t fMass400Part1;
331 Double_t fMass400Part2;
332 Double_t fMass400Part3;
333
334 Double_t fMass700Part1;
335 Double_t fMass700Part2;
336 Double_t fMass700Part3;
337
338 Double_t fV0X;
339 Double_t fV0Y;
340 Double_t fV0Z;
341
342 Double_t fDCA0;
343 Double_t fDCA1;
344 Double_t fDCA2;
345 Double_t fDCA3;
346 Double_t fdDCA1;
347 Double_t fdDCA2;
348 Double_t fdDCA3;
349 Double_t fDCA123;
350 Double_t fdDCA123;
351
352 Double_t fPath;
353
354 Double_t fMomPart1;
355 Double_t fMomPart2;
356 Double_t fMomPart3;
357
358 Double_t fEtaPart1;
359 Double_t fEtaPart2;
360 Double_t fEtaPart3;
361
362 Int_t fNHitsSilPart1;
363 Int_t fNHitsGemPart1;
364
365 Int_t fNHitsSilPart2;
366 Int_t fNHitsGemPart2;
367
368 Int_t fNHitsSilPart3;
369 Int_t fNHitsGemPart3;
370
371 Double_t fTxPart1;
372 Double_t fTxPart2;
373 Double_t fTxPart3;
374 Double_t fTyPart1;
375 Double_t fTyPart2;
376 Double_t fTyPart3;
377
378 Double_t fChi2Part1;
379 Double_t fChi2Part2;
380 Double_t fChi2Part3;
381 Int_t fNDFPart1;
382 Int_t fNDFPart2;
383 Int_t fNDFPart3;
384
385 // Armenteros-Podolyansky ...
386 Double_t fAlpha1;
387 Double_t fAlpha2;
388 Double_t fPtPodol;
389
390 TVector3 fMCMomPart1;
391 TVector3 fMCMomPart2;
392 TVector3 fMCMomPart3;
393
394 TVector3 fRecoMomPart1;
395 TVector3 fRecoMomPart2;
396 TVector3 fRecoMomPar3;
397
398 Int_t fMCTrackIdPart1;
399 Int_t fMCTrackIdPart2;
400 Int_t fMCTrackIdPart3;
401 Int_t fRecoTrackIdPart1;
402 Int_t fRecoTrackIdPart2;
403 Int_t fRecoTrackIdPart3;
404
405 ClassDef(BmnParticleTriple, 1);
406};
407
408#endif
void SetRecoTrackIdPart3(Int_t id)
void SetRecoTrackIdPart1(Int_t id)
Int_t GetNHitsPart2(TString det="")
void SetPath(Double_t val)
void SetAlpha2(Double_t val)
void SetDCA1(Double_t val)
void SetdDCA123(Double_t val)
void SetMCTrackIdPart2(Int_t id)
void SetEtaTriple(Double_t val1, Double_t val2, Double_t val3)
void SetDCA2(Double_t val)
void SetMass700Triple(Double_t val1, Double_t val2, Double_t val3)
Double_t GetAngleDecayProducts()
void SetDCA0(Double_t val)
Int_t GetNHitsPart3(TString det="")
void SetDCA123(Double_t val)
void SetTyTriple(Double_t val1, Double_t val2, Double_t val3)
void SetAlpha1(Double_t val)
void SetMCTrackIdPart3(Int_t id)
void SetMCTrackIdPart1(Int_t id)
void SetV0Y(Double_t val)
void SetdDCA3(Double_t val)
void SetRecoTrackIdPart2(Int_t id)
void SetTxTriple(Double_t val1, Double_t val2, Double_t val3)
void SetV0X(Double_t val)
void SetBeta700Triple(Double_t val1, Double_t val2, Double_t val3)
void SetNHitsTriple(vector< Int_t > part1, vector< Int_t > part2, vector< Int_t > part3)
void SetDCA3(Double_t val)
void SetMCMomPart3(Double_t px, Double_t py, Double_t pz)
void SetAngleDecayProducts(Double_t val)
void SetMCMomPart1(Double_t px, Double_t py, Double_t pz)
void SetBeta400Triple(Double_t val1, Double_t val2, Double_t val3)
void SetMCMomPart2(Double_t px, Double_t py, Double_t pz)
void SetNDFTriple(Int_t val1, Int_t val2, Int_t val3)
void SetNHitsTriple(Int_t nHitsPart1, Int_t nHitsPart2, Int_t nHitsPart3)
void SetMass400Triple(Double_t val1, Double_t val2, Double_t val3)
void SetPtPodol(Double_t val)
void SetChi2Triple(Double_t val1, Double_t val2, Double_t val3)
void SetInvMass(Double_t val)
void SetV0Z(Double_t val)
void SetdDCA2(Double_t val)
void SetMomTriple(Double_t val1, Double_t val2, Double_t val3)
Int_t GetNHitsPart1(TString det="")
void SetdDCA1(Double_t val)
STL namespace.