00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "StHbtMaker/CorrFctn/AverageSepCorrFctn.h"
00021 #include <cstdio>
00022
00023 #ifdef __ROOT__
00024 ClassImp(AverageSepCorrFctn)
00025 #endif
00026
00027
00028
00029 AverageSepCorrFctn::AverageSepCorrFctn(char* title, const int& nbinsQ, const float& QLo, const float& QHi,
00030 const int& nbinsExSep, const float& ExSepLo, const float& ExSepHi){
00031
00032 char Tit[100];
00033 sprintf(Tit,"2DNum");
00034 strcat(Tit,title);
00035 mNumerator2D = new StHbt2DHisto(Tit,title,nbinsQ,QLo,QHi,nbinsExSep,ExSepLo,ExSepHi);
00036
00037
00038 sprintf(Tit,"2DDen");
00039 strcat(Tit,title);
00040 mDenominator2D = new StHbt2DHisto(Tit,title,nbinsQ,QLo,QHi,nbinsExSep,ExSepLo,ExSepHi);
00041
00042
00043 sprintf(Tit,"2DRat");
00044 strcat(Tit,title);
00045 mRatio2D = new StHbt2DHisto(Tit,title,nbinsQ,QLo,QHi,nbinsExSep,ExSepLo,ExSepHi);
00046
00047
00048 mNumerator2D->Sumw2();
00049 mDenominator2D->Sumw2();
00050 mRatio2D->Sumw2();
00051
00052 }
00053
00054
00055 AverageSepCorrFctn::~AverageSepCorrFctn(){
00056 delete mNumerator2D;
00057 delete mDenominator2D;
00058 delete mRatio2D;
00059 }
00060
00061 void AverageSepCorrFctn::Finish(){
00062 mRatio2D->Divide(mNumerator2D,mDenominator2D,1.0,1.0);
00063 }
00064
00065
00066 StHbtString AverageSepCorrFctn::Report(){
00067 string stemp = "Average Seperation Correlation Function Report:\n";
00068 char ctemp[100];
00069 sprintf(ctemp,"Number of entries in numerator:\t%E\n",
00070 mNumerator2D->GetEntries());
00071 stemp += ctemp;
00072 sprintf(ctemp,"Number of entries in denominator:\t%E\n",
00073 mDenominator2D->GetEntries());
00074 stemp += ctemp;
00075 StHbtString returnThis = stemp;
00076 return returnThis;
00077 }
00078
00079 void AverageSepCorrFctn::AddRealPair(const StHbtPair* pair){
00080
00081
00082
00083
00084
00085
00086
00087
00088 double aveSep = pair->NominalTpcAverageSeparation();
00089 double Qinv = fabs(pair->qInv());
00090
00091 mNumerator2D->Fill(Qinv,aveSep,1.0);
00092 }
00093
00094 void AverageSepCorrFctn::AddMixedPair(const StHbtPair* pair){
00095
00096 double aveSep = pair->NominalTpcAverageSeparation();
00097 double Qinv = fabs(pair->qInv());
00098
00099 mDenominator2D->Fill(Qinv,aveSep,1.0);
00100 }
00101