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