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