1 ////////////////////////////////////////////////////////////////////////////////
3 /// AliFemtoModelWeightGenerator - abstract base class for femtoscopic ///
4 /// weight generator ///
5 /// Authors: Adam Kisiel kisiel@mps.ohio-state.edu ///
7 ////////////////////////////////////////////////////////////////////////////////
9 ClassImp(AliFemtoModelGausLCMSFreezeOutGenerator, 1)
12 #include "AliFemtoPair.h"
14 #include "AliFemtoModelWeightGenerator.h"
15 #include "AliFemtoModelHiddenInfo.h"
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;
31 //_____________________________________________
32 AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator() :
34 fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0),
35 fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
37 //_____________________________________________
38 AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator(const AliFemtoModelWeightGenerator &aModel) :
40 fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0),
41 fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
43 fPairType = aModel.fPairType;
45 //_____________________________________________
46 AliFemtoModelWeightGenerator::~AliFemtoModelWeightGenerator(){/* no-op */}
47 //_____________________________________________
48 AliFemtoModelWeightGenerator& AliFemtoModelWeightGenerator::operator=(const AliFemtoModelWeightGenerator &aModel)
50 if (this != &aModel) {
51 fPairType = aModel.fPairType;
56 //_____________________________________________
57 void AliFemtoModelWeightGenerator::SetPairType(Int_t aPairType)
59 fPairType = aPairType;
62 //_____________________________________________
63 Int_t AliFemtoModelWeightGenerator::GetPairType() const
68 //_____________________________________________
69 void AliFemtoModelWeightGenerator::SetPairTypeFromPair(AliFemtoPair *aPair)
71 fPairType = GetPairTypeFromPair(aPair);
73 //_____________________________________________
74 Int_t AliFemtoModelWeightGenerator::GetPairTypeFromPair(AliFemtoPair *aPair)
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();
80 Int_t tPairType = fgkPairTypeNone;
82 const Int_t ktPid1 = inf1->GetPDGPid();
83 const Int_t ktPid2 = inf2->GetPDGPid();
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;
125 //_____________________________________________
126 AliFemtoModelWeightGenerator* AliFemtoModelWeightGenerator::Clone() const