+++ /dev/null
-///////////////////////////////////////////////////////////////////////////
-// //
-// AliFemtoModelWeightGeneratorLednicky : the most advanced weight //
-// generator available. Supports a large number of different pair types //
-// and interaction types. Can calculate pair weights coming from //
-// quantum statistics, coulomb interation and strong interaction ot any //
-// combination of the three, as applicable. //
-// //
-///////////////////////////////////////////////////////////////////////////
-
-#ifndef ALIFEMTOMODELWEIGHTGENERATORLEDNICKY_H
-#define ALIFEMTOMODELWEIGHTGENERATORLEDNICKY_H
-
-#include "AliFemtoTypes.h"
-#include "AliFemtoModelWeightGenerator.h"
-
-class AliFemtoModelWeightGeneratorLednicky : public AliFemtoModelWeightGenerator {
- public:
-// --- Constructor
- AliFemtoModelWeightGeneratorLednicky(); // call SetDefaultCalcPar
- AliFemtoModelWeightGeneratorLednicky(const AliFemtoModelWeightGeneratorLednicky &aWeight); // call SetDefaultCalcPar
-// --- Destructor : nothing to explicitly delete
- AliFemtoModelWeightGeneratorLednicky& operator=(const AliFemtoModelWeightGeneratorLednicky& aWeight);
- ~AliFemtoModelWeightGeneratorLednicky();
-
- virtual Double_t GenerateWeight(AliFemtoPair *aPair);
-
- virtual void SetPairType(Int_t aPairType);
- virtual void SetPairTypeFromPair(AliFemtoPair *aPair);
- virtual Int_t GetPairType() const;
-
- virtual Double_t GetKStar() const;
- virtual Double_t GetKStarOut() const;
- virtual Double_t GetKStarSide() const;
- virtual Double_t GetKStarLong() const;
- virtual Double_t GetRStar() const;
- virtual Double_t GetRStarOut() const;
- virtual Double_t GetRStarSide() const;
- virtual Double_t GetRStarLong() const;
-
- virtual AliFemtoModelWeightGenerator* Clone() const;
-
-// --- Setting
-
-// >>> Calculation mode
- void SetDefaultCalcPar(); // Default is CoulOn, QuantumOn, StrongOn, 3BodyOff, Square, T0ApproxOff
- void SetCoulOn();
- void SetCoulOff();
-
- void SetQuantumOn();
- void SetQuantumOff();
- void SetStrongOn();
- void SetStrongOff();
- void Set3BodyOn();
- void Set3BodyOff();
- void SetSphere(); // use Spherical wave approximation
- void SetSquare(); // use use Square potential (only for p-p and pi+Pi-) otherwise, use spherical wave approx
- void SetT0ApproxOff();//only with Spherical wave Approximation - this is default mode
- void SetT0ApproxOn();
-
-// Test Lambda parameters
- void PrintLambdas(){;}
-
- void SetNuclCharge(const double aNuclCharge); // for 3-body calculation
- void SetNuclMass(const double aNuclMass);
-
- virtual AliFemtoString Report();
-
-protected:
- // Fsi weight output
- double fWei; // normal weight
- double fWein; // weight with nuclear influence
- double fWeif; // weight
- double fWeightDen; // weight for the denominator
-
- // Setting parameters
- int fItest; // if set to 1 default parameters will be used
-
- //int mNs;
- int fIch; // switch coulomb interaction on/off
- int fIqs; // switch quantum statistics on/off
- int fIsi; // switch strong interaction on/off
- int fI3c; // switch 3rd body influence on/off
- double fNuclMass; // mass of the third body
- double fNuclCharge; // charge of the third body
-
- bool fSphereApp; // use spherical approximation
- bool fT0App; // use square well approximation
-
- //Pair identification
- int fLL; // internal pair type code
- short fNuclChargeSign; // sign of the 3rd body charge
- bool fSwap; // are particle in right order ?
- int const fLLMax; // number of supported pairs
- char** fLLName; // name of the system
- int * fNumProcessPair; // number of process pairs of each type
- int fNumbNonId; // Number of unidentified pairs
-
- // Interface to the fortran functions
- void FsiInit();
- void FsiSetLL();
- void FsiNucl();
- bool SetPid(const int aPid1,const int aPid2);
-
-#ifdef __ROOT__
- ClassDef(AliFemtoModelWeightGeneratorLednicky,1)
-#endif
-};
-
-#endif