00001
00002
00003
00004
00005
00006
00007
00008 #include "StMuFilter.h"
00009 #include "StEvent/StTrack.h"
00010 #include "StEvent/StTrackGeometry.h"
00011 #include "StEvent/StTrackDetectorInfo.h"
00012 #include "StEvent/StContainers.h"
00013 #include "StEvent/StDedxPidTraits.h"
00014 #include "TMath.h"
00015 #define __MIN_HITS_TPC__ 11
00016 #define __MIN_HITS_FTPC__ 5
00017
00018
00019 ClassImp(StMuFilter)
00020
00021 bool StMuFilter::accept( const StEvent* e) { cout << "StMuFilter::accept( const StEvent* e) not overwritten, returning true" << endl; return true;}
00022 bool StMuFilter::accept( const StV0Vertex* v) { cout << "StMuFilter::accept(const StV0Vertex* v) not overwritten, returning true" << endl; return true;}
00023 bool StMuFilter::accept( const StXiVertex* x) { cout << "StMuFilter::accept(const StXiVertex* x) not overwritten, returning true" << endl; return true;}
00024 bool StMuFilter::accept( const StKinkVertex* k) { cout << "StMuFilter::accept(const StKinkVertex* k) not overwritten, returning true" << endl; return true;}
00025 bool StMuFilter::accept( const StV0MuDst* v) { cout << "StMuFilter::accept(const StV0MuDst* v) not overwritten, returning true" << endl; return true;}
00026 bool StMuFilter::accept( const StXiMuDst* x) { cout << "StMuFilter::accept(const StXiMuDst* x) not overwritten, returning true" << endl; return true;}
00027 bool StMuFilter::accept( const StKinkMuDst* k) { cout << "StMuFilter::accept(const StKinkMuDst* k) not overwritten, returning true" << endl; return true;}
00028
00029
00030
00031 bool StMuFilter::accept(const StTrack* track) {
00032
00036 bool method = false;
00037 if (mEncodedMethods.size()) {
00038 for ( UnsignedShortIterator iter = mEncodedMethods.begin(); iter!=mEncodedMethods.end(); iter++) {
00039
00040 if (track->encodedMethod() == *iter) method=true;
00041 }
00042 if (!method) return false;
00043 }
00044
00045 if ( !track->detectorInfo() ) return false;
00046 if ( TMath::Abs(track->flag())%100 == 11) return true;
00047 if ( track->detectorInfo()->numberOfPoints(kTpcId)<__MIN_HITS_TPC__ &&
00048 track->detectorInfo()->numberOfPoints(kFtpcWestId)<__MIN_HITS_FTPC__ &&
00049 track->detectorInfo()->numberOfPoints(kFtpcEastId)<__MIN_HITS_FTPC__
00050 ) return false;
00051
00052 return true;
00053 }
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075