Initial check-in of the model classes
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Model / 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 "AliFemtoModelWeightGenerator.h"
13 #include "AliFemtoModelHiddenInfo.h"
14
15 const Int_t AliFemtoModelWeightGenerator::kPionPlusPionPlus = 1;
16 const Int_t AliFemtoModelWeightGenerator::kPionPlusPionMinus = 2;
17 const Int_t AliFemtoModelWeightGenerator::kKaonPlusKaonPlus = 3;
18 const Int_t AliFemtoModelWeightGenerator::kKaonPlusKaonMinus = 4;
19 const Int_t AliFemtoModelWeightGenerator::kProtonProton = 5;
20 const Int_t AliFemtoModelWeightGenerator::kProtonAntiproton = 6;
21 const Int_t AliFemtoModelWeightGenerator::kPionPlusKaonPlus = 7;
22 const Int_t AliFemtoModelWeightGenerator::kPionPlusKaonMinus = 8;
23 const Int_t AliFemtoModelWeightGenerator::kPionPlusProton = 9;
24 const Int_t AliFemtoModelWeightGenerator::kPionPlusAntiproton = 10;
25 const Int_t AliFemtoModelWeightGenerator::kKaonPlusProton = 11;
26 const Int_t AliFemtoModelWeightGenerator::kKaonPlusAntiproton = 12;
27
28 //_____________________________________________
29 AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator() :
30   fPairType(0), 
31   fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0), 
32   fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
33 {}
34 //_____________________________________________
35 AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator(const AliFemtoModelWeightGenerator &aModel) :
36   fPairType(0), 
37   fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0), 
38   fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
39 {
40   fPairType = aModel.fPairType;
41 }
42 //_____________________________________________
43 AliFemtoModelWeightGenerator::~AliFemtoModelWeightGenerator(){/* no-op */}
44 //_____________________________________________
45 void     AliFemtoModelWeightGenerator::SetPairType(Int_t aPairType)
46 {
47   fPairType = aPairType;
48 }
49
50 //_____________________________________________
51 Int_t    AliFemtoModelWeightGenerator::GetPairType()
52 {
53   return fPairType;
54 }
55
56 //_____________________________________________
57 void     AliFemtoModelWeightGenerator::SetPairTypeFromPair(AliFemtoPair *aPair)
58 {
59   AliFemtoModelHiddenInfo *inf1 = ( AliFemtoModelHiddenInfo *) aPair->track1()->HiddenInfo();
60   AliFemtoModelHiddenInfo *inf2 = ( AliFemtoModelHiddenInfo *) aPair->track2()->HiddenInfo();
61
62   const Int_t tPid1 = inf1->GetPDGPid();
63   const Int_t tPid2 = inf2->GetPDGPid();
64
65   if      (((tPid1 ==   211) && (tPid2 ==   211)) ||
66            ((tPid1 ==  -211) && (tPid2 ==  -211)))
67     fPairType = kPionPlusPionPlus;
68   else if (((tPid1 ==  -211) && (tPid2 ==   211)) ||
69            ((tPid1 ==   211) && (tPid2 ==  -211)))
70     fPairType = kPionPlusPionMinus;
71   else if (((tPid1 ==   321) && (tPid2 ==   321)) ||
72            ((tPid1 ==  -321) && (tPid2 ==  -321)))
73     fPairType = kKaonPlusKaonPlus;
74   else if (((tPid1 ==  -321) && (tPid2 ==   321)) ||
75            ((tPid1 ==   321) && (tPid2 ==  -321)))
76     fPairType = kKaonPlusKaonMinus;
77   else if (((tPid1 ==  2212) && (tPid2 ==  2212)) ||
78            ((tPid1 == -2212) && (tPid2 == -2212)))
79     fPairType = kProtonProton;
80   else if (((tPid1 == -2212) && (tPid2 ==  2212)) ||
81            ((tPid1 ==  2212) && (tPid2 == -2212)))
82     fPairType = kProtonAntiproton;
83   else if (((tPid1 ==   211) && (tPid2 ==   321)) ||
84            ((tPid1 ==  -211) && (tPid2 ==  -321)))
85     fPairType = kPionPlusKaonPlus;
86   else if (((tPid1 ==  -211) && (tPid2 ==   321)) ||
87            ((tPid1 ==   211) && (tPid2 ==  -321)))
88     fPairType = kPionPlusKaonMinus;
89   else if (((tPid1 ==   211) && (tPid2 ==  2212)) ||
90            ((tPid1 ==  -211) && (tPid2 == -2212)))
91     fPairType = kPionPlusProton;
92   else if (((tPid1 ==  -211) && (tPid2 ==  2212)) ||
93            ((tPid1 ==   211) && (tPid2 == -2212)))
94     fPairType = kPionPlusAntiproton;
95   else if (((tPid1 ==   321) && (tPid2 ==  2212)) ||
96            ((tPid1 ==  -321) && (tPid2 == -2212)))
97     fPairType = kKaonPlusProton;
98   else if (((tPid1 ==  -321) && (tPid2 ==  2212)) ||
99            ((tPid1 ==   321) && (tPid2 == -2212)))
100     fPairType = kKaonPlusAntiproton;
101 }
102
103 //_____________________________________________
104 AliFemtoModelWeightGenerator* AliFemtoModelWeightGenerator::Clone() const
105 {
106   return 0;
107 }