10#include "FemtoFreezoutGenerator.h"
12#include <TLorentzVector.h>
16#include "FemtoSourceModelGauss.h"
22 FemtoFreezoutGenerator::FemtoFreezoutGenerator() {}
24 FemtoFreezoutGenerator::FemtoFreezoutGenerator(
const FemtoSourceModel& source) {
43 Bool_t init =
fModel->Init();
44 if (!init) {
Cout::PrintInfo(
"Problem with initialization of source model", EInfo::kError); }
54 FemtoFreezoutGenerator::~FemtoFreezoutGenerator() {
58 FemtoFreezoutGeneratorLCMS::FemtoFreezoutGeneratorLCMS() {}
67 Double_t tE1 = pair->
TrueE1();
68 Double_t tE2 = pair->
TrueE2();
69 Double_t tEs = tE1 + tE2;
72 Double_t tPt = sqrt(tPx * tPx + tPy * tPy);
81 Double_t tXout = (tPx * tRout + tPy * tRside) / tPt;
82 Double_t tXside = (tPy * tRout - tPx * tRside) / tPt;
86 Double_t tBetaz = tPz / tEs;
87 Double_t tGammaz = 1.0 / TMath::Sqrt(1 - tBetaz * tBetaz);
89 Double_t tXlong = tGammaz * (tRlong + tBetaz * 0.0);
90 Double_t tXtime = tGammaz * (0.0 + tBetaz * tRlong);
102 std::cout <<
"source generator" << std::endl;
113 FemtoFreezoutGeneratorLCMS::~FemtoFreezoutGeneratorLCMS() {}
115 FemtoFreezoutGeneratorPRF::FemtoFreezoutGeneratorPRF() {
123 Double_t tE1 = pair->
TrueE1();
124 Double_t tE2 = pair->
TrueE2();
125 Double_t tEs = tE1 + tE2;
132 TLorentzVector P(tPx, tPy, tPz, tEs);
133 P.Boost(0, 0, -tPz / tEs);
134 TLorentzVector X(-tRout, -tRside, -tRlong, 0);
135 X.Boost(P.Pt() / P.E(), 0, 0);
136 X.RotateZ(TMath::ATan2(tPy, tPx));
137 X.Boost(0, 0, tPz / tEs);
156 FemtoFreezoutGeneratorPRF::~FemtoFreezoutGeneratorPRF() {}
176 void FemtoFreezoutGenerator::Print(Option_t* )
const {
static void Text(TString text, TString option="L", Color_t color=-1)
static void PrintInfo(TString text, Hal::EInfo status)
virtual Package * Report() const
void Boost(FemtoPair *pair)
FemtoFreezoutGenerator * MakeCopy() const
void Boost(FemtoPair *pair)
virtual Package * Report() const
FemtoFreezoutGenerator * MakeCopy() const
void GenerateFreezoutCooordinates(FemtoPair *Pair)
FemtoSourceModel * fModel
virtual void Boost(FemtoPair *pair)=0
virtual Package * Report() const
void SetSourceModel(const FemtoSourceModel &model)
virtual FemtoSourceModel * MakeCopy() const =0
virtual Package * Report() const
Double_t GetRLong() const
virtual void GenerateCoordinates(FemtoPair *Pair)=0
Double_t GetRSide() const
void AddObject(TObject *object)