StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
franksTrackCut.h
1  /***************************************************************************
2  *
3  *
4  *
5  * Author: Frank Laue, Ohio State, laue@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: StHbtMaker package
9  * a simple particle cut that selects on phasespace, #hits, DCA, and PID
10  *
11  ***************************************************************************
12  *
13  *
14  *
15  **************************************************************************/
16 
17 #ifndef franksTrackCut_hh
18 #define franksTrackCut_hh
19 
20 
21 //#ifndef StMaker_H
22 //#include "StMaker.h"
23 //#endif
24 
25 #include <Stsstream.h>
26 #include "StHbtMaker/Base/StHbtTrackCut.h"
27 
29 {
30 
31  public:
32 
35  ~franksTrackCut();
36 
37  virtual bool Pass(const StHbtTrack*);
38 
39  virtual StHbtString Report();
40 
41 
42  void SetPidProbElectron(const float& lo, const float& hi);
43  void SetPidProbPion(const float& lo, const float& hi);
44  void SetPidProbKaon(const float& lo, const float& hi);
45  void SetPidProbProton(const float& lo, const float& hi);
46  void SetNSigmaElectron(const float& lo, const float& hi);
47  void SetNSigmaPion(const float& lo, const float& hi);
48  void SetNSigmaKaon(const float& lo, const float& hi);
49  void SetNSigmaProton(const float& lo, const float& hi);
50  void SetNSigmaAntiElectron(const float& lo, const float& hi);
51  void SetNSigmaAntiPion(const float& lo, const float& hi);
52  void SetNSigmaAntiKaon(const float& lo, const float& hi);
53  void SetNSigmaAntiProton(const float& lo, const float& hi);
54 
55 
56  void SetNHits(const int& lo, const int& hi);
57  void SetNdEdxHits(const int& lo, const int& hi);
58  void SetP(const float& lo, const float& hi);
59  void SetPt(const float& lo, const float& hi);
60  void SetPx(const float& lo, const float& hi);
61  void SetPy(const float& lo, const float& hi);
62  void SetPz(const float& lo, const float& hi);
63  void SetRapidity(const float& lo, const float& hi);
64  void SetEta(const float& lo, const float& hi);
65  void SetDCA(const float& lo, const float& hi);
66  void SetDCAGlobal(const float& lo, const float& hi);
67  void SetCharge(const int&);
68 
69  franksTrackCut* Clone();
70 
71  std::ostringstream* finalReport() const;
72 
73  //private: // here are the quantities I want to cut on...
74  protected:
75  int mCharge;
76  float mPidProbElectron[2];
77  float mPidProbPion[2];
78  float mPidProbKaon[2];
79  float mPidProbProton[2];
80  float mNSigmaElectron[2];
81  float mNSigmaPion[2];
82  float mNSigmaKaon[2];
83  float mNSigmaProton[2];
84  float mNSigmaAntiElectron[2];
85  float mNSigmaAntiPion[2];
86  float mNSigmaAntiKaon[2];
87  float mNSigmaAntiProton[2];
88  int mNHits[2];
89  int mNdEdxHits[2];
90  float mP[2];
91  float mPt[2];
92  float mPx[2];
93  float mPy[2];
94  float mPz[2];
95  float mRapidity[2];
96  float mEta[2];
97  float mDCA[2];
98  float mDCAGlobal[2];
99 
100  protected:
101  long mNTracksPassed;
102  long mNTracksFailed;
103 
104 #ifdef __ROOT__
105  ClassDef(franksTrackCut, 1)
106 #endif
107 };
108 
109 
110 inline void franksTrackCut::SetPidProbElectron(const float& lo, const float& hi){mPidProbElectron[0]=lo; mPidProbElectron[1]=hi;}
111 inline void franksTrackCut::SetPidProbPion(const float& lo, const float& hi){mPidProbPion[0]=lo; mPidProbPion[1]=hi;}
112 inline void franksTrackCut::SetPidProbKaon(const float& lo, const float& hi){mPidProbKaon[0]=lo; mPidProbKaon[1]=hi;}
113 inline void franksTrackCut::SetPidProbProton(const float& lo, const float& hi){mPidProbProton[0]=lo; mPidProbProton[1]=hi;}
114 inline void franksTrackCut::SetNSigmaElectron(const float& lo, const float& hi){mNSigmaElectron[0]=lo; mNSigmaElectron[1]=hi;}
115 inline void franksTrackCut::SetNSigmaPion(const float& lo, const float& hi){mNSigmaPion[0]=lo; mNSigmaPion[1]=hi;}
116 inline void franksTrackCut::SetNSigmaKaon(const float& lo, const float& hi){mNSigmaKaon[0]=lo; mNSigmaKaon[1]=hi;}
117 inline void franksTrackCut::SetNSigmaProton(const float& lo, const float& hi){mNSigmaProton[0]=lo; mNSigmaProton[1]=hi;}
118 inline void franksTrackCut::SetNSigmaAntiElectron(const float& lo, const float& hi){
119  mNSigmaAntiElectron[0]=lo; mNSigmaAntiElectron[1]=hi;}
120 inline void franksTrackCut::SetNSigmaAntiPion(const float& lo, const float& hi){
121  mNSigmaAntiPion[0]=lo; mNSigmaAntiPion[1]=hi;}
122 inline void franksTrackCut::SetNSigmaAntiKaon(const float& lo, const float& hi){
123  mNSigmaAntiKaon[0]=lo; mNSigmaAntiKaon[1]=hi;}
124 inline void franksTrackCut::SetNSigmaAntiProton(const float& lo, const float& hi){
125  mNSigmaAntiProton[0]=lo; mNSigmaAntiProton[1]=hi;}
126 
127 inline void franksTrackCut::SetNHits(const int& lo, const int& hi){mNHits[0]=lo;mNHits[1]=hi;}
128 inline void franksTrackCut::SetNdEdxHits(const int& lo, const int& hi){mNdEdxHits[0]=lo;mNdEdxHits[1]=hi;}
129 inline void franksTrackCut::SetP(const float& lo, const float& hi){mP[0]=lo; mP[1]=hi;}
130 inline void franksTrackCut::SetPt(const float& lo, const float& hi){mPt[0]=lo; mPt[1]=hi;}
131 inline void franksTrackCut::SetPx(const float& lo, const float& hi){mPx[0]=lo; mPx[1]=hi;}
132 inline void franksTrackCut::SetPy(const float& lo, const float& hi){mPy[0]=lo; mPy[1]=hi;}
133 inline void franksTrackCut::SetPz(const float& lo, const float& hi){mPz[0]=lo; mPz[1]=hi;}
134 inline void franksTrackCut::SetRapidity(const float& lo,const float& hi){mRapidity[0]=lo; mRapidity[1]=hi;}
135 inline void franksTrackCut::SetEta(const float& lo,const float& hi){mEta[0]=lo; mEta[1]=hi;}
136 inline void franksTrackCut::SetDCA(const float& lo,const float& hi){mDCA[0]=lo; mDCA[1]=hi;}
137 inline void franksTrackCut::SetDCAGlobal(const float& lo,const float& hi){mDCAGlobal[0]=lo; mDCAGlobal[1]=hi;}
138 inline void franksTrackCut::SetCharge(const int& ch){mCharge = ch;}
139 inline franksTrackCut* franksTrackCut::Clone() { franksTrackCut* c = new franksTrackCut(*this); return c;}
140 
141 #endif