Initial check-in of the model classes
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Model / AliFemtoModelWeightGenerator.h
CommitLineData
75c432a7 1////////////////////////////////////////////////////////////////////////////////
2/// ///
3/// AliFemtoModelWeightGenerator - abstract base class for femtoscopic ///
4/// weight generator ///
5/// Authors: Adam Kisiel kisiel@mps.ohio-state.edu ///
6/// ///
7////////////////////////////////////////////////////////////////////////////////
8#ifndef AliFemtoModelWeightGenerator_hh
9#define AliFemtoModelWeightGenerator_hh
10
11#include "TRandom2.h"
12#include "AliFemtoPair.h"
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();
25
26 virtual Double_t GetKStar();
27 virtual Double_t GetKStarOut();
28 virtual Double_t GetKStarSide();
29 virtual Double_t GetKStarLong();
30 virtual Double_t GetRStar();
31 virtual Double_t GetRStarOut();
32 virtual Double_t GetRStarSide();
33 virtual Double_t GetRStarLong();
34
35 virtual AliFemtoModelWeightGenerator* Clone() const;
36
37 static const Int_t kPionPlusPionPlus;
38 static const Int_t kPionPlusPionMinus;
39 static const Int_t kKaonPlusKaonPlus;
40 static const Int_t kKaonPlusKaonMinus;
41 static const Int_t kProtonProton;
42 static const Int_t kProtonAntiproton;
43 static const Int_t kPionPlusKaonPlus;
44 static const Int_t kPionPlusKaonMinus;
45 static const Int_t kPionPlusProton;
46 static const Int_t kPionPlusAntiproton;
47 static const Int_t kKaonPlusProton;
48 static const Int_t kKaonPlusAntiproton;
49
50 protected:
51 Int_t fPairType;
52
53 Double_t fKStarOut; // relative momentum out component in PRF
54 Double_t fKStarSide; // relative momentum side component in PRF
55 Double_t fKStarLong; // relative momentum long component in PRF
56 Double_t fKStar; // relative momentum magnitude
57
58 Double_t fRStarOut; // relative separation out component in PRF
59 Double_t fRStarSide; // relative separation side component in PRF
60 Double_t fRStarLong; // relative separation long component in PRF
61 Double_t fRStar; // relative separation magnitude
62 private:
63
64#ifdef __ROOT__
65 ClassDef(AliFemtoModelWeightGenerator, 1)
66#endif
67
68 };
69
70inline Double_t AliFemtoModelWeightGenerator::GetKStar() { return fKStar; }
71inline Double_t AliFemtoModelWeightGenerator::GetKStarOut() { return fKStarOut; }
72inline Double_t AliFemtoModelWeightGenerator::GetKStarSide() { return fKStarSide; }
73inline Double_t AliFemtoModelWeightGenerator::GetKStarLong() { return fKStarLong; }
74inline Double_t AliFemtoModelWeightGenerator::GetRStar() { return fRStar; }
75inline Double_t AliFemtoModelWeightGenerator::GetRStarOut() { return fRStarOut; }
76inline Double_t AliFemtoModelWeightGenerator::GetRStarSide() { return fRStarSide; }
77inline Double_t AliFemtoModelWeightGenerator::GetRStarLong() { return fRStarLong; }
78
79
80#endif
81
82