BmnRoot
Loading...
Searching...
No Matches
BmnParticlePair.h
Go to the documentation of this file.
1// @(#)bmnroot/physics/particles:$Id$
2// Author: Pavel Batyuk <pavel.batyuk@jinr.ru> 2017-06-20
3
5// //
6// BmnParticlePair //
7// //
8// A class to consider selected pair of particles //
9// //
11
12#include <vector>
13#include <TNamed.h>
14#include <TVector3.h>
15
16using namespace std;
17
18#ifndef BMNPARTICLEPAIR_H
19#define BMNPARTICLEPAIR_H 1
20
21class BmnParticlePair : public TNamed {
22public:
23
26
28 virtual ~BmnParticlePair();
29
30 void SetV0X(Double_t val) {
31 fV0X = val;
32 }
33
34 void SetV0Y(Double_t val) {
35 fV0Y = val;
36 }
37
38 void SetV0Z(Double_t val) {
39 fV0Z = val;
40 }
41
42 void SetDCA0(Double_t val) {
43 fDCA0 = val;
44 }
45
46 void SetDCA1(Double_t val) {
47 fDCA1 = val;
48 }
49
50 void SetDCA2(Double_t val) {
51 fDCA2 = val;
52 }
53
54 void SetDCA12(Double_t val) {
55 fDCA12 = val;
56 }
57
58 void SetPath(Double_t val) {
59 fPath = val;
60 }
61
62 void SetInvMass(Double_t val) {
63 fInvMass = val;
64 }
65
66 void SetAngleDecayProducts(Double_t val) {
67 fAngleDecayProducts = val;
68 }
69
70 void SetMomPair(Double_t val1, Double_t val2) {
71 fMomPart1 = val1;
72 fMomPart2 = val2;
73 }
74
75 void SetEtaPair(Double_t val1, Double_t val2) {
76 fEtaPart1 = val1;
77 fEtaPart2 = val2;
78 }
79
80 void SetTxPair(Double_t val1, Double_t val2) {
81 fTxPart1 = val1;
82 fTxPart2 = val2;
83 }
84
85 void SetTyPair(Double_t val1, Double_t val2) {
86 fTyPart1 = val1;
87 fTyPart2 = val2;
88 }
89
90 void SetChi2Pair(Double_t val1, Double_t val2) {
91 fChi2Part1 = val1;
92 fChi2Part2 = val2;
93 }
94
95 void SetNDFPair(Int_t val1, Int_t val2) {
96 fNDFPart1 = val1;
97 fNDFPart2 = val2;
98 }
99
100 void SetBeta400Pair(Double_t val1, Double_t val2) {
101 fBeta400Part1 = val1;
102 fBeta400Part2 = val2;
103 }
104
105 void SetBeta700Pair(Double_t val1, Double_t val2) {
106 fBeta700Part1 = val1;
107 fBeta700Part2 = val2;
108 }
109
110 void SetMCTrackIdPart1(Int_t id);
111 void SetMCTrackIdPart2(Int_t id);
112 void SetRecoTrackIdPart1(Int_t id); // actually it is GEM track Id
113 void SetRecoTrackIdPart2(Int_t id); // actually it is GEM track Id
114
115 void SetMCMomPart1(Double_t px, Double_t py, Double_t pz);
116 void SetMCMomPart2(Double_t px, Double_t py, Double_t pz);
117
118 void SetNHitsPair(vector <Int_t> part1, vector <Int_t> part2) {
119 fNHitsSilPart1 = part1[0]; // SILICON
120 fNHitsGemPart1 = part1[1]; // GEM
121
122 fNHitsSilPart2 = part2[0]; // SILICON
123 fNHitsGemPart2 = part2[1]; // GEM
124 }
125
126 void SetNHitsPair(Int_t nHitsPart1, Int_t nHitsPart2) {
127 fNHitsGemPart1 = nHitsPart1;
128 // fNHitsSilPart1 = 0;
129
130 fNHitsGemPart2 = nHitsPart2;
131 // fNHitsSilPart2 = 0;
132 }
133
134 Int_t GetNHitsPart1(TString det = "") {
135 if (det.IsNull())
136 return fNHitsSilPart1 + fNHitsGemPart1; // nHits per glob. track
137
138 else if (det.Contains("GEM"))
139 return fNHitsGemPart1;
140
141 else if (det.Contains("SILICON"))
142 return fNHitsSilPart1;
143
144 else
145 return 0;
146 }
147
148 Int_t GetNHitsPart2(TString det = "") {
149 if (det.IsNull())
150 return fNHitsSilPart2 + fNHitsGemPart2; // nHits per glob. track
151
152 else if (det.Contains("GEM"))
153 return fNHitsGemPart2;
154
155 else if (det.Contains("SILICON"))
156 return fNHitsSilPart2;
157
158 else
159 return 0;
160 }
161
162 Double_t GetInvMass() {
163 return fInvMass;
164 }
165
167 return fAngleDecayProducts;
168 }
169
170 Double_t GetDCA12() {
171 return fDCA12;
172 }
173
174 Double_t GetPath() {
175 return fPath;
176 }
177
178 Double_t GetDCA1() {
179 return fDCA1;
180 }
181
182 Double_t GetDCA2() {
183 return fDCA2;
184 }
185
186 Double_t GetDCA0() {
187 return fDCA0;
188 }
189
190 Double_t GetMomPart1() {
191 return fMomPart1;
192 }
193
194 Double_t GetMomPart2() {
195 return fMomPart2;
196 }
197
198 Double_t GetEtaPart1() {
199 return fEtaPart1;
200 }
201
202 Double_t GetEtaPart2() {
203 return fEtaPart2;
204 }
205
206 Double_t GetV0X() {
207 return fV0X;
208 }
209
210 Double_t GetV0Y() {
211 return fV0Y;
212 }
213
214 Double_t GetV0Z() {
215 return fV0Z;
216 }
217
218 Double_t GetTxPart1() {
219 return fTxPart1;
220 }
221
222 Double_t GetTxPart2() {
223 return fTxPart2;
224 }
225
226 Double_t GetTyPart1() {
227 return fTyPart1;
228 }
229
230 Double_t GetTyPart2() {
231 return fTyPart2;
232 }
233
234 Double_t GetChi2Part1() {
235 return fChi2Part1;
236 }
237
238 Double_t GetChi2Part2() {
239 return fChi2Part2;
240 }
241
242 Int_t GetNDFPart1() {
243 return fNDFPart1;
244 }
245
246 Int_t GetNDFPart2() {
247 return fNDFPart2;
248 }
249
250 void SetAlpha(Double_t val) {
251 fAlpha = val;
252 }
253
254 void SetPtPodol(Double_t val) {
255 fPtPodol = val;
256 }
257
258 Double_t GetAlpha() {
259 return fAlpha;
260 }
261
262 Double_t GetPtPodol() {
263 return fPtPodol;
264 }
265
266 Double_t GetBeta400Part1() {
267 return fBeta400Part1;
268 }
269
270 Double_t GetBeta400Part2() {
271 return fBeta400Part2;
272 }
273
274 Double_t GetBeta700Part1() {
275 return fBeta700Part1;
276 }
277
278 Double_t GetBeta700Part2() {
279 return fBeta700Part2;
280 }
281
282 TVector3 GetMCMomPart1();
283 TVector3 GetMCMomPart2();
284
285 Int_t GetMCTrackIdPart1();
286 Int_t GetMCTrackIdPart2();
287
288 Int_t GetRecoTrackIdPart1(); // actually it is GEM track Id
289 Int_t GetRecoTrackIdPart2(); // actually it is GEM track Id
290
291 // Omega cut from M. Zavertyaev
292
293 Double_t Omega() {
294 return (fDCA12 * fDCA12) / (fDCA0 * fDCA0 + 4 * fDCA1 * fDCA2);
295 }
296
297private:
298
299 Double_t fInvMass; // Invariant mass of a considering pair
300
301 Double_t fAngleDecayProducts; // Angle between the two products of decay
302
303 Double_t fBeta400Part1;
304 Double_t fBeta400Part2;
305
306 Double_t fBeta700Part1;
307 Double_t fBeta700Part2;
308
309 Double_t fV0X;
310 Double_t fV0Y;
311 Double_t fV0Z;
312
313 Double_t fDCA0;
314 Double_t fDCA1;
315 Double_t fDCA2;
316
317 Double_t fDCA12;
318
319 Double_t fPath;
320
321 Double_t fMomPart1;
322 Double_t fMomPart2;
323
324 Double_t fEtaPart1;
325 Double_t fEtaPart2;
326
327 Int_t fNHitsSilPart1;
328 Int_t fNHitsGemPart1;
329
330 Int_t fNHitsSilPart2;
331 Int_t fNHitsGemPart2;
332
333 Double_t fTxPart1;
334 Double_t fTxPart2;
335 Double_t fTyPart1;
336 Double_t fTyPart2;
337
338 Double_t fChi2Part1;
339 Double_t fChi2Part2;
340 Int_t fNDFPart1;
341 Int_t fNDFPart2;
342
343 // Armenteros-Podolyansky ...
344 Double_t fAlpha;
345 Double_t fPtPodol;
346
347 TVector3 fMCMomPart1;
348 TVector3 fMCMomPart2;
349
350 TVector3 fRecoMomPart1;
351 TVector3 fRecoMomPart2;
352
353 Int_t fMCTrackIdPart1;
354 Int_t fMCTrackIdPart2;
355 Int_t fRecoTrackIdPart1;
356 Int_t fRecoTrackIdPart2;
357
358 ClassDef(BmnParticlePair, 1);
359
360};
361
362#endif
void SetMCTrackIdPart2(Int_t id)
Int_t GetNHitsPart1(TString det="")
void SetAlpha(Double_t val)
void SetBeta700Pair(Double_t val1, Double_t val2)
TVector3 GetMCMomPart2()
void SetDCA2(Double_t val)
void SetTxPair(Double_t val1, Double_t val2)
void SetPtPodol(Double_t val)
Int_t GetNHitsPart2(TString det="")
Double_t GetMomPart1()
Double_t GetTxPart1()
void SetBeta400Pair(Double_t val1, Double_t val2)
void SetRecoTrackIdPart2(Int_t id)
Double_t GetTyPart1()
Double_t GetInvMass()
void SetNHitsPair(vector< Int_t > part1, vector< Int_t > part2)
void SetTyPair(Double_t val1, Double_t val2)
void SetInvMass(Double_t val)
Double_t GetAngleDecayProducts()
Double_t GetBeta700Part2()
void SetChi2Pair(Double_t val1, Double_t val2)
Double_t GetPtPodol()
void SetV0Y(Double_t val)
void SetV0Z(Double_t val)
void SetDCA1(Double_t val)
void SetMCMomPart2(Double_t px, Double_t py, Double_t pz)
void SetAngleDecayProducts(Double_t val)
Double_t GetEtaPart2()
void SetMCMomPart1(Double_t px, Double_t py, Double_t pz)
void SetDCA12(Double_t val)
void SetMomPair(Double_t val1, Double_t val2)
Double_t GetBeta400Part1()
void SetMCTrackIdPart1(Int_t id)
Double_t GetChi2Part2()
Double_t GetChi2Part1()
virtual ~BmnParticlePair()
void SetRecoTrackIdPart1(Int_t id)
Double_t GetTxPart2()
Double_t GetEtaPart1()
Double_t GetMomPart2()
void SetDCA0(Double_t val)
void SetEtaPair(Double_t val1, Double_t val2)
Double_t GetBeta400Part2()
Double_t GetBeta700Part1()
TVector3 GetMCMomPart1()
void SetNHitsPair(Int_t nHitsPart1, Int_t nHitsPart2)
void SetPath(Double_t val)
void SetV0X(Double_t val)
Double_t GetTyPart2()
void SetNDFPair(Int_t val1, Int_t val2)
STL namespace.