ROOT logo
////////////////////////////////////////////////////////////////////////////////
///                                                                          ///
/// AliFemtoModelCorrFctnTrueQ - the class for correlation function which   ///
/// uses the model framework and weight generation and saves the generated   ///
/// emission source                                                          ///
/// Authors: Adam Kisiel, kisiel@mps.ohio-state.edu                          ///
///                                                                          ///
////////////////////////////////////////////////////////////////////////////////
#ifdef __ROOT__
  ClassImp(AliFemtoModelCorrFctnTrueQ, 1)
#endif

#include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
#include "AliFemtoModelHiddenInfo.h"
#include "AliFemtoModelCorrFctnTrueQ.h"
    
//_______________________
AliFemtoModelCorrFctnTrueQ::AliFemtoModelCorrFctnTrueQ(): 
  AliFemtoModelCorrFctn(),
  fTrueNum(0),
  fTrueDen(0)
{
  // default constructor
  char buf[100];
  char title[100] = "CFTrueQ";
  snprintf(buf , 100,  "%sNum", title);
  fTrueNum = new TH1D(buf,buf,100,0.0,0.4);
  snprintf(buf , 100,  "%sDen", title);
  fTrueDen = new TH1D(buf,buf,100,0.0,0.4);

  fTrueNum->Sumw2();
  fTrueDen->Sumw2();
}
//_______________________
AliFemtoModelCorrFctnTrueQ::AliFemtoModelCorrFctnTrueQ(const char *title, Int_t aNbins, Double_t aQinvLo, Double_t aQinvHi):
  AliFemtoModelCorrFctn(title, aNbins, aQinvLo, aQinvHi),
  fTrueNum(0),
  fTrueDen(0)
{
  // basic constructor
  char buf[100];
  snprintf(buf , 100,  "%sTrueQNum", title);
  fTrueNum = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);
  snprintf(buf , 100,  "%sTrueQDen", title);
  fTrueDen = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);

  fTrueNum->Sumw2();
  fTrueDen->Sumw2();
}
//_______________________
AliFemtoModelCorrFctnTrueQ::AliFemtoModelCorrFctnTrueQ(const AliFemtoModelCorrFctnTrueQ& aCorrFctn):
  AliFemtoModelCorrFctn(aCorrFctn),
  fTrueNum(0),
  fTrueDen(0)
{
  // copy constructor
  fTrueNum = new TH1D(*aCorrFctn.fTrueNum);
  fTrueDen = new TH1D(*aCorrFctn.fTrueDen);
}
//_______________________
AliFemtoModelCorrFctnTrueQ::~AliFemtoModelCorrFctnTrueQ()
{
  // destructor
  if (fTrueNum) delete fTrueNum;
  if (fTrueDen) delete fTrueDen;
  if (fNumeratorTrue) delete fNumeratorTrue;
  if (fNumeratorFake) delete fNumeratorFake;
  if (fDenominator) delete fDenominator;
}

//_______________________
AliFemtoModelCorrFctnTrueQ& AliFemtoModelCorrFctnTrueQ::operator=(const AliFemtoModelCorrFctnTrueQ& aCorrFctn)
{
  // assignment operator
  if (this == &aCorrFctn) 
    return *this;
  if (aCorrFctn.fTrueNum)
    fTrueNum = new TH1D (*aCorrFctn.fTrueNum);
  else fTrueNum = 0;
  if (aCorrFctn.fTrueDen)
    fTrueDen = new TH1D(*aCorrFctn.fTrueDen);
  else fTrueDen = 0;

  return *this;
}
//_______________________
AliFemtoString AliFemtoModelCorrFctnTrueQ::Report()
{
  // construct report
  AliFemtoString tStr = "AliFemtoModelCorrFctnTrueQ report";

  return tStr;
}

//_______________________
void AliFemtoModelCorrFctnTrueQ::AddRealPair(AliFemtoPair* aPair)
{
  // add real (effect) pair
  AliFemtoModelCorrFctn::AddRealPair(aPair);
  fTrueNum->Fill(fManager->GetWeightGenerator()->GetKStar()*2);
}
//_______________________
void AliFemtoModelCorrFctnTrueQ::AddMixedPair(AliFemtoPair* aPair)
{
  // add mixed (background) pair
  AliFemtoModelCorrFctn::AddMixedPair(aPair);
  // save the generated positions
  fTrueDen->Fill(fManager->GetWeightGenerator()->GetKStar()*2);
}
//_______________________
void AliFemtoModelCorrFctnTrueQ::Write()
{
  // write out all the histograms
  fTrueNum->Write();
  fTrueDen->Write();
  
  AliFemtoModelCorrFctn::Write();
}
//_______________________
TList* AliFemtoModelCorrFctnTrueQ::GetOutputList()
{
  // Prepare the list of objects to be written to the output
  TList *tOutputList = AliFemtoModelCorrFctn::GetOutputList();

  tOutputList->Add(fTrueNum); 
  tOutputList->Add(fTrueDen);  

  return tOutputList;
}
//_______________________
AliFemtoModelCorrFctn* AliFemtoModelCorrFctnTrueQ::Clone()
{
  // Clone the correlation function
  AliFemtoModelCorrFctnTrueQ *tCopy = new AliFemtoModelCorrFctnTrueQ(*this);
  
  return tCopy;
}

 AliFemtoModelCorrFctnTrueQ.cxx:1
 AliFemtoModelCorrFctnTrueQ.cxx:2
 AliFemtoModelCorrFctnTrueQ.cxx:3
 AliFemtoModelCorrFctnTrueQ.cxx:4
 AliFemtoModelCorrFctnTrueQ.cxx:5
 AliFemtoModelCorrFctnTrueQ.cxx:6
 AliFemtoModelCorrFctnTrueQ.cxx:7
 AliFemtoModelCorrFctnTrueQ.cxx:8
 AliFemtoModelCorrFctnTrueQ.cxx:9
 AliFemtoModelCorrFctnTrueQ.cxx:10
 AliFemtoModelCorrFctnTrueQ.cxx:11
 AliFemtoModelCorrFctnTrueQ.cxx:12
 AliFemtoModelCorrFctnTrueQ.cxx:13
 AliFemtoModelCorrFctnTrueQ.cxx:14
 AliFemtoModelCorrFctnTrueQ.cxx:15
 AliFemtoModelCorrFctnTrueQ.cxx:16
 AliFemtoModelCorrFctnTrueQ.cxx:17
 AliFemtoModelCorrFctnTrueQ.cxx:18
 AliFemtoModelCorrFctnTrueQ.cxx:19
 AliFemtoModelCorrFctnTrueQ.cxx:20
 AliFemtoModelCorrFctnTrueQ.cxx:21
 AliFemtoModelCorrFctnTrueQ.cxx:22
 AliFemtoModelCorrFctnTrueQ.cxx:23
 AliFemtoModelCorrFctnTrueQ.cxx:24
 AliFemtoModelCorrFctnTrueQ.cxx:25
 AliFemtoModelCorrFctnTrueQ.cxx:26
 AliFemtoModelCorrFctnTrueQ.cxx:27
 AliFemtoModelCorrFctnTrueQ.cxx:28
 AliFemtoModelCorrFctnTrueQ.cxx:29
 AliFemtoModelCorrFctnTrueQ.cxx:30
 AliFemtoModelCorrFctnTrueQ.cxx:31
 AliFemtoModelCorrFctnTrueQ.cxx:32
 AliFemtoModelCorrFctnTrueQ.cxx:33
 AliFemtoModelCorrFctnTrueQ.cxx:34
 AliFemtoModelCorrFctnTrueQ.cxx:35
 AliFemtoModelCorrFctnTrueQ.cxx:36
 AliFemtoModelCorrFctnTrueQ.cxx:37
 AliFemtoModelCorrFctnTrueQ.cxx:38
 AliFemtoModelCorrFctnTrueQ.cxx:39
 AliFemtoModelCorrFctnTrueQ.cxx:40
 AliFemtoModelCorrFctnTrueQ.cxx:41
 AliFemtoModelCorrFctnTrueQ.cxx:42
 AliFemtoModelCorrFctnTrueQ.cxx:43
 AliFemtoModelCorrFctnTrueQ.cxx:44
 AliFemtoModelCorrFctnTrueQ.cxx:45
 AliFemtoModelCorrFctnTrueQ.cxx:46
 AliFemtoModelCorrFctnTrueQ.cxx:47
 AliFemtoModelCorrFctnTrueQ.cxx:48
 AliFemtoModelCorrFctnTrueQ.cxx:49
 AliFemtoModelCorrFctnTrueQ.cxx:50
 AliFemtoModelCorrFctnTrueQ.cxx:51
 AliFemtoModelCorrFctnTrueQ.cxx:52
 AliFemtoModelCorrFctnTrueQ.cxx:53
 AliFemtoModelCorrFctnTrueQ.cxx:54
 AliFemtoModelCorrFctnTrueQ.cxx:55
 AliFemtoModelCorrFctnTrueQ.cxx:56
 AliFemtoModelCorrFctnTrueQ.cxx:57
 AliFemtoModelCorrFctnTrueQ.cxx:58
 AliFemtoModelCorrFctnTrueQ.cxx:59
 AliFemtoModelCorrFctnTrueQ.cxx:60
 AliFemtoModelCorrFctnTrueQ.cxx:61
 AliFemtoModelCorrFctnTrueQ.cxx:62
 AliFemtoModelCorrFctnTrueQ.cxx:63
 AliFemtoModelCorrFctnTrueQ.cxx:64
 AliFemtoModelCorrFctnTrueQ.cxx:65
 AliFemtoModelCorrFctnTrueQ.cxx:66
 AliFemtoModelCorrFctnTrueQ.cxx:67
 AliFemtoModelCorrFctnTrueQ.cxx:68
 AliFemtoModelCorrFctnTrueQ.cxx:69
 AliFemtoModelCorrFctnTrueQ.cxx:70
 AliFemtoModelCorrFctnTrueQ.cxx:71
 AliFemtoModelCorrFctnTrueQ.cxx:72
 AliFemtoModelCorrFctnTrueQ.cxx:73
 AliFemtoModelCorrFctnTrueQ.cxx:74
 AliFemtoModelCorrFctnTrueQ.cxx:75
 AliFemtoModelCorrFctnTrueQ.cxx:76
 AliFemtoModelCorrFctnTrueQ.cxx:77
 AliFemtoModelCorrFctnTrueQ.cxx:78
 AliFemtoModelCorrFctnTrueQ.cxx:79
 AliFemtoModelCorrFctnTrueQ.cxx:80
 AliFemtoModelCorrFctnTrueQ.cxx:81
 AliFemtoModelCorrFctnTrueQ.cxx:82
 AliFemtoModelCorrFctnTrueQ.cxx:83
 AliFemtoModelCorrFctnTrueQ.cxx:84
 AliFemtoModelCorrFctnTrueQ.cxx:85
 AliFemtoModelCorrFctnTrueQ.cxx:86
 AliFemtoModelCorrFctnTrueQ.cxx:87
 AliFemtoModelCorrFctnTrueQ.cxx:88
 AliFemtoModelCorrFctnTrueQ.cxx:89
 AliFemtoModelCorrFctnTrueQ.cxx:90
 AliFemtoModelCorrFctnTrueQ.cxx:91
 AliFemtoModelCorrFctnTrueQ.cxx:92
 AliFemtoModelCorrFctnTrueQ.cxx:93
 AliFemtoModelCorrFctnTrueQ.cxx:94
 AliFemtoModelCorrFctnTrueQ.cxx:95
 AliFemtoModelCorrFctnTrueQ.cxx:96
 AliFemtoModelCorrFctnTrueQ.cxx:97
 AliFemtoModelCorrFctnTrueQ.cxx:98
 AliFemtoModelCorrFctnTrueQ.cxx:99
 AliFemtoModelCorrFctnTrueQ.cxx:100
 AliFemtoModelCorrFctnTrueQ.cxx:101
 AliFemtoModelCorrFctnTrueQ.cxx:102
 AliFemtoModelCorrFctnTrueQ.cxx:103
 AliFemtoModelCorrFctnTrueQ.cxx:104
 AliFemtoModelCorrFctnTrueQ.cxx:105
 AliFemtoModelCorrFctnTrueQ.cxx:106
 AliFemtoModelCorrFctnTrueQ.cxx:107
 AliFemtoModelCorrFctnTrueQ.cxx:108
 AliFemtoModelCorrFctnTrueQ.cxx:109
 AliFemtoModelCorrFctnTrueQ.cxx:110
 AliFemtoModelCorrFctnTrueQ.cxx:111
 AliFemtoModelCorrFctnTrueQ.cxx:112
 AliFemtoModelCorrFctnTrueQ.cxx:113
 AliFemtoModelCorrFctnTrueQ.cxx:114
 AliFemtoModelCorrFctnTrueQ.cxx:115
 AliFemtoModelCorrFctnTrueQ.cxx:116
 AliFemtoModelCorrFctnTrueQ.cxx:117
 AliFemtoModelCorrFctnTrueQ.cxx:118
 AliFemtoModelCorrFctnTrueQ.cxx:119
 AliFemtoModelCorrFctnTrueQ.cxx:120
 AliFemtoModelCorrFctnTrueQ.cxx:121
 AliFemtoModelCorrFctnTrueQ.cxx:122
 AliFemtoModelCorrFctnTrueQ.cxx:123
 AliFemtoModelCorrFctnTrueQ.cxx:124
 AliFemtoModelCorrFctnTrueQ.cxx:125
 AliFemtoModelCorrFctnTrueQ.cxx:126
 AliFemtoModelCorrFctnTrueQ.cxx:127
 AliFemtoModelCorrFctnTrueQ.cxx:128
 AliFemtoModelCorrFctnTrueQ.cxx:129
 AliFemtoModelCorrFctnTrueQ.cxx:130
 AliFemtoModelCorrFctnTrueQ.cxx:131
 AliFemtoModelCorrFctnTrueQ.cxx:132
 AliFemtoModelCorrFctnTrueQ.cxx:133
 AliFemtoModelCorrFctnTrueQ.cxx:134
 AliFemtoModelCorrFctnTrueQ.cxx:135
 AliFemtoModelCorrFctnTrueQ.cxx:136
 AliFemtoModelCorrFctnTrueQ.cxx:137
 AliFemtoModelCorrFctnTrueQ.cxx:138