#ifdef __ROOT__
ClassImp(AliFemtoModelWeightGeneratorBasic, 1)
#endif
#include "AliFemtoModelWeightGeneratorBasic.h"
#include "AliFemtoModelHiddenInfo.h"
AliFemtoModelWeightGeneratorBasic::AliFemtoModelWeightGeneratorBasic():
AliFemtoModelWeightGenerator()
{
}
AliFemtoModelWeightGeneratorBasic::AliFemtoModelWeightGeneratorBasic(const AliFemtoModelWeightGeneratorBasic &aModel) :
AliFemtoModelWeightGenerator(aModel)
{
}
AliFemtoModelWeightGeneratorBasic::~AliFemtoModelWeightGeneratorBasic()
{
}
AliFemtoModelWeightGeneratorBasic& AliFemtoModelWeightGeneratorBasic::operator=(const AliFemtoModelWeightGeneratorBasic &aModel)
{
if (this != &aModel) {
AliFemtoModelWeightGenerator::operator=(aModel);
}
return *this;
}
Double_t AliFemtoModelWeightGeneratorBasic::GenerateWeight(AliFemtoPair *aPair)
{
AliFemtoTrack *inf1 = (AliFemtoTrack *) aPair->Track1()->Track();
AliFemtoTrack *inf2 = (AliFemtoTrack *) aPair->Track2()->Track();
Double_t tPx = inf1->GetTrueMomentum()->x()+inf2->GetTrueMomentum()->x();
Double_t tPy = inf1->GetTrueMomentum()->y()+inf2->GetTrueMomentum()->y();
Double_t tPz = inf1->GetTrueMomentum()->z()+inf2->GetTrueMomentum()->z();
Double_t tM1 = inf1->GetMass();
Double_t tM2 = inf2->GetMass();
Double_t tE1 = sqrt(tM1*tM1 + inf1->GetTrueMomentum()->Mag2());
Double_t tE2 = sqrt(tM2*tM2 + inf2->GetTrueMomentum()->Mag2());
Double_t tE = tE1 + tE2;
Double_t tPt = tPx*tPx + tPy*tPy;
Double_t tMt = tE*tE - tPz*tPz;
Double_t tM = sqrt(tMt - tPt);
tMt = sqrt(tMt);
tPt = sqrt(tPt);
Double_t tBetat = tPt/tMt;
Double_t tBeta = tPz/tE;
Double_t tGamma = tE/tMt;
fKStarLong = tGamma * (inf1->GetTrueMomentum()->z() - tBeta * tE1);
Double_t tE1L = tGamma * (tE1 - tBeta * inf1->GetTrueMomentum()->z());
fKStarOut = ( inf1->GetTrueMomentum()->x()*tPx + inf1->GetTrueMomentum()->y()*tPy)/tPt;
fKStarSide = (-inf1->GetTrueMomentum()->x()*tPy + inf1->GetTrueMomentum()->y()*tPx)/tPt;
fKStarOut = tMt/tM * (fKStarOut - tPt/tMt * tE1L);
tBetat = tPt/tMt;
Double_t tDX = inf1->GetEmissionPoint()->x()-inf2->GetEmissionPoint()->x();
Double_t tDY = inf1->GetEmissionPoint()->y()-inf2->GetEmissionPoint()->y();
Double_t tRLong = inf1->GetEmissionPoint()->z()-inf2->GetEmissionPoint()->z();
Double_t tDTime = inf1->GetEmissionPoint()->t()-inf2->GetEmissionPoint()->t();
Double_t tROut = (tDX*tPx + tDY*tPy)/tPt;
Double_t tRSide = (-tDX*tPy + tDY*tPx)/tPt;
fRStarSide = tRSide;
Double_t tRSS = fRStarSide/0.197327;
fRStarLong = tGamma*(tRLong - tBeta* tDTime);
Double_t tDTimePairLCMS = tGamma*(tDTime - tBeta* tRLong);
Double_t tRLS = fRStarLong/0.197327;
tBeta = tPt/tMt;
tGamma = tMt/tM;
fRStarOut = tGamma*(tROut - tBeta* tDTimePairLCMS);
Double_t tROS = fRStarOut/0.197327;
fRStar = ::sqrt(fRStarOut*fRStarOut + fRStarSide*fRStarSide +
fRStarLong*fRStarLong);
fKStar = ::sqrt(fKStarOut*fKStarOut + fKStarSide*fKStarSide + fKStarLong*fKStarLong);
if (fPairType != fgkPairTypeNone) {
if ((fPairType == PionPlusPionPlus()) || (fPairType == KaonPlusKaonPlus()))
return 1.0 + cos (2*(fKStarOut * tROS + fKStarSide * tRSS + fKStarLong * tRLS));
else if (fPairType == ProtonProton())
return 1.0 - 0.5 * cos (2*(fKStarOut * tROS + fKStarSide * tRSS + fKStarLong * tRLS));
else
return 1.0;
}
else {
Int_t tPairType = GetPairTypeFromPair(aPair);
if ((tPairType == PionPlusPionPlus()) || (tPairType == KaonPlusKaonPlus()))
return 1.0 + cos (2*(fKStarOut * tROS + fKStarSide * tRSS + fKStarLong * tRLS));
else if (tPairType == ProtonProton())
return 1.0 - 0.5 * cos (2*(fKStarOut * tROS + fKStarSide * tRSS + fKStarLong * tRLS));
else
return 1.0;
}
}
void AliFemtoModelWeightGeneratorBasic::SetPairType(Int_t aPairType)
{
AliFemtoModelWeightGenerator::SetPairType(aPairType);
}
void AliFemtoModelWeightGeneratorBasic::SetPairTypeFromPair(AliFemtoPair *aPair)
{
AliFemtoModelWeightGenerator::SetPairTypeFromPair(aPair);
}
Int_t AliFemtoModelWeightGeneratorBasic::GetPairType() const
{
return AliFemtoModelWeightGenerator::GetPairType();
}
AliFemtoModelWeightGenerator* AliFemtoModelWeightGeneratorBasic::Clone() const
{
return GetGenerator();
}
AliFemtoModelWeightGenerator* AliFemtoModelWeightGeneratorBasic::GetGenerator() const
{
AliFemtoModelWeightGeneratorBasic *tGen = new AliFemtoModelWeightGeneratorBasic(*this);
return tGen;
}
AliFemtoModelWeightGeneratorBasic.cxx:1 AliFemtoModelWeightGeneratorBasic.cxx:2 AliFemtoModelWeightGeneratorBasic.cxx:3 AliFemtoModelWeightGeneratorBasic.cxx:4 AliFemtoModelWeightGeneratorBasic.cxx:5 AliFemtoModelWeightGeneratorBasic.cxx:6 AliFemtoModelWeightGeneratorBasic.cxx:7 AliFemtoModelWeightGeneratorBasic.cxx:8 AliFemtoModelWeightGeneratorBasic.cxx:9 AliFemtoModelWeightGeneratorBasic.cxx:10 AliFemtoModelWeightGeneratorBasic.cxx:11 AliFemtoModelWeightGeneratorBasic.cxx:12 AliFemtoModelWeightGeneratorBasic.cxx:13 AliFemtoModelWeightGeneratorBasic.cxx:14 AliFemtoModelWeightGeneratorBasic.cxx:15 AliFemtoModelWeightGeneratorBasic.cxx:16 AliFemtoModelWeightGeneratorBasic.cxx:17 AliFemtoModelWeightGeneratorBasic.cxx:18 AliFemtoModelWeightGeneratorBasic.cxx:19 AliFemtoModelWeightGeneratorBasic.cxx:20 AliFemtoModelWeightGeneratorBasic.cxx:21 AliFemtoModelWeightGeneratorBasic.cxx:22 AliFemtoModelWeightGeneratorBasic.cxx:23 AliFemtoModelWeightGeneratorBasic.cxx:24 AliFemtoModelWeightGeneratorBasic.cxx:25 AliFemtoModelWeightGeneratorBasic.cxx:26 AliFemtoModelWeightGeneratorBasic.cxx:27 AliFemtoModelWeightGeneratorBasic.cxx:28 AliFemtoModelWeightGeneratorBasic.cxx:29 AliFemtoModelWeightGeneratorBasic.cxx:30 AliFemtoModelWeightGeneratorBasic.cxx:31 AliFemtoModelWeightGeneratorBasic.cxx:32 AliFemtoModelWeightGeneratorBasic.cxx:33 AliFemtoModelWeightGeneratorBasic.cxx:34 AliFemtoModelWeightGeneratorBasic.cxx:35 AliFemtoModelWeightGeneratorBasic.cxx:36 AliFemtoModelWeightGeneratorBasic.cxx:37 AliFemtoModelWeightGeneratorBasic.cxx:38 AliFemtoModelWeightGeneratorBasic.cxx:39 AliFemtoModelWeightGeneratorBasic.cxx:40 AliFemtoModelWeightGeneratorBasic.cxx:41 AliFemtoModelWeightGeneratorBasic.cxx:42 AliFemtoModelWeightGeneratorBasic.cxx:43 AliFemtoModelWeightGeneratorBasic.cxx:44 AliFemtoModelWeightGeneratorBasic.cxx:45 AliFemtoModelWeightGeneratorBasic.cxx:46 AliFemtoModelWeightGeneratorBasic.cxx:47 AliFemtoModelWeightGeneratorBasic.cxx:48 AliFemtoModelWeightGeneratorBasic.cxx:49 AliFemtoModelWeightGeneratorBasic.cxx:50 AliFemtoModelWeightGeneratorBasic.cxx:51 AliFemtoModelWeightGeneratorBasic.cxx:52 AliFemtoModelWeightGeneratorBasic.cxx:53 AliFemtoModelWeightGeneratorBasic.cxx:54 AliFemtoModelWeightGeneratorBasic.cxx:55 AliFemtoModelWeightGeneratorBasic.cxx:56 AliFemtoModelWeightGeneratorBasic.cxx:57 AliFemtoModelWeightGeneratorBasic.cxx:58 AliFemtoModelWeightGeneratorBasic.cxx:59 AliFemtoModelWeightGeneratorBasic.cxx:60 AliFemtoModelWeightGeneratorBasic.cxx:61 AliFemtoModelWeightGeneratorBasic.cxx:62 AliFemtoModelWeightGeneratorBasic.cxx:63 AliFemtoModelWeightGeneratorBasic.cxx:64 AliFemtoModelWeightGeneratorBasic.cxx:65 AliFemtoModelWeightGeneratorBasic.cxx:66 AliFemtoModelWeightGeneratorBasic.cxx:67 AliFemtoModelWeightGeneratorBasic.cxx:68 AliFemtoModelWeightGeneratorBasic.cxx:69 AliFemtoModelWeightGeneratorBasic.cxx:70 AliFemtoModelWeightGeneratorBasic.cxx:71 AliFemtoModelWeightGeneratorBasic.cxx:72 AliFemtoModelWeightGeneratorBasic.cxx:73 AliFemtoModelWeightGeneratorBasic.cxx:74 AliFemtoModelWeightGeneratorBasic.cxx:75 AliFemtoModelWeightGeneratorBasic.cxx:76 AliFemtoModelWeightGeneratorBasic.cxx:77 AliFemtoModelWeightGeneratorBasic.cxx:78 AliFemtoModelWeightGeneratorBasic.cxx:79 AliFemtoModelWeightGeneratorBasic.cxx:80 AliFemtoModelWeightGeneratorBasic.cxx:81 AliFemtoModelWeightGeneratorBasic.cxx:82 AliFemtoModelWeightGeneratorBasic.cxx:83 AliFemtoModelWeightGeneratorBasic.cxx:84 AliFemtoModelWeightGeneratorBasic.cxx:85 AliFemtoModelWeightGeneratorBasic.cxx:86 AliFemtoModelWeightGeneratorBasic.cxx:87 AliFemtoModelWeightGeneratorBasic.cxx:88 AliFemtoModelWeightGeneratorBasic.cxx:89 AliFemtoModelWeightGeneratorBasic.cxx:90 AliFemtoModelWeightGeneratorBasic.cxx:91 AliFemtoModelWeightGeneratorBasic.cxx:92 AliFemtoModelWeightGeneratorBasic.cxx:93 AliFemtoModelWeightGeneratorBasic.cxx:94 AliFemtoModelWeightGeneratorBasic.cxx:95 AliFemtoModelWeightGeneratorBasic.cxx:96 AliFemtoModelWeightGeneratorBasic.cxx:97 AliFemtoModelWeightGeneratorBasic.cxx:98 AliFemtoModelWeightGeneratorBasic.cxx:99 AliFemtoModelWeightGeneratorBasic.cxx:100 AliFemtoModelWeightGeneratorBasic.cxx:101 AliFemtoModelWeightGeneratorBasic.cxx:102 AliFemtoModelWeightGeneratorBasic.cxx:103 AliFemtoModelWeightGeneratorBasic.cxx:104 AliFemtoModelWeightGeneratorBasic.cxx:105 AliFemtoModelWeightGeneratorBasic.cxx:106 AliFemtoModelWeightGeneratorBasic.cxx:107 AliFemtoModelWeightGeneratorBasic.cxx:108 AliFemtoModelWeightGeneratorBasic.cxx:109 AliFemtoModelWeightGeneratorBasic.cxx:110 AliFemtoModelWeightGeneratorBasic.cxx:111 AliFemtoModelWeightGeneratorBasic.cxx:112 AliFemtoModelWeightGeneratorBasic.cxx:113 AliFemtoModelWeightGeneratorBasic.cxx:114 AliFemtoModelWeightGeneratorBasic.cxx:115 AliFemtoModelWeightGeneratorBasic.cxx:116 AliFemtoModelWeightGeneratorBasic.cxx:117 AliFemtoModelWeightGeneratorBasic.cxx:118 AliFemtoModelWeightGeneratorBasic.cxx:119 AliFemtoModelWeightGeneratorBasic.cxx:120 AliFemtoModelWeightGeneratorBasic.cxx:121 AliFemtoModelWeightGeneratorBasic.cxx:122 AliFemtoModelWeightGeneratorBasic.cxx:123 AliFemtoModelWeightGeneratorBasic.cxx:124 AliFemtoModelWeightGeneratorBasic.cxx:125 AliFemtoModelWeightGeneratorBasic.cxx:126 AliFemtoModelWeightGeneratorBasic.cxx:127 AliFemtoModelWeightGeneratorBasic.cxx:128 AliFemtoModelWeightGeneratorBasic.cxx:129 AliFemtoModelWeightGeneratorBasic.cxx:130 AliFemtoModelWeightGeneratorBasic.cxx:131 AliFemtoModelWeightGeneratorBasic.cxx:132 AliFemtoModelWeightGeneratorBasic.cxx:133 AliFemtoModelWeightGeneratorBasic.cxx:134 AliFemtoModelWeightGeneratorBasic.cxx:135 AliFemtoModelWeightGeneratorBasic.cxx:136 AliFemtoModelWeightGeneratorBasic.cxx:137 AliFemtoModelWeightGeneratorBasic.cxx:138 AliFemtoModelWeightGeneratorBasic.cxx:139 AliFemtoModelWeightGeneratorBasic.cxx:140 AliFemtoModelWeightGeneratorBasic.cxx:141 AliFemtoModelWeightGeneratorBasic.cxx:142 AliFemtoModelWeightGeneratorBasic.cxx:143 AliFemtoModelWeightGeneratorBasic.cxx:144 AliFemtoModelWeightGeneratorBasic.cxx:145 AliFemtoModelWeightGeneratorBasic.cxx:146 AliFemtoModelWeightGeneratorBasic.cxx:147 AliFemtoModelWeightGeneratorBasic.cxx:148 AliFemtoModelWeightGeneratorBasic.cxx:149 AliFemtoModelWeightGeneratorBasic.cxx:150 AliFemtoModelWeightGeneratorBasic.cxx:151 AliFemtoModelWeightGeneratorBasic.cxx:152 AliFemtoModelWeightGeneratorBasic.cxx:153 AliFemtoModelWeightGeneratorBasic.cxx:154 AliFemtoModelWeightGeneratorBasic.cxx:155 AliFemtoModelWeightGeneratorBasic.cxx:156 AliFemtoModelWeightGeneratorBasic.cxx:157 AliFemtoModelWeightGeneratorBasic.cxx:158 AliFemtoModelWeightGeneratorBasic.cxx:159 AliFemtoModelWeightGeneratorBasic.cxx:160 AliFemtoModelWeightGeneratorBasic.cxx:161 AliFemtoModelWeightGeneratorBasic.cxx:162 AliFemtoModelWeightGeneratorBasic.cxx:163 AliFemtoModelWeightGeneratorBasic.cxx:164 AliFemtoModelWeightGeneratorBasic.cxx:165 AliFemtoModelWeightGeneratorBasic.cxx:166 AliFemtoModelWeightGeneratorBasic.cxx:167 AliFemtoModelWeightGeneratorBasic.cxx:168 AliFemtoModelWeightGeneratorBasic.cxx:169 AliFemtoModelWeightGeneratorBasic.cxx:170 AliFemtoModelWeightGeneratorBasic.cxx:171 AliFemtoModelWeightGeneratorBasic.cxx:172 AliFemtoModelWeightGeneratorBasic.cxx:173 AliFemtoModelWeightGeneratorBasic.cxx:174 AliFemtoModelWeightGeneratorBasic.cxx:175 AliFemtoModelWeightGeneratorBasic.cxx:176 AliFemtoModelWeightGeneratorBasic.cxx:177 AliFemtoModelWeightGeneratorBasic.cxx:178 AliFemtoModelWeightGeneratorBasic.cxx:179 AliFemtoModelWeightGeneratorBasic.cxx:180 AliFemtoModelWeightGeneratorBasic.cxx:181 AliFemtoModelWeightGeneratorBasic.cxx:182 AliFemtoModelWeightGeneratorBasic.cxx:183 AliFemtoModelWeightGeneratorBasic.cxx:184 AliFemtoModelWeightGeneratorBasic.cxx:185 AliFemtoModelWeightGeneratorBasic.cxx:186 AliFemtoModelWeightGeneratorBasic.cxx:187 AliFemtoModelWeightGeneratorBasic.cxx:188 AliFemtoModelWeightGeneratorBasic.cxx:189 AliFemtoModelWeightGeneratorBasic.cxx:190 AliFemtoModelWeightGeneratorBasic.cxx:191 AliFemtoModelWeightGeneratorBasic.cxx:192 AliFemtoModelWeightGeneratorBasic.cxx:193 AliFemtoModelWeightGeneratorBasic.cxx:194 AliFemtoModelWeightGeneratorBasic.cxx:195 AliFemtoModelWeightGeneratorBasic.cxx:196 AliFemtoModelWeightGeneratorBasic.cxx:197 AliFemtoModelWeightGeneratorBasic.cxx:198 AliFemtoModelWeightGeneratorBasic.cxx:199 AliFemtoModelWeightGeneratorBasic.cxx:200 AliFemtoModelWeightGeneratorBasic.cxx:201 AliFemtoModelWeightGeneratorBasic.cxx:202