]>
Commit | Line | Data |
---|---|---|
37e4484e | 1 | /////////////////////////////////////////////////////////////////////////// |
2 | // // | |
3 | // AliFemtoModelWeightGeneratorLednicky : the most advanced weight // | |
4 | // generator available. Supports a large number of different pair types // | |
5 | // and interaction types. Can calculate pair weights coming from // | |
6 | // quantum statistics, coulomb interation and strong interaction ot any // | |
7 | // combination of the three, as applicable. // | |
8 | // // | |
9 | /////////////////////////////////////////////////////////////////////////// | |
10 | ||
11 | #ifndef ALIFEMTOMODELWEIGHTGENERATORLEDNICKY_H | |
12 | #define ALIFEMTOMODELWEIGHTGENERATORLEDNICKY_H | |
13 | ||
14 | #include "AliFemtoTypes.h" | |
15 | #include "AliFemtoModelWeightGenerator.h" | |
16 | ||
17 | class AliFemtoModelWeightGeneratorLednicky : public AliFemtoModelWeightGenerator { | |
18 | public: | |
19 | // --- Constructor | |
20 | AliFemtoModelWeightGeneratorLednicky(); // call SetDefaultCalcPar | |
21 | AliFemtoModelWeightGeneratorLednicky(const AliFemtoModelWeightGeneratorLednicky &aWeight); // call SetDefaultCalcPar | |
22 | // --- Destructor : nothing to explicitly delete | |
23 | AliFemtoModelWeightGeneratorLednicky& operator=(const AliFemtoModelWeightGeneratorLednicky& aWeight); | |
24 | ~AliFemtoModelWeightGeneratorLednicky(); | |
25 | ||
26 | virtual Double_t GenerateWeight(AliFemtoPair *aPair); | |
27 | ||
28 | virtual void SetPairType(Int_t aPairType); | |
29 | virtual void SetPairTypeFromPair(AliFemtoPair *aPair); | |
30 | virtual Int_t GetPairType() const; | |
31 | ||
32 | virtual Double_t GetKStar() const; | |
33 | virtual Double_t GetKStarOut() const; | |
34 | virtual Double_t GetKStarSide() const; | |
35 | virtual Double_t GetKStarLong() const; | |
36 | virtual Double_t GetRStar() const; | |
37 | virtual Double_t GetRStarOut() const; | |
38 | virtual Double_t GetRStarSide() const; | |
39 | virtual Double_t GetRStarLong() const; | |
40 | ||
41 | virtual AliFemtoModelWeightGenerator* Clone() const; | |
42 | ||
43 | // --- Setting | |
44 | ||
45 | // >>> Calculation mode | |
46 | void SetDefaultCalcPar(); // Default is CoulOn, QuantumOn, StrongOn, 3BodyOff, Square, T0ApproxOff | |
47 | void SetCoulOn(); | |
48 | void SetCoulOff(); | |
49 | ||
50 | void SetQuantumOn(); | |
51 | void SetQuantumOff(); | |
52 | void SetStrongOn(); | |
53 | void SetStrongOff(); | |
54 | void Set3BodyOn(); | |
55 | void Set3BodyOff(); | |
56 | void SetSphere(); // use Spherical wave approximation | |
57 | void SetSquare(); // use use Square potential (only for p-p and pi+Pi-) otherwise, use spherical wave approx | |
58 | void SetT0ApproxOff();//only with Spherical wave Approximation - this is default mode | |
59 | void SetT0ApproxOn(); | |
60 | ||
61 | // Test Lambda parameters | |
1e57e576 | 62 | void PrintLambdas(){;} |
37e4484e | 63 | |
64 | void SetNuclCharge(const double aNuclCharge); // for 3-body calculation | |
65 | void SetNuclMass(const double aNuclMass); | |
66 | ||
67 | virtual AliFemtoString Report(); | |
68 | ||
69 | protected: | |
70 | // Fsi weight output | |
71 | double fWei; // normal weight | |
72 | double fWein; // weight with nuclear influence | |
73 | double fWeif; // weight | |
74 | double fWeightDen; // weight for the denominator | |
75 | ||
76 | // Setting parameters | |
77 | int fItest; // if set to 1 default parameters will be used | |
78 | ||
79 | //int mNs; | |
80 | int fIch; // switch coulomb interaction on/off | |
81 | int fIqs; // switch quantum statistics on/off | |
82 | int fIsi; // switch strong interaction on/off | |
83 | int fI3c; // switch 3rd body influence on/off | |
84 | double fNuclMass; // mass of the third body | |
85 | double fNuclCharge; // charge of the third body | |
86 | ||
87 | bool fSphereApp; // use spherical approximation | |
88 | bool fT0App; // use square well approximation | |
89 | ||
90 | //Pair identification | |
91 | int fLL; // internal pair type code | |
92 | short fNuclChargeSign; // sign of the 3rd body charge | |
93 | bool fSwap; // are particle in right order ? | |
94 | int const fLLMax; // number of supported pairs | |
95 | char** fLLName; // name of the system | |
96 | int * fNumProcessPair; // number of process pairs of each type | |
97 | int fNumbNonId; // Number of unidentified pairs | |
98 | ||
99 | // Interface to the fortran functions | |
100 | void FsiInit(); | |
101 | void FsiSetLL(); | |
102 | void FsiNucl(); | |
103 | bool SetPid(const int aPid1,const int aPid2); | |
104 | ||
105 | #ifdef __ROOT__ | |
106 | ClassDef(AliFemtoModelWeightGeneratorLednicky,1) | |
107 | #endif | |
108 | }; | |
109 | ||
110 | #endif |