00001
00002
00003 #ifndef STAR_StHitFilterMaker
00004 #define STAR_StHitFilterMaker
00005
00020 #ifndef StMaker_H
00021 #include "StMaker.h"
00022 #endif
00023
00024
00025
00026 #include <vector>
00027 #ifndef ST_NO_NAMESPACES
00028 using std::vector;
00029 #endif
00030 class StTrackNode;
00031 class StTrack;
00032 class StHit;
00033
00034 class StEvent;
00035
00036 class StHitFilterMaker : public StMaker {
00037 private:
00038
00039 Double_t mPtLowerCut;
00040 Double_t mPtUpperCut;
00041 Double_t mAbsEtaCut;
00042 Double_t mAbsZVertCut;
00043
00044 protected:
00045
00046
00047 public:
00048 StHitFilterMaker(const char *name="StHitFilterMaker",Double_t ptLowerCut=1.5,Double_t ptUpperCut=-1, Double_t absEtaCut=1., Double_t absZVertCut=999.);
00049 virtual ~StHitFilterMaker();
00050 virtual Int_t Init();
00051 virtual Int_t Make();
00052 bool accept(StEvent *);
00053 bool accept(StTrack *);
00054 bool accept(StHit *);
00055
00056 bool removeTpcHitsNotOnTracks(StEvent *, vector<StTrackNode*>&);
00057 bool removeSvtHitsNotOnTracks(StEvent *, vector<StTrackNode*>&);
00058 bool removeBadSvtHits(StEvent *);
00059 void setPtLowerCut(Double_t pt) {mPtLowerCut = pt;}
00060 void setPtUpperCut(Double_t pt) {mPtUpperCut = pt;}
00061 void setAbsEtaCut(Double_t eta) {mAbsEtaCut = eta;}
00062 void setAbsZVertCut(Double_t zvert) {mAbsZVertCut = zvert;}
00063 Double_t ptLowerCut() { return mPtLowerCut;}
00064 Double_t ptUpperCut() { return mPtUpperCut;}
00065 Double_t absEtaCut() { return mAbsEtaCut;}
00066 Double_t absZVertCut() { return mAbsZVertCut;}
00067
00068
00069
00070
00072 virtual const char *GetCVS() const {
00073 static const char cvs[]="Tag $Name: $ $Id: StHitFilterMaker.h,v 1.4 2004/04/08 19:28:55 caines Exp $ built "__DATE__" "__TIME__ ;
00074 return cvs;
00075 }
00076
00077
00078 ClassDef(StHitFilterMaker,0)
00079 };
00080
00081 #endif
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098