1 ///////////////////////////////////////////////////////////////////////////
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. //
9 ///////////////////////////////////////////////////////////////////////////
11 #ifndef ALIFEMTOMODELWEIGHTGENERATORLEDNICKY_H
12 #define ALIFEMTOMODELWEIGHTGENERATORLEDNICKY_H
14 #include "AliFemtoTypes.h"
15 #include "AliFemtoModelWeightGenerator.h"
17 class AliFemtoModelWeightGeneratorLednicky : public AliFemtoModelWeightGenerator {
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();
26 virtual Double_t GenerateWeight(AliFemtoPair *aPair);
28 virtual void SetPairType(Int_t aPairType);
29 virtual void SetPairTypeFromPair(AliFemtoPair *aPair);
30 virtual Int_t GetPairType() const;
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;
41 virtual AliFemtoModelWeightGenerator* Clone() const;
45 // >>> Calculation mode
46 void SetDefaultCalcPar(); // Default is CoulOn, QuantumOn, StrongOn, 3BodyOff, Square, T0ApproxOff
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
61 // Test Lambda parameters
64 void SetNuclCharge(const double aNuclCharge); // for 3-body calculation
65 void SetNuclMass(const double aNuclMass);
67 virtual AliFemtoString Report();
71 double fWei; // normal weight
72 double fWein; // weight with nuclear influence
73 double fWeif; // weight
74 double fWeightDen; // weight for the denominator
77 int fItest; // if set to 1 default parameters will be used
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
87 bool fSphereApp; // use spherical approximation
88 bool fT0App; // use square well approximation
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
99 // Interface to the fortran functions
103 bool SetPid(const int aPid1,const int aPid2);
106 ClassDef(AliFemtoModelWeightGeneratorLednicky,1)