/****************************************/ /*** ***/ /*** StCosmicMuDstQAMaker ***/ /*** VERSION: 1.0 ***/ /*** AUTHOR: Nikita Ermakov ***/ /*** Eugenia Khiznyak ***/ /*** DATE: UNKNOWN ***/ /*** E-MAIL: coffe92@gmail.com ***/ /*** ***/ /****************************************/ #ifndef STCOSMICMUDSTQAMAKER_HH #define STCOSMICMUDSTQAMAKER_HH #include "StMaker.h" #include "StThreeVector.hh" #include "StThreeVectorF.hh" #include "StPhysicalHelixD.hh" #include "StRefMultCorr/StRefMultCorr.h" #include "StMuDSTMaker/COMMON/StMuDstMaker.h" #include "StMuDSTMaker/COMMON/StMuDst.h" #include "StMuDSTMaker/COMMON/StMuEvent.h" #include "StMuDSTMaker/COMMON/StMuTrack.h" #include "StMuDSTMaker/COMMON/StMuPrimaryVertex.h" #include "StMuDSTMaker/COMMON/StMuBTofPidTraits.h" #include "StMuDSTMaker/COMMON/StMuBTofHit.h" #include #include #include #include #include #include #include #include #ifndef St_NO_NAMESPACES using namespace std; #endif class StMuDst; class StMuDstMaker; class StMuEvent; class StMuTrack; //_________________ class StCosmicMuDstQAMaker : public StMaker { public: StCosmicMuDstQAMaker(StMuDstMaker *muMaker, const Char_t *oFileName); ~StCosmicMuDstQAMaker(); // // Chain methods // void Clear(Option_t *option = ""); Int_t Init(); Int_t Make(); Int_t Finish(); void CleanVariables(); void SetMuDstMaker(StMuDstMaker *maker); // // Setup event // void SetTriggerId(unsigned int id); void SetVtxZCut(float lo, float hi); void SetVtxRCut(float lo, float hi); void SetVtxShift(float xShift, float yShift); void SetVtxVpdVzDiffCut(float lo, float hi); // // Setup track // void SetP(float lo, float hi); ////////////////////////////////////////////////////////// void SetPhi(float phi); void SetTheta(float teta); ////////////////////////////////////////////////////////// void SetPt(float lo, float hi); void SetTrackNHits(int lo, int hi); void SetTrackNHitsFit(int lo, int hi); void SetTrackEta(float lo, float hi); void SetTrackFlag(short lo, short hi); void SetTrackDCA(float lo, float hi); // // TPC PID // // Pion void SetPionPionNSigma(float lo, float hi); void SetPionKaonNSigma(float lo, float hi); void SetPionProtonNSigma(float lo, float hi); // Kaon void SetKaonPionNSigma(float lo, float hi); void SetKaonKaonNSigma(float lo, float hi); void SetKaonProtonNSigma(float lo, float hi); // Proton void SetProtonPionNSigma(float lo, float hi); void SetProtonKaonNSigma(float lo, float hi); void SetProtonProtonNSigma(float lo, float hi); // // TOF PID // void SetPionMassSqr(float lo, float hi); void SetKaonMassSqr(float lo, float hi); void SetProtonMassSqr(float lo, float hi); // // TOF and TPC momentum threshold // void SetTTTPThreshold(float pThresh); // // Cut methods // Bool_t AcceptTrigger(StMuEvent *muEvent); Bool_t AcceptPrimVtx(StThreeVectorF vtxPos, Float_t vpdVz); Bool_t AcceptTrack(StMuTrack *trk, UShort_t vtxInd); Bool_t IsTofTrack(StMuTrack *trk); private: const char *mFileName; TFile *mOutFile; vector mTriggerIdCollection; // // Global counters // bool mEventIsGood; int mNEventsIn; int mNEventsPassed; bool mIsGoodTrack; float mTTTPThreshold; // // Event cuts // float mPrimVtxZ[2]; float mPrimVtxR[2]; float mPrimVtxVpdVzDiff[2]; float mPrimVtxXShift; float mPrimVtxYShift; // // Single-particle cuts // float mTrackP[2]; ////////////////////////////////////////////////////////// float mPhi; float mTheta; ////////////////////////////////////////////////////////// float mTrackPt[2]; float mTrackDca[2]; float mTrackDcaGlobal[2]; unsigned short mTrackNHits[2]; unsigned short mTrackNHitsFit[2]; float mTrackEta[2]; short mTrackFlag[2]; // // TPC NSigma // // Pion float mPionPionNSigma[2]; float mPionKaonNSigma[2]; float mPionProtonNSigma[2]; // Kaon float mKaonPionNSigma[2]; float mKaonKaonNSigma[2]; float mKaonProtonNSigma[2]; // Proton float mProtonPionNSigma[2]; float mProtonKaonNSigma[2]; float mProtonProtonNSigma[2]; // // TOF Mass // float mPionMass[2]; float mKaonMass[2]; float mProtonMass[2]; // // Pointers to classes // StMuPrimaryVertex *mPrimVertex; StMuTrack *mPrimTrack; StMuTrack *mGlobTrack; StMuDstMaker *mMuDstMaker; StMuEvent *mMuEvent; StMuDst *mMuDst; // // Histograms // // // General event distributions // TH1F *hR; TH1F *hVx; TH1F *hVy; TH1F *hVz; TH2F *hVxVsVy; TH2F *hVxVsVz; TH2F *hVyVsVz; TH1S *hNPrimTr; TH1S *hNGlobTr; TH1S *hTofRefMult; TH2S *hTofRefMultVsRefMult; TH1F *hRefMult; TH1F *hVpd; TH1F *hVpdVz; TH1C *hNPrimVtx; // // General track distributions // TH1F *hP; ////////////////////////////////////////////////////////// TH1F *hTheta; TH1F *hPhi; TH2F *hThetaPhi; TH2F *hEtaPhi; ////////////////////////////////////////////////////////// TH1F *hPt; TH1F *hPx; TH1F *hPy; TH1F *hPz; TH1F *hEta; TH2F *hMassSqrVsPt; TH2F *hDedxVsPt; TH2F *hInvBetaExpVsPt; TH2F *hInvBetaThVsPt; TH1F *hTOF; // // Trigger // unsigned int mCurrentTrigger; ClassDef(StCosmicMuDstQAMaker, 1) }; #endif