#include "AliFemtoModelCorrFctn3DSpherical.h"
#include "AliFemtoModelManager.h"
#include <TMath.h>
#include <cstdio>
#ifdef __ROOT__
ClassImp(AliFemtoModelCorrFctn3DSpherical)
#endif
AliFemtoModelCorrFctn3DSpherical::AliFemtoModelCorrFctn3DSpherical(char* title, const int& nqbins, const float& QLo, const float& QHi, const int& nphibins, const int& ncthetabins):
AliFemtoModelCorrFctn(),
fTrueNumeratorSph(0),
fFakeNumeratorSph(0),
fDenominatorSph(0),
fPairCut(0x0)
{
char tTitNum[101] = "NumTrue";
strncat(tTitNum,title, 100);
fTrueNumeratorSph = new TH3D(tTitNum,title,nqbins,QLo,QHi,nphibins,-TMath::Pi(),TMath::Pi(),ncthetabins,-1.0,1.0);
char tTitNumF[101] = "NumFake";
strncat(tTitNumF,title, 100);
fFakeNumeratorSph = new TH3D(tTitNumF,title,nqbins,QLo,QHi,nphibins,-TMath::Pi(),TMath::Pi(),ncthetabins,-1.0,1.0);
char tTitDen[101] = "Den";
strncat(tTitDen,title, 100);
fDenominatorSph = new TH3D(tTitDen,title,nqbins,QLo,QHi,nphibins,-TMath::Pi(),TMath::Pi(),ncthetabins,-1.0,1.0);
fTrueNumeratorSph->Sumw2();
fFakeNumeratorSph->Sumw2();
fDenominatorSph->Sumw2();
}
AliFemtoModelCorrFctn3DSpherical::AliFemtoModelCorrFctn3DSpherical(const AliFemtoModelCorrFctn3DSpherical& aCorrFctn) :
AliFemtoModelCorrFctn(aCorrFctn),
fTrueNumeratorSph(0),
fFakeNumeratorSph(0),
fDenominatorSph(0),
fPairCut(0x0)
{
fTrueNumeratorSph = new TH3D(*aCorrFctn.fTrueNumeratorSph);
fFakeNumeratorSph = new TH3D(*aCorrFctn.fFakeNumeratorSph);
fDenominatorSph = new TH3D(*aCorrFctn.fDenominatorSph);
fPairCut = aCorrFctn.fPairCut;
}
AliFemtoModelCorrFctn3DSpherical::~AliFemtoModelCorrFctn3DSpherical(){
delete fTrueNumeratorSph;
delete fFakeNumeratorSph;
delete fDenominatorSph;
}
AliFemtoModelCorrFctn3DSpherical& AliFemtoModelCorrFctn3DSpherical::operator=(const AliFemtoModelCorrFctn3DSpherical& aCorrFctn)
{
if (this == &aCorrFctn)
return *this;
if (fTrueNumeratorSph) delete fTrueNumeratorSph;
fTrueNumeratorSph = new TH3D(*aCorrFctn.fTrueNumeratorSph);
if (fFakeNumeratorSph) delete fFakeNumeratorSph;
fFakeNumeratorSph = new TH3D(*aCorrFctn.fFakeNumeratorSph);
if (fDenominatorSph) delete fDenominatorSph;
fDenominatorSph = new TH3D(*aCorrFctn.fDenominatorSph);
fPairCut = aCorrFctn.fPairCut;
return *this;
}
void AliFemtoModelCorrFctn3DSpherical::WriteOutHistos(){
fTrueNumeratorSph->Write();
fFakeNumeratorSph->Write();
fDenominatorSph->Write();
}
TList* AliFemtoModelCorrFctn3DSpherical::GetOutputList()
{
TList *tOutputList = new TList();
tOutputList->Add(fTrueNumeratorSph);
tOutputList->Add(fFakeNumeratorSph);
tOutputList->Add(fDenominatorSph);
return tOutputList;
}
void AliFemtoModelCorrFctn3DSpherical::Finish(){
}
AliFemtoString AliFemtoModelCorrFctn3DSpherical::Report(){
string stemp = "PRF Frame Spherical 3D Model Correlation Function Report:\n";
char ctemp[100];
snprintf(ctemp , 100, "Number of entries in numerator:\t%E\n",fTrueNumeratorSph->GetEntries());
stemp += ctemp;
snprintf(ctemp , 100, "Number of entries in denominator:\t%E\n",fDenominatorSph->GetEntries());
stemp += ctemp;
if (fPairCut){
snprintf(ctemp , 100, "Here is the PairCut specific to this CorrFctn\n");
stemp += ctemp;
stemp += fPairCut->Report();
}
else{
snprintf(ctemp , 100, "No PairCut specific to this CorrFctn\n");
stemp += ctemp;
}
AliFemtoString returnThis = stemp;
return returnThis;
}
void AliFemtoModelCorrFctn3DSpherical::AddRealPair( AliFemtoPair* pair){
if (fPairCut){
if (!(fPairCut->Pass(pair))) return;
}
Double_t weight = fManager->GetWeight(pair);
double tKO = pair->KOut();
double tKS = pair->KSide();
double tKL = pair->KLong();
double tKR = sqrt(tKO*tKO + tKS*tKS + tKL*tKL);
double tKC;
if ( fabs(tKR) < 1e-10 ) tKC = 0.0;
else tKC=tKL/tKR;
double tKP=atan2(tKS,tKO);
fTrueNumeratorSph->Fill(tKR,tKP,tKC,weight);
}
void AliFemtoModelCorrFctn3DSpherical::AddMixedPair( AliFemtoPair* pair){
if (fPairCut){
if (!(fPairCut->Pass(pair))) return;
}
Double_t weight = fManager->GetWeight(pair);
double tKO = pair->KOut();
double tKS = pair->KSide();
double tKL = pair->KLong();
double tKR = sqrt(tKO*tKO + tKS*tKS + tKL*tKL);
double tKC;
if ( fabs(tKR) < 1e-10 ) tKC = 0.0;
else tKC=tKL/tKR;
double tKP=atan2(tKS,tKO);
fFakeNumeratorSph->Fill(tKR,tKP,tKC,weight);
fDenominatorSph->Fill(tKR,tKP,tKC);
}
AliFemtoModelCorrFctn3DSpherical.cxx:1 AliFemtoModelCorrFctn3DSpherical.cxx:2 AliFemtoModelCorrFctn3DSpherical.cxx:3 AliFemtoModelCorrFctn3DSpherical.cxx:4 AliFemtoModelCorrFctn3DSpherical.cxx:5 AliFemtoModelCorrFctn3DSpherical.cxx:6 AliFemtoModelCorrFctn3DSpherical.cxx:7 AliFemtoModelCorrFctn3DSpherical.cxx:8 AliFemtoModelCorrFctn3DSpherical.cxx:9 AliFemtoModelCorrFctn3DSpherical.cxx:10 AliFemtoModelCorrFctn3DSpherical.cxx:11 AliFemtoModelCorrFctn3DSpherical.cxx:12 AliFemtoModelCorrFctn3DSpherical.cxx:13 AliFemtoModelCorrFctn3DSpherical.cxx:14 AliFemtoModelCorrFctn3DSpherical.cxx:15 AliFemtoModelCorrFctn3DSpherical.cxx:16 AliFemtoModelCorrFctn3DSpherical.cxx:17 AliFemtoModelCorrFctn3DSpherical.cxx:18 AliFemtoModelCorrFctn3DSpherical.cxx:19 AliFemtoModelCorrFctn3DSpherical.cxx:20 AliFemtoModelCorrFctn3DSpherical.cxx:21 AliFemtoModelCorrFctn3DSpherical.cxx:22 AliFemtoModelCorrFctn3DSpherical.cxx:23 AliFemtoModelCorrFctn3DSpherical.cxx:24 AliFemtoModelCorrFctn3DSpherical.cxx:25 AliFemtoModelCorrFctn3DSpherical.cxx:26 AliFemtoModelCorrFctn3DSpherical.cxx:27 AliFemtoModelCorrFctn3DSpherical.cxx:28 AliFemtoModelCorrFctn3DSpherical.cxx:29 AliFemtoModelCorrFctn3DSpherical.cxx:30 AliFemtoModelCorrFctn3DSpherical.cxx:31 AliFemtoModelCorrFctn3DSpherical.cxx:32 AliFemtoModelCorrFctn3DSpherical.cxx:33 AliFemtoModelCorrFctn3DSpherical.cxx:34 AliFemtoModelCorrFctn3DSpherical.cxx:35 AliFemtoModelCorrFctn3DSpherical.cxx:36 AliFemtoModelCorrFctn3DSpherical.cxx:37 AliFemtoModelCorrFctn3DSpherical.cxx:38 AliFemtoModelCorrFctn3DSpherical.cxx:39 AliFemtoModelCorrFctn3DSpherical.cxx:40 AliFemtoModelCorrFctn3DSpherical.cxx:41 AliFemtoModelCorrFctn3DSpherical.cxx:42 AliFemtoModelCorrFctn3DSpherical.cxx:43 AliFemtoModelCorrFctn3DSpherical.cxx:44 AliFemtoModelCorrFctn3DSpherical.cxx:45 AliFemtoModelCorrFctn3DSpherical.cxx:46 AliFemtoModelCorrFctn3DSpherical.cxx:47 AliFemtoModelCorrFctn3DSpherical.cxx:48 AliFemtoModelCorrFctn3DSpherical.cxx:49 AliFemtoModelCorrFctn3DSpherical.cxx:50 AliFemtoModelCorrFctn3DSpherical.cxx:51 AliFemtoModelCorrFctn3DSpherical.cxx:52 AliFemtoModelCorrFctn3DSpherical.cxx:53 AliFemtoModelCorrFctn3DSpherical.cxx:54 AliFemtoModelCorrFctn3DSpherical.cxx:55 AliFemtoModelCorrFctn3DSpherical.cxx:56 AliFemtoModelCorrFctn3DSpherical.cxx:57 AliFemtoModelCorrFctn3DSpherical.cxx:58 AliFemtoModelCorrFctn3DSpherical.cxx:59 AliFemtoModelCorrFctn3DSpherical.cxx:60 AliFemtoModelCorrFctn3DSpherical.cxx:61 AliFemtoModelCorrFctn3DSpherical.cxx:62 AliFemtoModelCorrFctn3DSpherical.cxx:63 AliFemtoModelCorrFctn3DSpherical.cxx:64 AliFemtoModelCorrFctn3DSpherical.cxx:65 AliFemtoModelCorrFctn3DSpherical.cxx:66 AliFemtoModelCorrFctn3DSpherical.cxx:67 AliFemtoModelCorrFctn3DSpherical.cxx:68 AliFemtoModelCorrFctn3DSpherical.cxx:69 AliFemtoModelCorrFctn3DSpherical.cxx:70 AliFemtoModelCorrFctn3DSpherical.cxx:71 AliFemtoModelCorrFctn3DSpherical.cxx:72 AliFemtoModelCorrFctn3DSpherical.cxx:73 AliFemtoModelCorrFctn3DSpherical.cxx:74 AliFemtoModelCorrFctn3DSpherical.cxx:75 AliFemtoModelCorrFctn3DSpherical.cxx:76 AliFemtoModelCorrFctn3DSpherical.cxx:77 AliFemtoModelCorrFctn3DSpherical.cxx:78 AliFemtoModelCorrFctn3DSpherical.cxx:79 AliFemtoModelCorrFctn3DSpherical.cxx:80 AliFemtoModelCorrFctn3DSpherical.cxx:81 AliFemtoModelCorrFctn3DSpherical.cxx:82 AliFemtoModelCorrFctn3DSpherical.cxx:83 AliFemtoModelCorrFctn3DSpherical.cxx:84 AliFemtoModelCorrFctn3DSpherical.cxx:85 AliFemtoModelCorrFctn3DSpherical.cxx:86 AliFemtoModelCorrFctn3DSpherical.cxx:87 AliFemtoModelCorrFctn3DSpherical.cxx:88 AliFemtoModelCorrFctn3DSpherical.cxx:89 AliFemtoModelCorrFctn3DSpherical.cxx:90 AliFemtoModelCorrFctn3DSpherical.cxx:91 AliFemtoModelCorrFctn3DSpherical.cxx:92 AliFemtoModelCorrFctn3DSpherical.cxx:93 AliFemtoModelCorrFctn3DSpherical.cxx:94 AliFemtoModelCorrFctn3DSpherical.cxx:95 AliFemtoModelCorrFctn3DSpherical.cxx:96 AliFemtoModelCorrFctn3DSpherical.cxx:97 AliFemtoModelCorrFctn3DSpherical.cxx:98 AliFemtoModelCorrFctn3DSpherical.cxx:99 AliFemtoModelCorrFctn3DSpherical.cxx:100 AliFemtoModelCorrFctn3DSpherical.cxx:101 AliFemtoModelCorrFctn3DSpherical.cxx:102 AliFemtoModelCorrFctn3DSpherical.cxx:103 AliFemtoModelCorrFctn3DSpherical.cxx:104 AliFemtoModelCorrFctn3DSpherical.cxx:105 AliFemtoModelCorrFctn3DSpherical.cxx:106 AliFemtoModelCorrFctn3DSpherical.cxx:107 AliFemtoModelCorrFctn3DSpherical.cxx:108 AliFemtoModelCorrFctn3DSpherical.cxx:109 AliFemtoModelCorrFctn3DSpherical.cxx:110 AliFemtoModelCorrFctn3DSpherical.cxx:111 AliFemtoModelCorrFctn3DSpherical.cxx:112 AliFemtoModelCorrFctn3DSpherical.cxx:113 AliFemtoModelCorrFctn3DSpherical.cxx:114 AliFemtoModelCorrFctn3DSpherical.cxx:115 AliFemtoModelCorrFctn3DSpherical.cxx:116 AliFemtoModelCorrFctn3DSpherical.cxx:117 AliFemtoModelCorrFctn3DSpherical.cxx:118 AliFemtoModelCorrFctn3DSpherical.cxx:119 AliFemtoModelCorrFctn3DSpherical.cxx:120 AliFemtoModelCorrFctn3DSpherical.cxx:121 AliFemtoModelCorrFctn3DSpherical.cxx:122 AliFemtoModelCorrFctn3DSpherical.cxx:123 AliFemtoModelCorrFctn3DSpherical.cxx:124 AliFemtoModelCorrFctn3DSpherical.cxx:125 AliFemtoModelCorrFctn3DSpherical.cxx:126 AliFemtoModelCorrFctn3DSpherical.cxx:127 AliFemtoModelCorrFctn3DSpherical.cxx:128 AliFemtoModelCorrFctn3DSpherical.cxx:129 AliFemtoModelCorrFctn3DSpherical.cxx:130 AliFemtoModelCorrFctn3DSpherical.cxx:131 AliFemtoModelCorrFctn3DSpherical.cxx:132 AliFemtoModelCorrFctn3DSpherical.cxx:133 AliFemtoModelCorrFctn3DSpherical.cxx:134 AliFemtoModelCorrFctn3DSpherical.cxx:135 AliFemtoModelCorrFctn3DSpherical.cxx:136 AliFemtoModelCorrFctn3DSpherical.cxx:137 AliFemtoModelCorrFctn3DSpherical.cxx:138 AliFemtoModelCorrFctn3DSpherical.cxx:139 AliFemtoModelCorrFctn3DSpherical.cxx:140 AliFemtoModelCorrFctn3DSpherical.cxx:141 AliFemtoModelCorrFctn3DSpherical.cxx:142 AliFemtoModelCorrFctn3DSpherical.cxx:143 AliFemtoModelCorrFctn3DSpherical.cxx:144 AliFemtoModelCorrFctn3DSpherical.cxx:145 AliFemtoModelCorrFctn3DSpherical.cxx:146 AliFemtoModelCorrFctn3DSpherical.cxx:147 AliFemtoModelCorrFctn3DSpherical.cxx:148 AliFemtoModelCorrFctn3DSpherical.cxx:149 AliFemtoModelCorrFctn3DSpherical.cxx:150 AliFemtoModelCorrFctn3DSpherical.cxx:151 AliFemtoModelCorrFctn3DSpherical.cxx:152 AliFemtoModelCorrFctn3DSpherical.cxx:153 AliFemtoModelCorrFctn3DSpherical.cxx:154 AliFemtoModelCorrFctn3DSpherical.cxx:155 AliFemtoModelCorrFctn3DSpherical.cxx:156 AliFemtoModelCorrFctn3DSpherical.cxx:157 AliFemtoModelCorrFctn3DSpherical.cxx:158 AliFemtoModelCorrFctn3DSpherical.cxx:159 AliFemtoModelCorrFctn3DSpherical.cxx:160 AliFemtoModelCorrFctn3DSpherical.cxx:161 AliFemtoModelCorrFctn3DSpherical.cxx:162 AliFemtoModelCorrFctn3DSpherical.cxx:163 AliFemtoModelCorrFctn3DSpherical.cxx:164 AliFemtoModelCorrFctn3DSpherical.cxx:165 AliFemtoModelCorrFctn3DSpherical.cxx:166 AliFemtoModelCorrFctn3DSpherical.cxx:167 AliFemtoModelCorrFctn3DSpherical.cxx:168 AliFemtoModelCorrFctn3DSpherical.cxx:169 AliFemtoModelCorrFctn3DSpherical.cxx:170 AliFemtoModelCorrFctn3DSpherical.cxx:171 AliFemtoModelCorrFctn3DSpherical.cxx:172 AliFemtoModelCorrFctn3DSpherical.cxx:173 AliFemtoModelCorrFctn3DSpherical.cxx:174 AliFemtoModelCorrFctn3DSpherical.cxx:175 AliFemtoModelCorrFctn3DSpherical.cxx:176 AliFemtoModelCorrFctn3DSpherical.cxx:177 AliFemtoModelCorrFctn3DSpherical.cxx:178 AliFemtoModelCorrFctn3DSpherical.cxx:179 AliFemtoModelCorrFctn3DSpherical.cxx:180