]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelWeightGenerator.h
Bring AliFemto up to date with latest code developements
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoModelWeightGenerator.h
CommitLineData
d0e92d9a 1////////////////////////////////////////////////////////////////////////////////
2/// ///
3/// AliFemtoModelWeightGenerator - abstract base class for femtoscopic ///
4/// weight generator ///
5/// Authors: Adam Kisiel kisiel@mps.ohio-state.edu ///
6/// ///
7////////////////////////////////////////////////////////////////////////////////
ea77036b 8#ifndef ALIFEMTOMODELWEIGHTGENERATOR_H
9#define ALIFEMTOMODELWEIGHTGENERATOR_H
d0e92d9a 10
11#include "TRandom2.h"
ea77036b 12class AliFemtoPair;
d0e92d9a 13
14class AliFemtoModelWeightGenerator
15{
16 public:
17 AliFemtoModelWeightGenerator();
18 AliFemtoModelWeightGenerator(const AliFemtoModelWeightGenerator &aModel);
19 virtual ~AliFemtoModelWeightGenerator();
20 virtual Double_t GenerateWeight(AliFemtoPair *aPair) = 0;
21
22 virtual void SetPairType(Int_t aPairType);
23 virtual void SetPairTypeFromPair(AliFemtoPair *aPair);
24 virtual Int_t GetPairType() const;
0b3bd1ac 25 virtual Int_t GetPairTypeFromPair(AliFemtoPair *aPair);
d0e92d9a 26
27 virtual Double_t GetKStar() const;
28 virtual Double_t GetKStarOut() const;
29 virtual Double_t GetKStarSide() const;
30 virtual Double_t GetKStarLong() const;
31 virtual Double_t GetRStar() const;
32 virtual Double_t GetRStarOut() const;
33 virtual Double_t GetRStarSide() const;
34 virtual Double_t GetRStarLong() const;
35
36 virtual AliFemtoModelWeightGenerator* Clone() const;
37
2371ba23 38 static Int_t PionPlusPionPlus();
39 static Int_t PionPlusPionMinus();
40 static Int_t KaonPlusKaonPlus();
41 static Int_t KaonPlusKaonMinus();
42 static Int_t ProtonProton();
43 static Int_t ProtonAntiproton();
44 static Int_t PionPlusKaonPlus();
45 static Int_t PionPlusKaonMinus();
46 static Int_t PionPlusProton();
47 static Int_t PionPlusAntiproton();
48 static Int_t KaonPlusProton();
49 static Int_t KaonPlusAntiproton();
0b3bd1ac 50 static Int_t PairTypeNone();
2371ba23 51
52 protected:
0b3bd1ac 53 static const Int_t fgkPairTypeNone; // no pair type set - read from model
d0e92d9a 54 static const Int_t fgkPionPlusPionPlus; // identical pion pair
55 static const Int_t fgkPionPlusPionMinus; // non-identical pion pair
56 static const Int_t fgkKaonPlusKaonPlus; // identical kaon pair
57 static const Int_t fgkKaonPlusKaonMinus; // non-identical kaon pair
58 static const Int_t fgkProtonProton; // identical proton pair
59 static const Int_t fgkProtonAntiproton; // non-identical proton pair
60 static const Int_t fgkPionPlusKaonPlus; // same-charge pion kaon pair
61 static const Int_t fgkPionPlusKaonMinus; // opposite-charge pion kaon pair
62 static const Int_t fgkPionPlusProton; // same-charge pion proton pair
63 static const Int_t fgkPionPlusAntiproton;// opposite-chare pion proton pair
64 static const Int_t fgkKaonPlusProton; // same-charge kaon proton pair
65 static const Int_t fgkKaonPlusAntiproton;// opposite-charge kaon proton pair
66
ea77036b 67 Int_t fPairType; // Type of the pair for which the calculation is done
d0e92d9a 68
69 Double_t fKStarOut; // relative momentum out component in PRF
70 Double_t fKStarSide; // relative momentum side component in PRF
71 Double_t fKStarLong; // relative momentum long component in PRF
72 Double_t fKStar; // relative momentum magnitude
73
74 Double_t fRStarOut; // relative separation out component in PRF
75 Double_t fRStarSide; // relative separation side component in PRF
76 Double_t fRStarLong; // relative separation long component in PRF
77 Double_t fRStar; // relative separation magnitude
78 private:
79
80#ifdef __ROOT__
81 ClassDef(AliFemtoModelWeightGenerator, 1)
82#endif
83
84 };
85
86inline Double_t AliFemtoModelWeightGenerator::GetKStar() const { return fKStar; }
87inline Double_t AliFemtoModelWeightGenerator::GetKStarOut() const { return fKStarOut; }
88inline Double_t AliFemtoModelWeightGenerator::GetKStarSide() const { return fKStarSide; }
89inline Double_t AliFemtoModelWeightGenerator::GetKStarLong() const { return fKStarLong; }
90inline Double_t AliFemtoModelWeightGenerator::GetRStar() const { return fRStar; }
91inline Double_t AliFemtoModelWeightGenerator::GetRStarOut() const { return fRStarOut; }
92inline Double_t AliFemtoModelWeightGenerator::GetRStarSide() const { return fRStarSide; }
93inline Double_t AliFemtoModelWeightGenerator::GetRStarLong() const { return fRStarLong; }
94
0b3bd1ac 95inline Int_t AliFemtoModelWeightGenerator::PairTypeNone() { return fgkPairTypeNone; }
2371ba23 96inline Int_t AliFemtoModelWeightGenerator::PionPlusPionPlus() { return fgkPionPlusPionPlus; }
97inline Int_t AliFemtoModelWeightGenerator::PionPlusPionMinus() { return fgkPionPlusPionMinus; }
98inline Int_t AliFemtoModelWeightGenerator::KaonPlusKaonPlus() { return fgkKaonPlusKaonPlus; }
99inline Int_t AliFemtoModelWeightGenerator::KaonPlusKaonMinus() { return fgkKaonPlusKaonMinus; }
100inline Int_t AliFemtoModelWeightGenerator::ProtonProton() { return fgkProtonProton; }
101inline Int_t AliFemtoModelWeightGenerator::ProtonAntiproton() { return fgkProtonAntiproton; }
102inline Int_t AliFemtoModelWeightGenerator::PionPlusKaonPlus() { return fgkPionPlusKaonPlus; }
103inline Int_t AliFemtoModelWeightGenerator::PionPlusKaonMinus() { return fgkPionPlusKaonMinus; }
104inline Int_t AliFemtoModelWeightGenerator::PionPlusProton() { return fgkPionPlusProton; }
105inline Int_t AliFemtoModelWeightGenerator::PionPlusAntiproton() { return fgkPionPlusAntiproton; }
106inline Int_t AliFemtoModelWeightGenerator::KaonPlusProton() { return fgkKaonPlusProton; }
107inline Int_t AliFemtoModelWeightGenerator::KaonPlusAntiproton() { return fgkKaonPlusAntiproton; }
d0e92d9a 108
109#endif
110
111