SetDisplayInfo added
[u/mrichter/AliRoot.git] / HBTAN / AliHBTLLWeights.h
CommitLineData
7f92929e 1//This class introduce the weights calculation according with Lednicky's algorithm.
2//The detailed description of the algorithm can be found in comments to fortran code:
3//fsiw.f, fsiini.f
4#ifndef ALIHBTLLWEIGHTS_H
5#define ALIHBTLLWEIGHTS_H
6
7#include <TObject.h>
8#include "WLedCOMMONS.h"
9
10class AliHBTPair;
11class AliHBTLLWeights: public TObject
12 {
13 public:
14 virtual ~AliHBTLLWeights(){;}
15 static AliHBTLLWeights* Instance();
16
17 void Init(); //put the initial values in fortran commons fsiini, led_bldata
18 Double_t GetWeight(const AliHBTPair* partpair); //get weight calculated by Lednicky's algorithm
19
20 void SetTest(Bool_t rtest = kTRUE){ftest = rtest;} //if ftest=0:
21 //physical values of the following parameters are put automatically
22 // in FSIINI (their values are not required)
23 // ftest=1: any values of the following parameters are allowed,
24 //the following parameters are required:
25
26 void SetColoumb(Bool_t col = kTRUE){fColoumbSwitch = col;}//: (ICH in fortran code) Coulomb interaction between the two particles ON (OFF)
27 void SetQuantumStatistics(Bool_t qss = kTRUE){fQuantStatSwitch = qss;}//IQS: quantum statistics for the two particles ON (OFF) //if non-identical particles automatically off
28 void SetStrongInterSwitch(Bool_t sis = kTRUE){fStrongInterSwitch = sis;}//ISI: strong interaction between the two particles ON (OFF)
29 void SetColWithResidNuclSwitch(Bool_t crn = kTRUE){fColWithResidNuclSwitch = crn;}//I3C: Coulomb interaction with residual nucleus ON (OFF)
30 void SetApproxModel(Int_t ap){approximationModel=ap;}//NS in Fortran code,
31 // NS=1 Square well potential,
32 // NS=3 not used
33 // NS=4 scattered wave approximated by the spherical wave,
34 // NS=2 same as NS=4 but the approx. of equal emission times in PRF
35 // not required (t=0 approx. used in all other cases).
36
37
38 void SetRandomPosition(Bool_t rp = kTRUE){fRandomPosition = rp;} //ON=kTRUE(OFF=kFALSE)
39 // ON -- calculation of the Gauss source radii if the generator don't allows the source generation (for example MeVSim)
40 //if ON the following parameters are requested:
41 void SetR1dw(Double_t R){fRadius=R;} //spherical source model radii
42 void SetLambdaw(Double_t la){flambda=la;} //lambda=haoticity
43
44
45 void SetParticlesTypes(Int_t pid1, Int_t pid2){fPID1 = pid1; fPID2 = pid2;} //set AliRoot particles types
46
47 void SetNucleusCharge(Double_t ch){fNuclCharge=ch;} // not used now (see comments in fortran code)
48 void SetNucleusMass(Double_t mass){fNuclMass=mass;} // (see comments in fortran code)
49
50
51 protected:
52
53 Bool_t ftest;
54 Bool_t fColoumbSwitch;
55 Bool_t fQuantStatSwitch;
56 Bool_t fStrongInterSwitch;//Switches strong interactions TRUE=ON
57 Bool_t fColWithResidNuclSwitch;//Switches couloumb interaction
58 //with residual nucleus TRUE=ON
59 Double_t fNuclMass; //mass
60 Double_t fNuclCharge; //charge
61
62 Bool_t fRandomPosition;
63 Double_t fRadius;
64 Double_t flambda;
65
66
67 Double_t wein;
68
69 Int_t approximationModel; //approximation used to calculate Bethe-Salpeter amplitude
70 // ==1 Square well potential,
71 // ==3 not used
72 // ==4 scattered wave approximated by the spherical wave,
73 // ==2 same as NS=4 but the approx. of equal emission times in PRF
74 // not required (t=0 approx. used in all other cases).
75 // Note: if ==2,4, the B-S amplitude diverges at zero distance r* in
76 // the two-particle c.m.s.; user can specify a cutoff AA in
77 // SUBROUTINE FSIINI, for example:
78 // IF(NS.EQ.2.OR.NS.EQ.4)AA=5.D0 !! in 1/GeV --> AA=1. fm
79
80 Int_t fPID1;
81 Int_t fPID2;
82
83 static AliHBTLLWeights *fgLLWeights;// pointer to wrapper of Fortran Lednicky code
84
85
86 static Int_t GetPairCode(Int_t pid1,Int_t pid2);
87 static Int_t GetPairCode(const AliHBTPair* partpair);//calculate automatically internal FSIW
88 // C----------------------------------------------------------------------
89 // C- LL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
90 // C- part. 1: n p n alfa pi+ pi0 pi+ n p pi+ pi+ pi+ pi- K+ K+ K+ K-
91 // C- part. 2: n p p alfa pi- pi0 pi+ d d K- K+ p p K- K+ p p
92 // C NS=1 y/n: + + + + + - - - - - - - - - - - -
93 // C----------------------------------------------------------------------
94 // C- LL 18 19 20 21 22 23 24 25 26 27 28
95 // C- part. 1: d d t t K0 K0 d p p p n
96 // C- part. 2: d alfa t alfa K0 K0b t t alfa lambda lambda
97 // C NS=1 y/n: - - - - - - - - - + +
98 // C----------------------------------------------------------------------
99
100
101 Double_t fsigma; //constants for spherical source model
102 Double_t fwcons; //
103
104 private:
105 AliHBTLLWeights();
106
107 public:
108 ClassDef(AliHBTLLWeights,1)
109 };
110
111#endif