StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMtdEvtFilterMaker.h
1 
11 #ifndef STMTDEVTFILTERMAKER_HH
12 #define STMTDEVTFILTERMAKER_HH
13 
14 #include "StMaker.h"
15 class TH1F;
16 class TH2F;
17 
18 class StEvent;
19 class StTrack;
20 class StMtdHit;
21 
22 class StMuDst;
23 class StMuTrack;
24 class StMuMtdHit;
25 
26 
27 class StMtdEvtFilterMaker : public StMaker {
28  public:
29  StMtdEvtFilterMaker(const Char_t *name = "StMtdEvtFilterMaker");
31 
32  Int_t Init();
33  Int_t InitRun(const Int_t runNumber);
34  Int_t Make();
35 
36 
37  void setSaveHistos(const bool save) { mSaveHistos = save; }
38  bool isRejectEvent();
40 
42  bool isMuonCandidate(StMuTrack *track);
43 
44  // setting functions
45  void setMinTrackPt(const double min) { mMinTrkPtAll = min; }
46  void setMinLeadTrackPt(const double min) { mMinTrkPtLead = min; }
47  void setMinNHitsFit(const int min) { mMinNHitsFit = min; }
48  void setMinNHitsDedx(const int min) { mMinNHitsDedx = min; }
49  void setMinFitHitsFraction(const double min) { mMinFitHitsFraction = min; }
50  void setMaxDca(const double max) { mMaxDca = max; }
51  void setMaxDeltaZ(const double max) { mMaxDeltaZ = max; }
52  void setMinMuonCandidates(const int min) { nMinMuonCandidates = min; }
53  void setNsigmaPiCut(const double min, const double max)
54  { mMinNsigmaPi = min; mMaxNsigmaPi = max; }
55 
56  virtual const char *GetCVS() const {
57  static const char cvs[]="Tag $Name: $Id: built " __DATE__ " " __TIME__ ; return cvs;
58  }
59 
60  typedef vector<int> IntVec;
61 
62 
63  private:
64  void checkTriggerIDs(const vector<unsigned int> triggers);
65 
66  int processStEvent();
67  int processMuDst();
68  void bookHistos();
69 
70  bool isValidTrack(StTrack *track);
71  bool isValidTrack(StMuTrack *track);
72 
73  StEvent *mStEvent; // StEvent pointer
74  StMuDst *mMuDst; // MuDst pointer
75  bool mIsJpsiEvent; // Flag of interesting events
76  IntVec mTriggerIDs; // Di-muon trigger id
77  IntVec mOtherTrigIDs; // Single-muon and e-mu trigger id
78  bool mIsDiMuon; // Flag if a event is triggered by di-muon trigger
79  bool mIsDiMuonOnly; // Flag if a event is ONLY triggered by di-muon trigger
80 
81  double mMinTrkPtAll; // Minimum pt for all tracks
82  double mMinTrkPtLead; // Minimum pt for leading tracks
83  int mMinNHitsFit; // Minimum number of hits used for track fit
84  int mMinNHitsDedx; // Minimum number of hits used for de/dx
85  double mMinFitHitsFraction; // Minimum fraction of # of hits used for fit out of # of possible hits
86  double mMaxDca; // Maximum track dca
87  double mMinNsigmaPi; // Minimum nsigma for pion assumption
88  double mMaxNsigmaPi; // Maximum nsigma for pion assumption
89  double mMaxDeltaZ; // Maximum dz for track-hit pairs
90  int nMinMuonCandidates; // Minimum number of muons
91 
92 
93  // List of histograms
94  bool mSaveHistos;
95  TH1F *mhEventStat;
96  TH1F *mhNMuonCandidates;
97 
98  ClassDef(StMtdEvtFilterMaker, 0)
99 };
100 
101 
102 #endif
103 
104 
105 // $Id: StMtdEvtFilterMaker.h,v 1.3 2015/07/29 01:11:15 smirnovd Exp $
106 // $Log: StMtdEvtFilterMaker.h,v $
107 // Revision 1.3 2015/07/29 01:11:15 smirnovd
108 // C++11 requires a space between user-defined and string literals
109 //
110 // Revision 1.2 2015/04/23 21:10:19 marr
111 // 1. remove dz and pTlead cuts in the filtering by default
112 // 2. change the number scheme for shouldHaveRejectEvent()
113 //
114 // Revision 1.1 2015/04/07 14:10:37 jeromel
115 // First version of StMtdEvtFilterMaker - R.Ma - review closed 2015/04/06
116 //
117 //
118 
This class is used to check number of muon candidates in each event. It runs both on StEvent and MuDs...
bool isMuonCandidate(StTrack *track)