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/Cut/HitMergingPairCut.h"
00027 #include "Infrastructure/StHbtPair.hh"
00028 #include <string>
00029 #include <cstdio>
00030 #include <Stsstream.h>
00031
00032 #ifdef __ROOT__
00033 ClassImp(HitMergingPairCut)
00034 #endif
00035
00036
00037 HitMergingPairCut::HitMergingPairCut(){
00038 mNPairsPassed = mNPairsFailed = 0;
00039 mMaxFracPair= 0.2;
00040 setDefaultHalfFieldMergingPar();
00041 }
00042
00043
00044
00045
00046
00047 void HitMergingPairCut::setMergingPar(double aMaxDuInner, double aMaxDzInner,
00048 double aMaxDuOuter, double aMaxDzOuter){
00049 StHbtPair tPair;
00050 tPair.setMergingPar(aMaxDuInner, aMaxDzInner,
00051 aMaxDuOuter, aMaxDzOuter);
00052 }
00053 void HitMergingPairCut::setDefaultFullFieldMergingPar(){
00054 StHbtPair tPair;
00055 tPair.setDefaultFullFieldMergingPar();
00056 }
00057 void HitMergingPairCut::setDefaultHalfFieldMergingPar(){
00058 StHbtPair tPair;
00059 tPair.setDefaultHalfFieldMergingPar();
00060 }
00061
00062
00063 bool HitMergingPairCut::Pass(const StHbtPair* pair){
00064 bool temp = pair->getFracOfMergedRow()<mMaxFracPair;
00065 temp ? mNPairsPassed++ : mNPairsFailed++;
00066 return temp;
00067 }
00068
00069 StHbtString HitMergingPairCut::Report(){
00070 string Stemp = "HitMerging Pair Cut - total dummy-- always returns true\n";
00071 char Ctemp[100];
00072 sprintf(Ctemp,"Number of pairs which passed:\t%ld Number which failed:\t%ld\n",mNPairsPassed,mNPairsFailed);
00073 Stemp += Ctemp;
00074 StHbtString returnThis = Stemp;
00075 return returnThis;
00076 }
00077
00078 ostrstream* HitMergingPairCut::finalReport() const{
00079 ostrstream* tFinalReport = new ostrstream;
00080 (*tFinalReport) << "_____ HitMerging pair Cut _____ " << endl
00081 << " N pairs passed : " << mNPairsPassed << endl
00082 << " N pairs failed : " << mNPairsFailed << endl
00083 << ends;
00084 return tFinalReport;
00085 }