00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "StHbtMaker/ThCorrFctn/Th3DQCorrFctn.h"
00017
00018 #ifdef __ROOT__
00019 ClassImp(Th3DQCorrFctn)
00020 #endif
00021
00022 Th3DQCorrFctn::Th3DQCorrFctn(char* aTitle, int aNBins,
00023 double aHLo, double aHHi)
00024 : StHbtThCorrFctn() ,StHbtRoot1DCF(aTitle, aNBins, aHLo, aHHi)
00025 {
00026 char tit[100] = "";
00027
00028 Int_t qnbins = 100;
00029 Float_t qmax = 1.0;
00030 Float_t qmin = -1.0;
00031 Float_t dmin = -0.2;
00032 Float_t dmax = 0.2;
00033 strcpy(tit,"Outdist");
00034 strcat(tit,aTitle);
00035 qOutdist = new StHbt1DHisto(tit,aTitle,qnbins,qmin,qmax);
00036 strcpy(tit,"OutSdist");
00037 strcat(tit,aTitle);
00038 qOutSdist = new StHbt1DHisto(tit,aTitle,qnbins,qmin,qmax);
00039 strcpy(tit,"DeltaOutdist");
00040 strcat(tit,aTitle);
00041 DeltaqOutdist = new StHbt1DHisto(tit,aTitle,qnbins,dmin,dmax);
00042 strcpy(tit,"Sidedist");
00043 strcat(tit,aTitle);
00044 qSidedist = new StHbt1DHisto(tit,aTitle,qnbins,qmin,qmax);
00045 strcpy(tit,"SideSdist");
00046 strcat(tit,aTitle);
00047 qSideSdist = new StHbt1DHisto(tit,aTitle,qnbins,qmin,qmax);
00048 strcpy(tit,"DeltaSidedist");
00049 strcat(tit,aTitle);
00050 DeltaqSidedist = new StHbt1DHisto(tit,aTitle,qnbins,dmin,dmax);
00051 strcpy(tit,"Longdist");
00052 strcat(tit,aTitle);
00053 qLongdist = new StHbt1DHisto(tit,aTitle,qnbins,qmin,qmax);
00054 strcpy(tit,"LongSdist");
00055 strcat(tit,aTitle);
00056 qLongSdist = new StHbt1DHisto(tit,aTitle,qnbins,qmin,qmax);
00057 strcpy(tit,"DeltaLongdist");
00058 strcat(tit,aTitle);
00059 DeltaqLongdist = new StHbt1DHisto(tit,aTitle,qnbins,dmin,dmax);
00060
00061 qOutdist->Sumw2();
00062 qOutSdist->Sumw2();
00063 DeltaqOutdist->Sumw2();
00064 qSidedist->Sumw2();
00065 qSideSdist->Sumw2();
00066 DeltaqSidedist->Sumw2();
00067 qLongdist->Sumw2();
00068 qLongSdist->Sumw2();
00069 DeltaqLongdist->Sumw2();
00070 };
00071
00072 Th3DQCorrFctn::Th3DQCorrFctn(const Th3DQCorrFctn& ThCf)
00073 : StHbtThCorrFctn(ThCf),StHbtRoot1DCF( ThCf)
00074 { }
00075
00076 Th3DQCorrFctn::~Th3DQCorrFctn()
00077 { };
00078
00079
00080 void Th3DQCorrFctn::AddNum(StHbtThPair* aThPair){
00081
00082 double tQInv=fabs(aThPair->GetMeasPair()->KStar());
00083 if(tQInv>=mHLo && tQInv<=mHHi){
00084 mNumerator->Fill(tQInv,aThPair->GetWeightNum());
00085 }
00086 }
00087
00088 void Th3DQCorrFctn::AddDen(StHbtThPair* aThPair){
00089
00090 double tQInv=2*fabs(aThPair->GetMeasPair()->KStar());
00091 if(tQInv>=mHLo && tQInv<=mHHi){
00092 mDenominator->Fill(tQInv,aThPair->GetWeightDen());
00093
00094 }
00095 if (tQInv<0.1) {
00096 double qOut = aThPair->GetMeasPair()->qOutCMS();
00097 double qSide = aThPair->GetMeasPair()->qSideCMS();
00098 double qLong = aThPair->GetMeasPair()->qLongCMS();
00099
00100 double RqOut = aThPair->RealqOutCMS();
00101 double RqSide = aThPair->RealqSideCMS();
00102 double RqLong = aThPair->RealqLongCMS();
00103
00104 qOutdist->Fill(qOut);
00105 qOutSdist->Fill(RqOut);
00106 DeltaqOutdist->Fill(qOut - RqOut);
00107 qSidedist->Fill(qSide);
00108 qSideSdist->Fill(RqSide);
00109 DeltaqSidedist->Fill(qSide - RqSide);
00110 qLongdist->Fill(qLong);
00111 qLongSdist->Fill(RqLong);
00112 DeltaqLongdist->Fill(qLong - RqLong);
00113 }
00114 }
00115
00116 void Th3DQCorrFctn::Finish(){
00117 StHbtRoot1DCF::Finish();
00118 }
00119
00120 inline StHbt1DHisto* Th3DQCorrFctn::Numerator() const { cout << "Return Ratio" << endl; return mNumerator;};
00121 inline StHbt1DHisto* Th3DQCorrFctn::Denominator() const {cout << "Return Denimnatior" << endl; return mDenominator;};
00122 inline StHbt1DHisto* Th3DQCorrFctn::Ratio() const {cout << "Return Numerator" << endl; return mRatio;};
00123 inline void Th3DQCorrFctn::Write() {
00124 mNumerator->Write();mDenominator->Write();mRatio->Write();
00125 qOutdist->Write(); qOutSdist->Write(); DeltaqOutdist->Write();
00126 qSidedist->Write(); qSideSdist->Write(); DeltaqSidedist->Write();
00127 qLongdist->Write(); qLongSdist->Write(); DeltaqLongdist->Write();
00128 };
00129
00130 inline StHbtThCorrFctn* Th3DQCorrFctn::ThClone() const {return new Th3DQCorrFctn(*this);}