00001
00011 #ifndef STMTDEVTFILTERMAKER_HH
00012 #define STMTDEVTFILTERMAKER_HH
00013
00014 #include "StMaker.h"
00015 class TH1F;
00016 class TH2F;
00017
00018 class StEvent;
00019 class StTrack;
00020 class StMtdHit;
00021
00022 class StMuDst;
00023 class StMuTrack;
00024 class StMuMtdHit;
00025
00026
00027 class StMtdEvtFilterMaker : public StMaker {
00028 public:
00029 StMtdEvtFilterMaker(const Char_t *name = "StMtdEvtFilterMaker");
00030 ~StMtdEvtFilterMaker();
00031
00032 Int_t Init();
00033 Int_t InitRun(const Int_t runNumber);
00034 Int_t Make();
00035
00036
00037 void setSaveHistos(const bool save) { mSaveHistos = save; }
00038 bool isRejectEvent();
00039 int shouldHaveRejectEvent();
00040
00041 bool isMuonCandidate(StTrack *track);
00042 bool isMuonCandidate(StMuTrack *track);
00043
00044
00045 void setMinTrackPt(const double min) { mMinTrkPtAll = min; }
00046 void setMinLeadTrackPt(const double min) { mMinTrkPtLead = min; }
00047 void setMinNHitsFit(const int min) { mMinNHitsFit = min; }
00048 void setMinNHitsDedx(const int min) { mMinNHitsDedx = min; }
00049 void setMinFitHitsFraction(const double min) { mMinFitHitsFraction = min; }
00050 void setMaxDca(const double max) { mMaxDca = max; }
00051 void setMaxDeltaZ(const double max) { mMaxDeltaZ = max; }
00052 void setMinMuonCandidates(const int min) { nMinMuonCandidates = min; }
00053 void setNsigmaPiCut(const double min, const double max)
00054 { mMinNsigmaPi = min; mMaxNsigmaPi = max; }
00055
00056 virtual const char *GetCVS() const {
00057 static const char cvs[]="Tag $Name: $Id: built "__DATE__ " "__TIME__ ; return cvs;
00058 }
00059
00060 typedef vector<int> IntVec;
00061
00062
00063 private:
00064 void checkTriggerIDs(const vector<unsigned int> triggers);
00065
00066 int processStEvent();
00067 int processMuDst();
00068 void bookHistos();
00069
00070 bool isValidTrack(StTrack *track);
00071 bool isValidTrack(StMuTrack *track);
00072
00073 StEvent *mStEvent;
00074 StMuDst *mMuDst;
00075 bool mIsJpsiEvent;
00076 IntVec mTriggerIDs;
00077 IntVec mOtherTrigIDs;
00078 bool mIsDiMuon;
00079 bool mIsDiMuonOnly;
00080
00081 double mMinTrkPtAll;
00082 double mMinTrkPtLead;
00083 int mMinNHitsFit;
00084 int mMinNHitsDedx;
00085 double mMinFitHitsFraction;
00086 double mMaxDca;
00087 double mMinNsigmaPi;
00088 double mMaxNsigmaPi;
00089 double mMaxDeltaZ;
00090 int nMinMuonCandidates;
00091
00092
00093
00094 bool mSaveHistos;
00095 TH1F *mhEventStat;
00096 TH1F *mhNMuonCandidates;
00097
00098 ClassDef(StMtdEvtFilterMaker, 0)
00099 };
00100
00101
00102 #endif
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115