]>
Commit | Line | Data |
---|---|---|
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 ALIHBTLLWEIGHTS_H | |
10 | #define ALIHBTLLWEIGHTS_H | |
11 | ||
12 | #include "AliHBTWeights.h" | |
13 | ||
14 | class AliHBTPair; | |
15 | class AliHBTLLWeights: public AliHBTWeights | |
16 | { | |
17 | public: | |
18 | AliHBTLLWeights(); | |
19 | virtual ~AliHBTLLWeights(){;} | |
20 | static AliHBTLLWeights* Instance(); | |
21 | ||
22 | void Set(); | |
23 | ||
24 | Double_t GetWeight(const AliHBTPair* partpair); //get weight calculated by Lednicky's algorithm | |
25 | ||
26 | void Init(); //put the initial values in fortran commons fsiini, led_bldata | |
27 | void SetTest(Bool_t rtest = kTRUE);//Sets fTest member | |
28 | ||
29 | void SetColoumb(Bool_t col = kTRUE);//: (ICH in fortran code) Coulomb interaction between the two particles ON (OFF) | |
30 | void SetQuantumStatistics(Bool_t qss = kTRUE);//IQS: quantum statistics for the two particles ON (OFF) //if non-identical particles automatically off | |
31 | void SetStrongInterSwitch(Bool_t sis = kTRUE);//ISI: strong interaction between the two particles ON (OFF) | |
32 | void SetColWithResidNuclSwitch(Bool_t crn = kTRUE);//I3C: Coulomb interaction with residual nucleus ON (OFF) | |
33 | void SetLambda(Double_t la){fOneMinusLambda=1.-la;} //lambda=haoticity | |
34 | void SetApproxModel(Int_t ap);//sets Model of Approximation (NS in Fortran code) | |
35 | void SetRandomPosition(Bool_t rp = kTRUE); //ON=kTRUE(OFF=kFALSE) | |
36 | void SetR1dw(Double_t R); //spherical source model radii | |
37 | void SetParticlesTypes(Int_t pid1, Int_t pid2); //set AliRoot particles types | |
38 | void SetNucleusCharge(Double_t ch); // not used now (see comments in fortran code) | |
39 | void SetNucleusMass(Double_t mass); // (see comments in fortran code) | |
40 | ||
41 | protected: | |
42 | ||
43 | Bool_t fTest; //flag indicating if parameters listed below are to be calculated automatically (0) | |
44 | //or | |
45 | Bool_t fColoumbSwitch; //switches on/off Coulumb effect | |
46 | Bool_t fQuantStatSwitch; //switches on/off Quantum Statistics effect | |
47 | Bool_t fStrongInterSwitch;//Switches strong interactions TRUE=ON | |
48 | Bool_t fColWithResidNuclSwitch;//Switches couloumb interaction | |
49 | //with residual nucleus TRUE=ON | |
50 | Double_t fNuclMass; //mass of nucleus | |
51 | Double_t fNuclCharge; //charge of nucleus | |
52 | ||
53 | Bool_t fRandomPosition;//flag indicating if positions of particles shuold be randomized according to parameters below | |
54 | Double_t fRadius; //radius used for randomizing particle vertex position | |
55 | ||
56 | Double_t fOneMinusLambda; //1 - intercept parameter | |
57 | ||
58 | Int_t fApproximationModel; //approximation used to calculate Bethe-Salpeter amplitude see SetApproxModel for more comments | |
59 | ||
60 | Int_t fPID1; //Pdg Code of the first particle in the pair | |
61 | Int_t fPID2; //Pdg Code of the second particle in the pair | |
62 | Double_t fSigma; //constants for spherical source model in cm | |
63 | static const Double_t fgkWcons; //constant for fm->GeV conversion 1/0.1973 | |
64 | ||
65 | static AliHBTLLWeights *fgLLWeights;// pointer to wrapper of Fortran Lednicky code | |
66 | ||
67 | static Int_t GetPairCode(Int_t pid1,Int_t pid2); | |
68 | static Int_t GetPairCode(const AliHBTPair* partpair);//calculate automatically internal code | |
69 | ||
70 | private: | |
71 | AliHBTLLWeights(const AliHBTLLWeights &/*source*/); | |
72 | AliHBTLLWeights & operator=(const AliHBTLLWeights& /*source*/); | |
73 | ||
74 | ClassDef(AliHBTLLWeights,1) | |
75 | }; | |
76 | ||
77 | #endif |