]>
Commit | Line | Data |
---|---|---|
1 | /* $Id$ */ | |
2 | ||
3 | //__________________________________________________________________________ | |
4 | //////////////////////////////////////////////////////////////////////////// | |
5 | // | |
6 | // class AliHBTCrab | |
7 | // | |
8 | // This class introduces the weight's calculation | |
9 | // according to the Lednicky's algorithm. | |
10 | // The detailed description of the algorithm can be found | |
11 | // in comments to fortran code: | |
12 | // fsiw.f, fsiini.f | |
13 | // | |
14 | // Piotr.Skowronski@cern.ch | |
15 | //////////////////////////////////////////////////////////////////////////// | |
16 | ||
17 | #ifndef ALIHBTCrab_H | |
18 | #define ALIHBTCrab_H | |
19 | ||
20 | #include "AliHBTWeights.h" | |
21 | ||
22 | #ifdef __DECCXX | |
23 | #include <complex.h> | |
24 | #else | |
25 | class Complex; | |
26 | typedef Complex doublecomplex; | |
27 | #endif | |
28 | ||
29 | //#include <math.h> | |
30 | ||
31 | class AliHBTPair; | |
32 | ||
33 | class AliHBTCrab: public AliHBTWeights | |
34 | { | |
35 | public: | |
36 | ||
37 | AliHBTCrab(); | |
38 | virtual ~AliHBTCrab(){fgCrab =0x0;} | |
39 | static AliHBTCrab* Instance(); | |
40 | void Set(); | |
41 | ||
42 | Double_t GetWeight(AliHBTPair* partpair); | |
43 | void Init(Int_t pid1,Int_t pid2); //put the initial values in fortran commons fsiini, led_bldata | |
44 | ||
45 | private: | |
46 | AliHBTCrab(const AliHBTCrab &/*source*/); | |
47 | AliHBTCrab & operator=(const AliHBTCrab& /*source*/); | |
48 | ||
49 | void GetComQuantities(const AliHBTPair* pair, double *qred,double *r,double *qdotr,double *mom, int *test); | |
50 | double CorrCalc(double trueqred,double trueqdotr,double truer); | |
51 | ||
52 | Bool_t fBreitWigner;//switch if to calculated BW | |
53 | Bool_t fReducedMom;//switch if | |
54 | Float_t fMaxMomentum;//switch if | |
55 | ||
56 | Bool_t SetConfig(const AliHBTPair* pair); | |
57 | ||
58 | Int_t fPid1;//PID of the first particle | |
59 | Int_t fPid2;//PID of the second particle | |
60 | ||
61 | Double_t fMass1;//mass of the first particle | |
62 | Double_t fMass2;//mass of the second particle | |
63 | ||
64 | Float_t fInteractionWsym;// fractions of symmetric and antisym weights of the various spin channels | |
65 | Float_t fInteractionWanti;//comment | |
66 | Float_t fInteractionWnosym;//comment | |
67 | ||
68 | Float_t fInteractionDelk;//comment | |
69 | Int_t fInteractionNkmax;// number of momentum points in mesh for strong/coul. interaction | |
70 | ||
71 | #ifdef __DECCXX | |
72 | static const complex fgkCI;//complex (1,0) | |
73 | #else | |
74 | static const doublecomplex fgkCI;//complex (1,0) | |
75 | #endif | |
76 | static const Double_t fgkROOT2;//! some const | |
77 | static const Double_t fgkWcons; //constant for fm->GeV conversion 1/0.1973 | |
78 | ||
79 | #ifdef __DECCXX | |
80 | complex CGamma(complex c); | |
81 | #else | |
82 | doublecomplex CGamma(doublecomplex c); | |
83 | #endif | |
84 | ||
85 | static AliHBTCrab* fgCrab; //pointer to instance of this class - singleton | |
86 | ClassDef(AliHBTCrab,1) | |
87 | }; | |
88 | ||
89 | #endif |