]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelWeightGeneratorLednicky.h
Adding Lednicky's weight generator
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoModelWeightGeneratorLednicky.h
CommitLineData
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
17class 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
62 void PrintLambdas();
63
64 void SetNuclCharge(const double aNuclCharge); // for 3-body calculation
65 void SetNuclMass(const double aNuclMass);
66
67 virtual AliFemtoString Report();
68
69protected:
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