10#include "Femto1DCFAnaMap.h"
18#include "CorrFitMapKstarRstar.h"
20#include "DividedHisto.h"
22#include "FemtoCorrFunc.h"
23#include "FemtoCorrFuncKt.h"
24#include "FemtoFreezoutGenerator.h"
26#include "FemtoSourceModel.h"
27#include "FemtoWeightGenerator.h"
28#include "ObjectMatrix.h"
33 FemtoCorrFuncMap::FemtoCorrFuncMap(
const Femto1DCF& h, Int_t Rbins, Double_t Rmin, Double_t Rmax) : FemtoCorrFunc0D(), fR(0) {
34 fArray =
new ObjectMatrix_1();
35 auto kin = h.GetFrame();
36 Int_t bins = h.GetNum()->GetNbinsX();
37 Double_t min = h.GetNum()->GetXaxis()->GetBinLowEdge(1);
38 Double_t max = h.GetNum()->GetXaxis()->GetBinUpEdge(bins);
39 TString XTitle, YTitle, ZTitle;
40 if (kin == Femto::EKinematics::kPRF) {
41 XTitle =
"K* [GeV/c]";
42 YTitle =
"R_{source}";
43 ZTitle =
"dN_{pairs}/dK*";
44 }
else if (kin == Femto::EKinematics::kLCMS) {
45 XTitle =
" Q_{inv} [GeV/c]";
46 YTitle =
"R_{source}";
47 ZTitle =
"dN_{pairs}/dQ_{inv}";
49 DividedHisto2D* map =
new DividedHisto2D(
"Map", bins, min, max, Rbins, Rmin, Rmax,
'D');
50 map->GetNum()->GetXaxis()->SetTitle(XTitle);
51 map->GetDen()->GetXaxis()->SetTitle(XTitle);
52 map->GetNum()->GetYaxis()->SetTitle(YTitle);
53 map->GetDen()->GetYaxis()->SetTitle(YTitle);
54 map->GetNum()->GetZaxis()->SetTitle(ZTitle);
55 map->GetDen()->GetZaxis()->SetTitle(ZTitle);
63 void FemtoCorrFuncMap::FillDenMixed(
FemtoPair* pair) {
67 CorrFitMapKstarRstar* FemtoCorrFuncMap::GetKstarMap(Int_t kt_bin) {
68 DividedHisto2D* hist = (DividedHisto2D*) fArray->At(kt_bin);
69 TH2D* h = (TH2D*) hist->GetHist(kFALSE);
70 Femto::EKinematics kin = Femto::EKinematics::kPRF;
71 TString tit = h->GetXaxis()->GetTitle();
72 if (tit.Contains(
"inv")) kin = Femto::EKinematics::kLCMS;
73 CorrFitMapKstarRstar* map =
new CorrFitMapKstarRstar(*h, kin);
75 map->SetName(Form(
"kt_%i", kt_bin));
79 FemtoCorrFuncMap::~FemtoCorrFuncMap() {
85 Femto1DCFAnaMap::Femto1DCFAnaMap() : FemtoBasicAna(), fRbins(0), fRMinEff(0), fRStep(0), fRmin(1), fRmax(10) {}
90 for (Double_t i = 0; i < fRbins; i++) {
91 Double_t R = fRMinEff + i * fRStep;
105 for (Double_t i = 0; i < fRbins; i++) {
106 Double_t R = fRMinEff + i * fRStep;
115 for (Double_t i = 0; i < fRbins; i++) {
116 Double_t R = fRMinEff + i * fRStep;
129 for (Double_t i = 0; i < fRbins; i++) {
130 Double_t R = fRMinEff + i * fRStep;
144 for (Double_t i = 0; i < fRbins; i++) {
145 Double_t R = fRMinEff + i * fRStep;
154 for (Double_t i = 0; i < fRbins; i++) {
155 Double_t R = fRMinEff + i * fRStep;
171 fRStep = (fRmax - fRmin) / ((Double_t) fRbins);
172 fRMinEff = fRmin + 0.5 * fRStep;
174 if (stat == Task::EInitFlag::kFATAL)
return Task::EInitFlag::kFATAL;
178 return Task::EInitFlag::kFATAL;
196 Femto1DCFAnaMap::~Femto1DCFAnaMap() {
203 if (!cf)
return kFALSE;
static void PrintInfo(TString text, Hal::EInfo status)
Int_t fEventCollectionsNo
Int_t fCurrentEventCollectionID
virtual void ProcessFemtoPair_Perfect()
virtual void CheckCutContainerCollections()
void SetRadiusRange(Int_t r_bins, Double_t r_min, Double_t r_max)
virtual void ProcessFemtoPair_Mixed()
virtual void ProcessFemtoPair_Hemisphere()
virtual Task::EInitFlag Init()
virtual void ProcessFemtoPair()
virtual void ProcessFemtoPair_Rotated()
virtual Package * Report() const
virtual Bool_t InitArray()
virtual void ProcessFemtoPair_Charged()
FemtoFreezoutGenerator * fFreezoutGenerator
virtual Package * Report() const
virtual void CheckCutContainerCollections()
virtual Task::EInitFlag Init()
FemtoWeightGenerator * fCalc
virtual void FillNum(FemtoPair *pair)
void SetEventCollID(Int_t no)
void SetPairCollID(Int_t no)
DividedHisto1D * GetCF(Int_t i) const
void GenerateFreezoutCooordinates(FemtoPair *Pair)
FemtoSourceModel * GetSourceModel() const
virtual void Compute_Mixed()
virtual void Compute_Hemisphere()=0
Double_t GetWeight() const
virtual void Compute_Charged()
virtual void Compute_Rotated()=0
void SetWeight(Double_t weight)
virtual void SetRadius(Double_t)
virtual Double_t GenerateWeight(FemtoPair *pair)
TObject * At(Int_t i, Int_t j) const
virtual void Init(Int_t sizeX, Int_t sizeY, const TObject *temp)
Int_t fTwoTrackCollectionsNo
Int_t fCurrentPairCollectionID