]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoModelWeightGenerator.cxx
Migration of PWG2/FEMTOSCOPY to PWGCF/FEMTOSCOPY
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoModelWeightGenerator.cxx
1 ////////////////////////////////////////////////////////////////////////////////
2 ///                                                                          ///
3 /// AliFemtoModelWeightGenerator - abstract base class for femtoscopic       ///
4 /// weight generator                                                         ///
5 /// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                           ///
6 ///                                                                          ///
7 ////////////////////////////////////////////////////////////////////////////////
8 #ifdef __ROOT__
9   ClassImp(AliFemtoModelGausLCMSFreezeOutGenerator, 1)
10 #endif
11
12 #include "AliFemtoPair.h"
13
14 #include "AliFemtoModelWeightGenerator.h"
15 #include "AliFemtoModelHiddenInfo.h"
16
17 const Int_t AliFemtoModelWeightGenerator::fgkPairTypeNone = 0;
18 const Int_t AliFemtoModelWeightGenerator::fgkPionPlusPionPlus = 1;
19 const Int_t AliFemtoModelWeightGenerator::fgkPionPlusPionMinus = 2;
20 const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusKaonPlus = 3;
21 const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusKaonMinus = 4;
22 const Int_t AliFemtoModelWeightGenerator::fgkProtonProton = 5;
23 const Int_t AliFemtoModelWeightGenerator::fgkProtonAntiproton = 6;
24 const Int_t AliFemtoModelWeightGenerator::fgkPionPlusKaonPlus = 7;
25 const Int_t AliFemtoModelWeightGenerator::fgkPionPlusKaonMinus = 8;
26 const Int_t AliFemtoModelWeightGenerator::fgkPionPlusProton = 9;
27 const Int_t AliFemtoModelWeightGenerator::fgkPionPlusAntiproton = 10;
28 const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusProton = 11;
29 const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusAntiproton = 12;
30
31 //_____________________________________________
32 AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator() :
33   fPairType(0), 
34   fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0), 
35   fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
36 {}
37 //_____________________________________________
38 AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator(const AliFemtoModelWeightGenerator &aModel) :
39   fPairType(0), 
40   fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0), 
41   fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
42 {
43   fPairType = aModel.fPairType;
44 }
45 //_____________________________________________
46 AliFemtoModelWeightGenerator::~AliFemtoModelWeightGenerator(){/* no-op */}
47 //_____________________________________________
48 AliFemtoModelWeightGenerator& AliFemtoModelWeightGenerator::operator=(const AliFemtoModelWeightGenerator &aModel)
49 {
50   if (this != &aModel) {
51     fPairType = aModel.fPairType;
52   }
53
54   return *this;
55 }
56 //_____________________________________________
57 void     AliFemtoModelWeightGenerator::SetPairType(Int_t aPairType)
58 {
59   fPairType = aPairType;
60 }
61
62 //_____________________________________________
63 Int_t    AliFemtoModelWeightGenerator::GetPairType() const
64 {
65   return fPairType;
66 }
67
68 //_____________________________________________
69 void     AliFemtoModelWeightGenerator::SetPairTypeFromPair(AliFemtoPair *aPair)
70 {
71   fPairType = GetPairTypeFromPair(aPair);
72 }
73 //_____________________________________________
74 Int_t    AliFemtoModelWeightGenerator::GetPairTypeFromPair(AliFemtoPair *aPair)
75 {
76   // Get the type of pair from PID of particles in the pair
77   AliFemtoModelHiddenInfo *inf1 = ( AliFemtoModelHiddenInfo *) aPair->Track1()->HiddenInfo();
78   AliFemtoModelHiddenInfo *inf2 = ( AliFemtoModelHiddenInfo *) aPair->Track2()->HiddenInfo();
79
80   Int_t tPairType = fgkPairTypeNone;
81
82   const Int_t ktPid1 = inf1->GetPDGPid();
83   const Int_t ktPid2 = inf2->GetPDGPid();
84
85   if      (((ktPid1 ==   211) && (ktPid2 ==   211)) ||
86            ((ktPid1 ==  -211) && (ktPid2 ==  -211)))
87     tPairType = fgkPionPlusPionPlus;
88   else if (((ktPid1 ==  -211) && (ktPid2 ==   211)) ||
89            ((ktPid1 ==   211) && (ktPid2 ==  -211)))
90     tPairType = fgkPionPlusPionMinus;
91   else if (((ktPid1 ==   321) && (ktPid2 ==   321)) ||
92            ((ktPid1 ==  -321) && (ktPid2 ==  -321)))
93     tPairType = fgkKaonPlusKaonPlus;
94   else if (((ktPid1 ==  -321) && (ktPid2 ==   321)) ||
95            ((ktPid1 ==   321) && (ktPid2 ==  -321)))
96     tPairType = fgkKaonPlusKaonMinus;
97   else if (((ktPid1 ==  2212) && (ktPid2 ==  2212)) ||
98            ((ktPid1 == -2212) && (ktPid2 == -2212)))
99     tPairType = fgkProtonProton;
100   else if (((ktPid1 == -2212) && (ktPid2 ==  2212)) ||
101            ((ktPid1 ==  2212) && (ktPid2 == -2212)))
102     tPairType = fgkProtonAntiproton;
103   else if (((ktPid1 ==   211) && (ktPid2 ==   321)) ||
104            ((ktPid1 ==  -211) && (ktPid2 ==  -321)))
105     tPairType = fgkPionPlusKaonPlus;
106   else if (((ktPid1 ==  -211) && (ktPid2 ==   321)) ||
107            ((ktPid1 ==   211) && (ktPid2 ==  -321)))
108     tPairType = fgkPionPlusKaonMinus;
109   else if (((ktPid1 ==   211) && (ktPid2 ==  2212)) ||
110            ((ktPid1 ==  -211) && (ktPid2 == -2212)))
111     tPairType = fgkPionPlusProton;
112   else if (((ktPid1 ==  -211) && (ktPid2 ==  2212)) ||
113            ((ktPid1 ==   211) && (ktPid2 == -2212)))
114     tPairType = fgkPionPlusAntiproton;
115   else if (((ktPid1 ==   321) && (ktPid2 ==  2212)) ||
116            ((ktPid1 ==  -321) && (ktPid2 == -2212)))
117     tPairType = fgkKaonPlusProton;
118   else if (((ktPid1 ==  -321) && (ktPid2 ==  2212)) ||
119            ((ktPid1 ==   321) && (ktPid2 == -2212)))
120     tPairType = fgkKaonPlusAntiproton;
121
122   return tPairType;
123 }
124
125 //_____________________________________________
126 AliFemtoModelWeightGenerator* AliFemtoModelWeightGenerator::Clone() const
127 {
128   return 0;
129 }