Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
FemtoPair.h
1/*
2 * FemtoPair.h
3 *
4 * Created on: 29-05-2014
5 * Author: wielanek
6 */
7
8#ifndef HALFEMTOPAIRSTRUCT_H_
9#define HALFEMTOPAIRSTRUCT_H_
10
11#include "FemtoConst.h"
12
13#include <TMath.h>
14#include <TObject.h>
15
16class TLorentzVector;
17namespace Hal {
18 class Track;
19 class TwoTrack;
20
21 //#define _kinetic_debug
25 class FemtoMiniPair;
26 class FemtoMicroPair;
27 class FemtoPicoPair;
28 class FemtoPair : public TObject {
29 protected:
41 Double_t fPx1, fPy1, fPz1, fE1; // true momenta
45 Double_t fPx2, fPy2, fPz2, fE2; // true momenta
49 Double_t fpx1, fpy1, fpz1, fe1; // fake momenta
53 Double_t fpx2, fpy2, fpz2, fe2; // fake momenta
57 Double_t fX1, fY1, fZ1, fT1;
61 Double_t fX2, fY2, fZ2, fT2;
65 Int_t fPdg1, fPdg2;
68 Double_t fM12, fM22;
76 Double_t fX;
80 Double_t fY;
84 Double_t fZ;
88 Double_t fT;
92 Double_t fWeight;
93 enum eWorkingMode { kMC, kComplexRe, kComplexIm, kNoMC };
94 eWorkingMode fMode;
98 Bool_t fUseAbs;
99 void SetTrueMomenta1(Double_t px, Double_t py, Double_t pz);
100 void SetTrueMomenta2(Double_t px, Double_t py, Double_t pz);
101 void SetMomenta1(Double_t px, Double_t py, Double_t pz);
102 void SetMomenta2(Double_t px, Double_t py, Double_t pz);
103
104 public:
109 FemtoPair(Bool_t enable_fake = kFALSE);
113 void UseAbs() { fUseAbs = kTRUE; };
119 FemtoPair& operator=(const FemtoMiniPair& other);
120 FemtoPair& operator=(const FemtoMicroPair& other);
121 FemtoPair& operator=(const FemtoPicoPair& other);
122 inline Bool_t IsAbs() const { return fUseAbs; };
128 void SetMass(Double_t m1, Double_t m2);
129 virtual FemtoPair* MakeCopy() const = 0;
130 virtual Femto::EKinematics GetFrame() const = 0;
131 Bool_t Init(Int_t task_id);
136 inline void Build(TwoTrack* tracks) { BuildMomenta(tracks); }
137 virtual ~FemtoPair();
142 inline Double_t TruePx1() const { return fPx1; };
147 inline Double_t TruePy1() const { return fPy1; };
152 inline Double_t TruePz1() const { return fPz1; };
157 inline Double_t TrueE1() const { return fE1; };
162 inline Double_t TruePhi1() const { return TMath::ATan2(fPy1, fPx1); }
167 inline Double_t TruePx2() const { return fPx2; };
172 inline Double_t TruePy2() const { return fPy2; };
177 inline Double_t TruePz2() const { return fPz2; };
182 inline Double_t TrueE2() const { return fE2; };
187 inline Double_t TruePhi2() const { return TMath::ATan2(fPy2, fPx2); };
192 inline Double_t GetX1() const { return fX1; };
197 inline Double_t GetY1() const { return fY1; };
202 inline Double_t GetZ1() const { return fZ1; };
207 inline Double_t GetT1() const { return fT1; };
212 inline Double_t GetX2() const { return fX2; };
217 inline Double_t GetY2() const { return fY2; };
222 inline Double_t GetZ2() const { return fZ2; };
227 inline Double_t GetT2() const { return fT2; };
232 inline Double_t GetPx1() const { return fpx1; };
237 inline Double_t GetPy1() const { return fpy1; };
242 inline Double_t GetPz1() const { return fpz1; };
247 inline Double_t GetE1() const { return fe1; };
252 inline Double_t GetPhi1() const { return TMath::ATan2(fpy1, fpx1); };
257 inline Double_t GetPx2() const { return fpx2; };
262 inline Double_t GetPy2() const { return fpy2; };
267 inline Double_t GetPz2() const { return fpz2; };
272 inline Double_t GetE2() const { return fe2; };
277 inline Double_t GetPhi2() const { return TMath::ATan2(fpy2, fpx2); };
282 inline Double_t GetWeight() const { return fWeight; };
287 inline Double_t GetM1() const { return TMath::Sqrt(fM12); };
292 inline Double_t GetM2() const { return TMath::Sqrt(fM22); };
297 inline Int_t GetPdg1() const { return fPdg1; };
302 inline Int_t GetPdg2() const { return fPdg2; };
307 inline Double_t GetX() const { return fX; };
312 inline Double_t GetY() const { return fY; };
317 inline Double_t GetZ() const { return fZ; };
322 inline Double_t GetT() const { return fT; };
327 Double_t GetKt() const;
332 Double_t GetTrueKt() const;
337 inline Track* GetTrack1() const { return fTrack1; };
342 inline Track* GetTrack2() const { return fTrack2; };
347 inline void SetX1(Double_t val) { fX1 = val; };
352 inline void SetY1(Double_t val) { fY1 = val; };
357 inline void SetZ1(Double_t val) { fZ1 = val; };
362 inline void SetT1(Double_t val) { fT1 = val; };
367 inline void SetX2(Double_t val) { fX2 = val; };
372 inline void SetY2(Double_t val) { fY2 = val; };
377 inline void SetZ2(Double_t val) { fZ2 = val; };
382 inline void SetT2(Double_t val) { fT2 = val; };
387 inline void SetPdg1(Int_t val) { fPdg1 = val; };
392 inline void SetPdg2(Int_t val) { fPdg2 = val; };
397 inline void SetWeight(Double_t weight) { fWeight = weight; };
405 void SetTrueMomenta1(Double_t px, Double_t py, Double_t pz, Double_t e);
413 void SetTrueMomenta2(Double_t px, Double_t py, Double_t pz, Double_t e);
417 void PrintInfo() const;
425 void SetMomenta1(Double_t px, Double_t py, Double_t pz, Double_t e);
433 void SetMomenta2(Double_t px, Double_t py, Double_t pz, Double_t e);
441 void SetFreezoutCoord1(Double_t x, Double_t y, Double_t z, Double_t t);
449 void SetFreezoutCoord2(Double_t x, Double_t y, Double_t z, Double_t t);
455 void SetMomenta(const TLorentzVector& p1, const TLorentzVector& p2);
461 void SetTrueMomenta(const TLorentzVector& p1, const TLorentzVector& p2);
467 void SetFreezouts(const TLorentzVector& x1, const TLorentzVector& x2);
472 inline Double_t GetPhi() const { return TMath::ATan2(fPy1 + fPy2, fPx1 + fPx2); };
477 Bool_t IsUseImgMomenta() const { return fUseImgMomenta; }
481 virtual void Compute() = 0;
485 virtual void Compute_Rotated() = 0;
489 virtual void Compute_Hemisphere() = 0;
493 virtual void Compute_Charged() { Compute(); };
497 virtual void Compute_Mixed() { Compute(); };
502 void BuildMomenta(TwoTrack* tracks);
503 virtual TString GetTags() const = 0;
504 ClassDef(FemtoPair, 1)
505 };
506} // namespace Hal
507
508#endif /* HALFEMTOPAIR_H_ */
Int_t GetPdg2() const
Definition FemtoPair.h:302
Double_t fZ
Definition FemtoPair.h:84
void PrintInfo() const
void SetT2(Double_t val)
Definition FemtoPair.h:382
Double_t GetY1() const
Definition FemtoPair.h:197
Double_t fpx1
Definition FemtoPair.h:49
void SetZ1(Double_t val)
Definition FemtoPair.h:357
void SetFreezoutCoord2(Double_t x, Double_t y, Double_t z, Double_t t)
Double_t fM12
Definition FemtoPair.h:68
Double_t GetPy1() const
Definition FemtoPair.h:237
Double_t fT
Definition FemtoPair.h:88
Bool_t fUseImgMomenta
Definition FemtoPair.h:72
Double_t GetT() const
Definition FemtoPair.h:322
void SetPdg1(Int_t val)
Definition FemtoPair.h:387
Double_t GetPy2() const
Definition FemtoPair.h:262
void SetY1(Double_t val)
Definition FemtoPair.h:352
Double_t fpx2
Definition FemtoPair.h:53
virtual void Compute_Mixed()
Definition FemtoPair.h:497
Double_t GetY2() const
Definition FemtoPair.h:217
Track * fTrack1
Definition FemtoPair.h:33
void SetZ2(Double_t val)
Definition FemtoPair.h:377
virtual void Compute_Hemisphere()=0
Double_t GetY() const
Definition FemtoPair.h:312
void SetY2(Double_t val)
Definition FemtoPair.h:372
Double_t GetWeight() const
Definition FemtoPair.h:282
Double_t fX
Definition FemtoPair.h:76
void SetX2(Double_t val)
Definition FemtoPair.h:367
void SetPdg2(Int_t val)
Definition FemtoPair.h:392
Double_t GetM1() const
Definition FemtoPair.h:287
Double_t fY
Definition FemtoPair.h:80
Double_t TruePx1() const
Definition FemtoPair.h:142
Double_t TruePy2() const
Definition FemtoPair.h:172
Double_t GetZ1() const
Definition FemtoPair.h:202
Double_t GetKt() const
Double_t TruePhi1() const
Definition FemtoPair.h:162
Double_t GetPz1() const
Definition FemtoPair.h:242
void SetMass(Double_t m1, Double_t m2)
Double_t fX1
Definition FemtoPair.h:57
Double_t TruePhi2() const
Definition FemtoPair.h:187
void SetT1(Double_t val)
Definition FemtoPair.h:362
Double_t fPx1
Definition FemtoPair.h:41
Double_t TruePy1() const
Definition FemtoPair.h:147
Double_t fPx2
Definition FemtoPair.h:45
Track * GetTrack2() const
Definition FemtoPair.h:342
Double_t GetX2() const
Definition FemtoPair.h:212
Double_t GetPhi1() const
Definition FemtoPair.h:252
Track * fTrack2
Definition FemtoPair.h:37
Double_t GetPx2() const
Definition FemtoPair.h:257
Double_t GetTrueKt() const
Track * GetTrack1() const
Definition FemtoPair.h:337
Double_t GetE2() const
Definition FemtoPair.h:272
Double_t TruePz2() const
Definition FemtoPair.h:177
Double_t GetE1() const
Definition FemtoPair.h:247
Double_t TruePx2() const
Definition FemtoPair.h:167
FemtoPair & operator=(const FemtoMiniPair &other)
FemtoPair(Bool_t enable_fake=kFALSE)
Definition FemtoPair.cxx:27
void SetFreezouts(const TLorentzVector &x1, const TLorentzVector &x2)
virtual void Compute_Charged()
Definition FemtoPair.h:493
virtual void Compute_Rotated()=0
void SetX1(Double_t val)
Definition FemtoPair.h:347
Double_t GetZ2() const
Definition FemtoPair.h:222
Double_t GetZ() const
Definition FemtoPair.h:317
Double_t TrueE1() const
Definition FemtoPair.h:157
Double_t GetT1() const
Definition FemtoPair.h:207
void SetMomenta(const TLorentzVector &p1, const TLorentzVector &p2)
Bool_t IsUseImgMomenta() const
Definition FemtoPair.h:477
void BuildMomenta(TwoTrack *tracks)
Bool_t fUseAbs
Definition FemtoPair.h:98
Double_t GetPx1() const
Definition FemtoPair.h:232
Double_t TrueE2() const
Definition FemtoPair.h:182
Double_t fX2
Definition FemtoPair.h:61
void SetFreezoutCoord1(Double_t x, Double_t y, Double_t z, Double_t t)
Double_t TruePz1() const
Definition FemtoPair.h:152
Double_t GetPhi2() const
Definition FemtoPair.h:277
void SetTrueMomenta(const TLorentzVector &p1, const TLorentzVector &p2)
Double_t GetPhi() const
Definition FemtoPair.h:472
Double_t GetM2() const
Definition FemtoPair.h:292
Double_t fWeight
Definition FemtoPair.h:92
virtual void Compute()=0
void Build(TwoTrack *tracks)
Definition FemtoPair.h:136
Double_t GetX() const
Definition FemtoPair.h:307
Double_t GetPz2() const
Definition FemtoPair.h:267
void SetWeight(Double_t weight)
Definition FemtoPair.h:397
Int_t GetPdg1() const
Definition FemtoPair.h:297
Double_t GetT2() const
Definition FemtoPair.h:227
Double_t GetX1() const
Definition FemtoPair.h:192