00001
00010 #ifndef STMTDTRACKINGMASKMAKER_HH
00011 #define STMTDTRACKINGMASKMAKER_HH
00012
00013 #include "StMaker.h"
00014 #include "StMtdUtil/StMtdConstants.h"
00015
00016 class TH1F;
00017 class TH2F;
00018
00019 class StEvent;
00020 class StTriggerData;
00021 class StMtdHit;
00022
00023 class StMuDst;
00024 class StMuMtdHit;
00025
00026 class StMtdTrackingMaskMaker : public StMaker {
00027 public:
00028
00029 StMtdTrackingMaskMaker(const Char_t *name = "StMtdTrackingMaskMaker");
00030 ~StMtdTrackingMaskMaker();
00031
00032 Int_t Init();
00033 Int_t InitRun(const Int_t runNumber);
00034 void Clear(Option_t *option="");
00035 Int_t Make();
00036 void setSaveHistos(const bool save) { mSaveHistos = save; }
00037
00038 UInt_t getTrackingMask() { return mTpcSectorsForTracking; }
00039
00040 void processTriggerData();
00041 void findFriedTpcSector();
00042
00043 bool isMtdHitFiredTrigger(const StMtdHit *hit);
00044 bool isMtdHitFiredTrigger(const StMuMtdHit *hit);
00045 bool isQTFiredTrigger(const int qt, const int pos);
00046
00047 void determineTpcTrackingMask();
00048 void findTpcSectorsForTracking(const double hit_phi, const int hit_module);
00049
00050 typedef vector<int> IntVec;
00051 IntVec findWestTpcSectors(const double hit_phi);
00052 IntVec findEastTpcSectors(const double hit_phi);
00053
00054 virtual const char *GetCVS() const {
00055 static const char cvs[]="Tag $Name: $Id: built "__DATE__ " "__TIME__ ; return cvs;}
00056
00057 private:
00058 Int_t processStEvent();
00059 Int_t processMuDst();
00060 void bookHistos();
00061
00062 double getMtdHitGlobalPhi(const int backleg, const int module, const int cell);
00063 double rotatePhi(const double phi);
00064
00065 StEvent *mStEvent;
00066 StMuDst *mMuDst;
00067 IntVec mTriggerIDs;
00068 bool mIsDiMuon;
00069 StTriggerData *mTrigData;
00070
00071 int mModuleToQT[gMtdNBacklegs][gMtdNModules];
00072 int mModuleToQTPos[gMtdNBacklegs][gMtdNModules];
00073 int mTrigQTpos[4][2];
00074
00075 IntVec mFiredSectors;
00076 UInt_t mTpcSectorsForTracking;
00077
00078
00079
00080 bool mSaveHistos;
00081 TH1F *mhEventStat;
00082 TH1F *mhNQTsignals;
00083 TH1F *mhNMIXsignals;
00084 TH1F *mhNMuons;
00085 TH1F *mhNMtdHits;
00086 TH1F *mhNTrigMtdHits;
00087 TH1F *mhNTpcSectorForTracking;
00088
00089 ClassDef(StMtdTrackingMaskMaker, 0)
00090 };
00091
00092
00093 #endif
00094
00095
00096
00097
00098
00099
00100
00101