#ifdef __ROOT__
ClassImp(AliFemtoModelGausRinvFreezeOutGenerator, 1)
#endif
#include "math.h"
#include "AliFemtoModelGausRinvFreezeOutGenerator.h"
#include "AliFemtoModelHiddenInfo.h"
#include "AliFemtoModelGlobalHiddenInfo.h"
#include "AliFemtoLorentzVector.h"
#include "AliFemtoTrack.h"
AliFemtoModelGausRinvFreezeOutGenerator::AliFemtoModelGausRinvFreezeOutGenerator() :
fSizeInv(0),
fSelectPrimary(false)
{
fRandom = new TRandom2();
}
AliFemtoModelGausRinvFreezeOutGenerator::AliFemtoModelGausRinvFreezeOutGenerator(const AliFemtoModelGausRinvFreezeOutGenerator &aModel):
AliFemtoModelFreezeOutGenerator(),
fSizeInv(0),
fSelectPrimary(false)
{
fRandom = new TRandom2();
SetSizeInv(aModel.GetSizeInv());
}
AliFemtoModelGausRinvFreezeOutGenerator::~AliFemtoModelGausRinvFreezeOutGenerator()
{
if (fRandom) delete fRandom;
}
AliFemtoModelGausRinvFreezeOutGenerator& AliFemtoModelGausRinvFreezeOutGenerator::operator=(const AliFemtoModelGausRinvFreezeOutGenerator &aModel)
{
if (this != &aModel) {
fRandom = new TRandom2();
SetSizeInv(aModel.GetSizeInv());
}
return *this;
}
void AliFemtoModelGausRinvFreezeOutGenerator::GenerateFreezeOut(AliFemtoPair *aPair)
{
AliFemtoTrack *inf1 = (AliFemtoTrack *) aPair->Track1()->Track();
AliFemtoTrack *inf2 = (AliFemtoTrack *) aPair->Track2()->Track();
if ((!inf1) || (!inf2)) { cout << "Hidden info not created! " << endl; exit(kFALSE); }
if (fSelectPrimary) {
const AliFemtoTrack *infg1 = dynamic_cast<const AliFemtoTrack *>(aPair->Track1()->Track());
const AliFemtoTrack *infg2 = dynamic_cast<const AliFemtoTrack *>(aPair->Track2()->Track());
if ((infg1) && (infg2)) {
Double_t dist1 = infg1->GetGlobalEmissionPoint()->Perp();
Double_t dist2 = infg2->GetGlobalEmissionPoint()->Perp();
if ((dist1 > 0.05) && (dist2 > 0.05)) {
if (!(inf1->GetEmissionPoint())) {
AliFemtoLorentzVector tPos(-1000,1000,-500,0);
inf1->SetEmissionPoint(&tPos);
}
else
inf1->SetEmissionPoint(-1000,1000,-500,0);
if (!(inf2->GetEmissionPoint())) {
AliFemtoLorentzVector tPos(fRandom->Gaus(0,1000.0),fRandom->Gaus(0,1000),fRandom->Gaus(0,1000),0.0);
inf2->SetEmissionPoint(&tPos);
}
else
inf2->SetEmissionPoint(fRandom->Gaus(0,1000), fRandom->Gaus(0,1000), fRandom->Gaus(0,1000), 0.0);
return;
}
}
}
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 tEs = tE1 + tE2;
Double_t tPt = sqrt(tPx*tPx + tPy*tPy);
Double_t tMt = sqrt(tEs*tEs - tPz*tPz);
Double_t tROutS = fRandom->Gaus(0,fSizeInv);
Double_t tRSideS = fRandom->Gaus(0,fSizeInv);
Double_t tRLongS = fRandom->Gaus(0,fSizeInv);
Double_t tRTimeS = 0;
Double_t tBetat = tPt/tMt;
Double_t tGammat = 1.0/sqrt(1.0-tBetat*tBetat);
Double_t tBetaz = tPz/tEs;
Double_t tGammaz = 1.0/sqrt(1.0-tBetaz*tBetaz);
Double_t tROut = tGammat * (tROutS + tBetat * tRTimeS);
Double_t tDtL = tGammat * (tRTimeS + tBetat * tROutS);
Double_t tRSide = tRSideS;
Double_t tRLong = tGammaz * (tRLongS + tBetaz * tDtL);
Double_t tDt = tGammaz * (tDtL + tBetaz * tRLongS);
tPx /= tPt;
tPy /= tPt;
Double_t tXout = tROut*tPx-tRSide*tPy;
Double_t tXside = tROut*tPy+tRSide*tPx;
Double_t tXlong = tRLong;
Double_t tXtime = tDt;
if (!(inf1->GetEmissionPoint())) {
AliFemtoLorentzVector tPos(0,0,0,0);
inf1->SetEmissionPoint(&tPos);
}
else
inf1->SetEmissionPoint(0,0,0,0);
if (!(inf2->GetEmissionPoint())) {
AliFemtoLorentzVector tPos(tXout,tXside,tXlong,tXtime);
inf2->SetEmissionPoint(&tPos);
}
else
inf2->SetEmissionPoint(tXout, tXside, tXlong, tXtime);
}
void AliFemtoModelGausRinvFreezeOutGenerator::SetSizeInv(Double_t aSizeInv)
{
fSizeInv = aSizeInv;
}
Double_t AliFemtoModelGausRinvFreezeOutGenerator::GetSizeInv() const
{
return fSizeInv;
}
AliFemtoModelFreezeOutGenerator* AliFemtoModelGausRinvFreezeOutGenerator::Clone() const
{
return GetGenerator();
}
inline AliFemtoModelFreezeOutGenerator* AliFemtoModelGausRinvFreezeOutGenerator::GetGenerator() const
{
AliFemtoModelFreezeOutGenerator* tModel = new AliFemtoModelGausRinvFreezeOutGenerator(*this);
return tModel;
}
void AliFemtoModelGausRinvFreezeOutGenerator::SetSelectPrimaryFromHidden(bool aUse)
{
fSelectPrimary = aUse;
}
Bool_t AliFemtoModelGausRinvFreezeOutGenerator::GetSelectPrimaryFromHidden()
{
return fSelectPrimary;
}
AliFemtoModelGausRinvFreezeOutGenerator.cxx:1 AliFemtoModelGausRinvFreezeOutGenerator.cxx:2 AliFemtoModelGausRinvFreezeOutGenerator.cxx:3 AliFemtoModelGausRinvFreezeOutGenerator.cxx:4 AliFemtoModelGausRinvFreezeOutGenerator.cxx:5 AliFemtoModelGausRinvFreezeOutGenerator.cxx:6 AliFemtoModelGausRinvFreezeOutGenerator.cxx:7 AliFemtoModelGausRinvFreezeOutGenerator.cxx:8 AliFemtoModelGausRinvFreezeOutGenerator.cxx:9 AliFemtoModelGausRinvFreezeOutGenerator.cxx:10 AliFemtoModelGausRinvFreezeOutGenerator.cxx:11 AliFemtoModelGausRinvFreezeOutGenerator.cxx:12 AliFemtoModelGausRinvFreezeOutGenerator.cxx:13 AliFemtoModelGausRinvFreezeOutGenerator.cxx:14 AliFemtoModelGausRinvFreezeOutGenerator.cxx:15 AliFemtoModelGausRinvFreezeOutGenerator.cxx:16 AliFemtoModelGausRinvFreezeOutGenerator.cxx:17 AliFemtoModelGausRinvFreezeOutGenerator.cxx:18 AliFemtoModelGausRinvFreezeOutGenerator.cxx:19 AliFemtoModelGausRinvFreezeOutGenerator.cxx:20 AliFemtoModelGausRinvFreezeOutGenerator.cxx:21 AliFemtoModelGausRinvFreezeOutGenerator.cxx:22 AliFemtoModelGausRinvFreezeOutGenerator.cxx:23 AliFemtoModelGausRinvFreezeOutGenerator.cxx:24 AliFemtoModelGausRinvFreezeOutGenerator.cxx:25 AliFemtoModelGausRinvFreezeOutGenerator.cxx:26 AliFemtoModelGausRinvFreezeOutGenerator.cxx:27 AliFemtoModelGausRinvFreezeOutGenerator.cxx:28 AliFemtoModelGausRinvFreezeOutGenerator.cxx:29 AliFemtoModelGausRinvFreezeOutGenerator.cxx:30 AliFemtoModelGausRinvFreezeOutGenerator.cxx:31 AliFemtoModelGausRinvFreezeOutGenerator.cxx:32 AliFemtoModelGausRinvFreezeOutGenerator.cxx:33 AliFemtoModelGausRinvFreezeOutGenerator.cxx:34 AliFemtoModelGausRinvFreezeOutGenerator.cxx:35 AliFemtoModelGausRinvFreezeOutGenerator.cxx:36 AliFemtoModelGausRinvFreezeOutGenerator.cxx:37 AliFemtoModelGausRinvFreezeOutGenerator.cxx:38 AliFemtoModelGausRinvFreezeOutGenerator.cxx:39 AliFemtoModelGausRinvFreezeOutGenerator.cxx:40 AliFemtoModelGausRinvFreezeOutGenerator.cxx:41 AliFemtoModelGausRinvFreezeOutGenerator.cxx:42 AliFemtoModelGausRinvFreezeOutGenerator.cxx:43 AliFemtoModelGausRinvFreezeOutGenerator.cxx:44 AliFemtoModelGausRinvFreezeOutGenerator.cxx:45 AliFemtoModelGausRinvFreezeOutGenerator.cxx:46 AliFemtoModelGausRinvFreezeOutGenerator.cxx:47 AliFemtoModelGausRinvFreezeOutGenerator.cxx:48 AliFemtoModelGausRinvFreezeOutGenerator.cxx:49 AliFemtoModelGausRinvFreezeOutGenerator.cxx:50 AliFemtoModelGausRinvFreezeOutGenerator.cxx:51 AliFemtoModelGausRinvFreezeOutGenerator.cxx:52 AliFemtoModelGausRinvFreezeOutGenerator.cxx:53 AliFemtoModelGausRinvFreezeOutGenerator.cxx:54 AliFemtoModelGausRinvFreezeOutGenerator.cxx:55 AliFemtoModelGausRinvFreezeOutGenerator.cxx:56 AliFemtoModelGausRinvFreezeOutGenerator.cxx:57 AliFemtoModelGausRinvFreezeOutGenerator.cxx:58 AliFemtoModelGausRinvFreezeOutGenerator.cxx:59 AliFemtoModelGausRinvFreezeOutGenerator.cxx:60 AliFemtoModelGausRinvFreezeOutGenerator.cxx:61 AliFemtoModelGausRinvFreezeOutGenerator.cxx:62 AliFemtoModelGausRinvFreezeOutGenerator.cxx:63 AliFemtoModelGausRinvFreezeOutGenerator.cxx:64 AliFemtoModelGausRinvFreezeOutGenerator.cxx:65 AliFemtoModelGausRinvFreezeOutGenerator.cxx:66 AliFemtoModelGausRinvFreezeOutGenerator.cxx:67 AliFemtoModelGausRinvFreezeOutGenerator.cxx:68 AliFemtoModelGausRinvFreezeOutGenerator.cxx:69 AliFemtoModelGausRinvFreezeOutGenerator.cxx:70 AliFemtoModelGausRinvFreezeOutGenerator.cxx:71 AliFemtoModelGausRinvFreezeOutGenerator.cxx:72 AliFemtoModelGausRinvFreezeOutGenerator.cxx:73 AliFemtoModelGausRinvFreezeOutGenerator.cxx:74 AliFemtoModelGausRinvFreezeOutGenerator.cxx:75 AliFemtoModelGausRinvFreezeOutGenerator.cxx:76 AliFemtoModelGausRinvFreezeOutGenerator.cxx:77 AliFemtoModelGausRinvFreezeOutGenerator.cxx:78 AliFemtoModelGausRinvFreezeOutGenerator.cxx:79 AliFemtoModelGausRinvFreezeOutGenerator.cxx:80 AliFemtoModelGausRinvFreezeOutGenerator.cxx:81 AliFemtoModelGausRinvFreezeOutGenerator.cxx:82 AliFemtoModelGausRinvFreezeOutGenerator.cxx:83 AliFemtoModelGausRinvFreezeOutGenerator.cxx:84 AliFemtoModelGausRinvFreezeOutGenerator.cxx:85 AliFemtoModelGausRinvFreezeOutGenerator.cxx:86 AliFemtoModelGausRinvFreezeOutGenerator.cxx:87 AliFemtoModelGausRinvFreezeOutGenerator.cxx:88 AliFemtoModelGausRinvFreezeOutGenerator.cxx:89 AliFemtoModelGausRinvFreezeOutGenerator.cxx:90 AliFemtoModelGausRinvFreezeOutGenerator.cxx:91 AliFemtoModelGausRinvFreezeOutGenerator.cxx:92 AliFemtoModelGausRinvFreezeOutGenerator.cxx:93 AliFemtoModelGausRinvFreezeOutGenerator.cxx:94 AliFemtoModelGausRinvFreezeOutGenerator.cxx:95 AliFemtoModelGausRinvFreezeOutGenerator.cxx:96 AliFemtoModelGausRinvFreezeOutGenerator.cxx:97 AliFemtoModelGausRinvFreezeOutGenerator.cxx:98 AliFemtoModelGausRinvFreezeOutGenerator.cxx:99 AliFemtoModelGausRinvFreezeOutGenerator.cxx:100 AliFemtoModelGausRinvFreezeOutGenerator.cxx:101 AliFemtoModelGausRinvFreezeOutGenerator.cxx:102 AliFemtoModelGausRinvFreezeOutGenerator.cxx:103 AliFemtoModelGausRinvFreezeOutGenerator.cxx:104 AliFemtoModelGausRinvFreezeOutGenerator.cxx:105 AliFemtoModelGausRinvFreezeOutGenerator.cxx:106 AliFemtoModelGausRinvFreezeOutGenerator.cxx:107 AliFemtoModelGausRinvFreezeOutGenerator.cxx:108 AliFemtoModelGausRinvFreezeOutGenerator.cxx:109 AliFemtoModelGausRinvFreezeOutGenerator.cxx:110 AliFemtoModelGausRinvFreezeOutGenerator.cxx:111 AliFemtoModelGausRinvFreezeOutGenerator.cxx:112 AliFemtoModelGausRinvFreezeOutGenerator.cxx:113 AliFemtoModelGausRinvFreezeOutGenerator.cxx:114 AliFemtoModelGausRinvFreezeOutGenerator.cxx:115 AliFemtoModelGausRinvFreezeOutGenerator.cxx:116 AliFemtoModelGausRinvFreezeOutGenerator.cxx:117 AliFemtoModelGausRinvFreezeOutGenerator.cxx:118 AliFemtoModelGausRinvFreezeOutGenerator.cxx:119 AliFemtoModelGausRinvFreezeOutGenerator.cxx:120 AliFemtoModelGausRinvFreezeOutGenerator.cxx:121 AliFemtoModelGausRinvFreezeOutGenerator.cxx:122 AliFemtoModelGausRinvFreezeOutGenerator.cxx:123 AliFemtoModelGausRinvFreezeOutGenerator.cxx:124 AliFemtoModelGausRinvFreezeOutGenerator.cxx:125 AliFemtoModelGausRinvFreezeOutGenerator.cxx:126 AliFemtoModelGausRinvFreezeOutGenerator.cxx:127 AliFemtoModelGausRinvFreezeOutGenerator.cxx:128 AliFemtoModelGausRinvFreezeOutGenerator.cxx:129 AliFemtoModelGausRinvFreezeOutGenerator.cxx:130 AliFemtoModelGausRinvFreezeOutGenerator.cxx:131 AliFemtoModelGausRinvFreezeOutGenerator.cxx:132 AliFemtoModelGausRinvFreezeOutGenerator.cxx:133 AliFemtoModelGausRinvFreezeOutGenerator.cxx:134 AliFemtoModelGausRinvFreezeOutGenerator.cxx:135 AliFemtoModelGausRinvFreezeOutGenerator.cxx:136 AliFemtoModelGausRinvFreezeOutGenerator.cxx:137 AliFemtoModelGausRinvFreezeOutGenerator.cxx:138 AliFemtoModelGausRinvFreezeOutGenerator.cxx:139 AliFemtoModelGausRinvFreezeOutGenerator.cxx:140 AliFemtoModelGausRinvFreezeOutGenerator.cxx:141 AliFemtoModelGausRinvFreezeOutGenerator.cxx:142 AliFemtoModelGausRinvFreezeOutGenerator.cxx:143 AliFemtoModelGausRinvFreezeOutGenerator.cxx:144 AliFemtoModelGausRinvFreezeOutGenerator.cxx:145 AliFemtoModelGausRinvFreezeOutGenerator.cxx:146 AliFemtoModelGausRinvFreezeOutGenerator.cxx:147 AliFemtoModelGausRinvFreezeOutGenerator.cxx:148 AliFemtoModelGausRinvFreezeOutGenerator.cxx:149 AliFemtoModelGausRinvFreezeOutGenerator.cxx:150 AliFemtoModelGausRinvFreezeOutGenerator.cxx:151 AliFemtoModelGausRinvFreezeOutGenerator.cxx:152 AliFemtoModelGausRinvFreezeOutGenerator.cxx:153 AliFemtoModelGausRinvFreezeOutGenerator.cxx:154 AliFemtoModelGausRinvFreezeOutGenerator.cxx:155 AliFemtoModelGausRinvFreezeOutGenerator.cxx:156 AliFemtoModelGausRinvFreezeOutGenerator.cxx:157 AliFemtoModelGausRinvFreezeOutGenerator.cxx:158 AliFemtoModelGausRinvFreezeOutGenerator.cxx:159 AliFemtoModelGausRinvFreezeOutGenerator.cxx:160 AliFemtoModelGausRinvFreezeOutGenerator.cxx:161 AliFemtoModelGausRinvFreezeOutGenerator.cxx:162 AliFemtoModelGausRinvFreezeOutGenerator.cxx:163 AliFemtoModelGausRinvFreezeOutGenerator.cxx:164 AliFemtoModelGausRinvFreezeOutGenerator.cxx:165 AliFemtoModelGausRinvFreezeOutGenerator.cxx:166 AliFemtoModelGausRinvFreezeOutGenerator.cxx:167 AliFemtoModelGausRinvFreezeOutGenerator.cxx:168 AliFemtoModelGausRinvFreezeOutGenerator.cxx:169 AliFemtoModelGausRinvFreezeOutGenerator.cxx:170 AliFemtoModelGausRinvFreezeOutGenerator.cxx:171 AliFemtoModelGausRinvFreezeOutGenerator.cxx:172 AliFemtoModelGausRinvFreezeOutGenerator.cxx:173 AliFemtoModelGausRinvFreezeOutGenerator.cxx:174 AliFemtoModelGausRinvFreezeOutGenerator.cxx:175 AliFemtoModelGausRinvFreezeOutGenerator.cxx:176 AliFemtoModelGausRinvFreezeOutGenerator.cxx:177 AliFemtoModelGausRinvFreezeOutGenerator.cxx:178 AliFemtoModelGausRinvFreezeOutGenerator.cxx:179 AliFemtoModelGausRinvFreezeOutGenerator.cxx:180