00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "StHbtMaker/Cut/ManyPairCuts.h"
00025 #include <string>
00026 #include <cstdio>
00027
00028 #ifdef __ROOT__
00029 ClassImp(ManyPairCuts)
00030 #endif
00031
00032
00033 ManyPairCuts::ManyPairCuts(){
00034 mNPairsPassed = mNPairsFailed = 0;
00035 }
00036
00037
00038
00039
00040
00041 bool ManyPairCuts::Pass(const StHbtPair* pair){
00042
00043
00044 for (StHbtPairCutIterator iter=mPairCutCollection.begin();iter!=mPairCutCollection.end();iter++){
00045 if (!((*iter)->Pass(pair))){
00046 mNPairsFailed++;
00047 return false;
00048 }
00049 }
00050
00051 mNPairsPassed++;
00052 return true;
00053 }
00054
00055 StHbtString ManyPairCuts::Report(){
00056 string Stemp = "ManyPairCuts Report\n";
00057 char Ctemp[100];
00058 sprintf(Ctemp,"Number of pairs which passed:\t%li Number which failed:\t%li\n",mNPairsPassed,mNPairsFailed);
00059 Stemp += Ctemp;
00060 sprintf(Ctemp,"Here are the reports from the\t%i PairCuts in the collection\n",mPairCutCollection.size());
00061 Stemp += Ctemp;
00062
00063 for (StHbtPairCutIterator iter=mPairCutCollection.begin();iter!=mPairCutCollection.end();iter++){
00064 Stemp += (*iter)->Report();
00065 }
00066 StHbtString returnThis = Stemp;
00067 return returnThis;
00068 }
00069