]>
Commit | Line | Data |
---|---|---|
4fdf4eb3 | 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 | |
7f92929e | 8 | #ifndef ALIHBTLLWEIGHTS_H |
9 | #define ALIHBTLLWEIGHTS_H | |
10 | ||
11 | #include <TObject.h> | |
7f92929e | 12 | |
13 | class AliHBTPair; | |
14 | class AliHBTLLWeights: public TObject | |
4fdf4eb3 | 15 | { |
16 | public: | |
17 | virtual ~AliHBTLLWeights(){;} | |
18 | AliHBTLLWeights(const AliHBTLLWeights &source) { | |
19 | //Copy ctor needed by the coding conventions but not used | |
20 | Fatal("AliHBTLLWeights","copy ctor not implemented"); | |
21 | } | |
22 | AliHBTLLWeights & operator=(const AliHBTLLWeights &source) { | |
23 | //Assignment operator needed by the coding conventions but not used | |
24 | Fatal("AliHBTLLWeights","assignment operator not implemented"); | |
25 | return * this; | |
26 | } | |
27 | static AliHBTLLWeights* Instance(); | |
28 | ||
29 | void Init(); //put the initial values in fortran commons fsiini, led_bldata | |
30 | Double_t GetWeight(const AliHBTPair* partpair); //get weight calculated by Lednicky's algorithm | |
31 | ||
32 | void SetTest(Bool_t rtest = kTRUE){ftest = rtest;} //if ftest=0: | |
33 | //physical values of the following parameters are put automatically | |
34 | // in FSIINI (their values are not required) | |
35 | // ftest=1: any values of the following parameters are allowed, | |
36 | //the following parameters are required: | |
37 | ||
38 | void SetColoumb(Bool_t col = kTRUE){ | |
39 | //(ICH in fortran code) Coulomb interaction between | |
40 | //the two particles ON (OFF) | |
41 | fColoumbSwitch = col; | |
42 | } | |
43 | void SetQuantumStatistics(Bool_t qss = kTRUE){ | |
44 | //IQS: quantum statistics for the two particles ON (OFF) | |
45 | //if non-identical particles automatically off | |
46 | fQuantStatSwitch = qss; | |
47 | } | |
48 | void SetStrongInterSwitch(Bool_t sis = kTRUE){ | |
49 | //ISI: strong interaction between the two particles ON (OFF) | |
50 | fStrongInterSwitch = sis; | |
51 | } | |
52 | void SetColWithResidNuclSwitch(Bool_t crn = kTRUE){ | |
53 | //I3C: Coulomb interaction with residual nucleus ON (OFF) | |
54 | fColWithResidNuclSwitch = crn; | |
55 | } | |
56 | void SetApproxModel(Int_t ap){ | |
57 | //NS in Fortran code, | |
58 | fApproximationModel=ap; | |
59 | } | |
60 | // NS=1 Square well potential, | |
61 | // NS=3 not used | |
62 | // NS=4 scattered wave approximated by the spherical wave, | |
63 | // NS=2 same as NS=4 but the approx. of equal emission times in PRF | |
64 | // not required (t=0 approx. used in all other cases). | |
7f92929e | 65 | |
66 | ||
4fdf4eb3 | 67 | void SetRandomPosition(Bool_t rp = kTRUE){ |
68 | //ON=kTRUE(OFF=kFALSE) | |
69 | fRandomPosition = rp; | |
70 | } | |
71 | // ON -- calculation of the Gauss source radii if the generator | |
72 | // don't allows the source generation (for example MeVSim) | |
73 | //if ON the following parameters are requested: | |
74 | void SetR1dw(Double_t R){fRadius=R;} //spherical source model radii | |
75 | void SetLambdaw(Double_t la){flambda=la;} //lambda=haoticity | |
76 | void SetParticlesTypes(Int_t pid1, Int_t pid2){ | |
77 | //set AliRoot particles types | |
78 | fPID1 = pid1; fPID2 = pid2; | |
79 | } | |
7f92929e | 80 | |
4fdf4eb3 | 81 | void SetNucleusCharge(Double_t ch){ |
82 | // not used now (see comments in fortran code) | |
83 | fNuclCharge=ch; | |
84 | } | |
85 | void SetNucleusMass(Double_t mass){ | |
86 | // (see comments in fortran code) | |
87 | fNuclMass=mass; | |
88 | } | |
89 | ||
90 | ||
91 | protected: | |
92 | ||
93 | Bool_t ftest; // Switch for automatic setting of all parameters | |
94 | Bool_t fColoumbSwitch; // Swith for Couloumb interaction in the pair | |
95 | Bool_t fQuantStatSwitch; //Switch for quantum statistics | |
96 | Bool_t fStrongInterSwitch;//Switches strong interactions TRUE=ON | |
97 | Bool_t fColWithResidNuclSwitch;//Switches couloumb interaction | |
98 | //with residual nucleus TRUE=ON | |
99 | Double_t fNuclMass; //mass | |
100 | Double_t fNuclCharge; //charge | |
101 | ||
102 | Bool_t fRandomPosition; // Radius of Gaussian source | |
103 | Double_t fRadius; // Raduis of spheric source | |
104 | Double_t flambda; // Chaoticity | |
105 | ||
106 | ||
107 | // Double_t fWein; | |
108 | ||
109 | Int_t fApproximationModel; //approximation used to calculate | |
110 | // Bethe-Salpeter amplitude | |
111 | // ==1 Square well potential, | |
112 | // ==3 not used | |
113 | // ==4 scattered wave approximated by the spherical wave, | |
114 | // ==2 same as NS=4 but the approx. of equal emission times in PRF | |
115 | // not required (t=0 approx. used in all other cases). | |
116 | // Note: if ==2,4, the B-S amplitude diverges at zero distance r* in | |
117 | // the two-particle c.m.s.; user can specify a cutoff AA in | |
118 | // SUBROUTINE FSIINI, for example: | |
119 | // IF(NS.EQ.2.OR.NS.EQ.4)AA=5.D0 !! in 1/GeV --> AA=1. fm | |
120 | ||
121 | Int_t fPID1; // Type of the first particle | |
122 | Int_t fPID2; // Type of the second particle | |
123 | ||
124 | static AliHBTLLWeights *fgLLWeights;// pointer to wrapper of Fortran Lednicky code | |
125 | ||
126 | ||
127 | static Int_t GetPairCode(Int_t pid1,Int_t pid2); | |
128 | static Int_t GetPairCode(const AliHBTPair* partpair);//calculate automatically internal FSIW | |
129 | //---------------------------------------------------------------------- | |
130 | // LL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
131 | // part. 1: n p n alfa pi+ pi0 pi+ n p pi+ pi+ pi+ pi- K+ K+ K+ K- | |
132 | // part. 2: n p p alfa pi- pi0 pi+ d d K- K+ p p K- K+ p p | |
133 | // NS=1 y/n: + + + + + - - - - - - - - - - - - | |
134 | //---------------------------------------------------------------------- | |
135 | // LL 18 19 20 21 22 23 24 25 26 27 28 | |
136 | // part. 1: d d t t K0 K0 d p p p n | |
137 | // part. 2: d alfa t alfa K0 K0b t t alfa lambda lambda | |
138 | // NS=1 y/n: - - - - - - - - - + + | |
139 | //---------------------------------------------------------------------- | |
140 | ||
141 | Double_t fsigma; //constants for spherical source model | |
142 | Double_t fwcons; //weight of final state interaction? | |
143 | ||
144 | private: | |
145 | AliHBTLLWeights(); | |
146 | ||
147 | ClassDef(AliHBTLLWeights,1) | |
7f92929e | 148 | }; |
149 | ||
150 | #endif |