00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "StHbtMaker/CorrFctn/MinvCorrFctnM_vs_Phi.h"
00022
00023 #include <cstdio>
00024
00025 #ifdef __ROOT__
00026 ClassImp(MinvCorrFctnM_vs_Phi)
00027 #endif
00028
00029
00030 MinvCorrFctnM_vs_Phi::MinvCorrFctnM_vs_Phi(char* title,
00031 const int& nbins1, const float& MinvLo1, const float& MinvHi1,
00032 const int& nbins2, const float& MinvLo2, const float& MinvHi2){
00033
00034 char theTitle[100];
00035 char* TitNum = "MinvCorrFctnM_vs_Phi_Num";
00036 sprintf(theTitle,"Num %s",title);
00037 mNumerator = new StHbt2DHisto(TitNum,theTitle,nbins1,MinvLo1,MinvHi1,nbins2,MinvLo2,MinvHi2);
00038
00039 char* TitDen = "MinvCorrFctnM_vs_Phi_Den";
00040 sprintf(theTitle,"Den %s",title);
00041 mDenominator = new StHbt2DHisto(TitDen,theTitle,nbins1,MinvLo1,MinvHi1,nbins2,MinvLo2,MinvHi2);
00042
00043 char* TitDif = "MinvCorrFctnM_vs_Phi_Dif";
00044 sprintf(theTitle,"Dif %s",title);
00045 mDifference = new StHbt2DHisto(TitDif,theTitle,nbins1,MinvLo1,MinvHi1,nbins2,MinvLo2,MinvHi2);
00046
00047
00048
00049 mNumerator->Sumw2();
00050 mDenominator->Sumw2();
00051 mDifference->Sumw2();
00052
00053 mNumerator->SetDirectory(0);
00054 mDenominator->SetDirectory(0);
00055 mDifference->SetDirectory(0);
00056
00057 }
00058
00059
00060 MinvCorrFctnM_vs_Phi::~MinvCorrFctnM_vs_Phi(){
00061 delete mNumerator;
00062 delete mDenominator;
00063 delete mDifference;
00064 }
00065
00066 void MinvCorrFctnM_vs_Phi::Finish(){
00067
00068
00069
00070
00071
00072
00073
00074 double NumeratorInt = mNumerator->Integral();
00075 double DenominatorInt = mDenominator->Integral();
00076 mDifference->Add(mNumerator,mDenominator,1.0,-1*NumeratorInt/DenominatorInt);
00077
00078 }
00079
00080
00081 StHbtString MinvCorrFctnM_vs_Phi::Report(){
00082 string stemp = "Minv Correlation Function Report:\n";
00083 char ctemp[100];
00084 sprintf(ctemp,"Number of entries in numerator:\t%E\n",mNumerator->GetEntries());
00085 stemp += ctemp;
00086 sprintf(ctemp,"Number of entries in denominator:\t%E\n",mDenominator->GetEntries());
00087 stemp += ctemp;
00088 sprintf(ctemp,"Number of entries in difference:\t%E\n",mDifference->GetEntries());
00089 stemp += ctemp;
00090 StHbtString returnThis = stemp;
00091 return returnThis;
00092 }
00093
00094 void MinvCorrFctnM_vs_Phi::AddRealPair(const StHbtPair* pair){
00095 mNumerator->Fill( pair->mInv(), pair->fourMomentumSum().vect().phi(), 1.);
00096 }
00097
00098 void MinvCorrFctnM_vs_Phi::AddMixedPair(const StHbtPair* pair){
00099 mDenominator->Fill( pair->mInv(), pair->fourMomentumSum().vect().phi(), 1.);
00100 }
00101
00102