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