00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef franksTrackCut_hh
00018 #define franksTrackCut_hh
00019
00020
00021
00022
00023
00024
00025 #include <Stsstream.h>
00026 #include "StHbtMaker/Base/StHbtTrackCut.h"
00027
00028 class franksTrackCut : public StHbtTrackCut
00029 {
00030
00031 public:
00032
00033 franksTrackCut();
00034 franksTrackCut(franksTrackCut& );
00035 ~franksTrackCut();
00036
00037 virtual bool Pass(const StHbtTrack*);
00038
00039 virtual StHbtString Report();
00040
00041
00042 void SetPidProbElectron(const float& lo, const float& hi);
00043 void SetPidProbPion(const float& lo, const float& hi);
00044 void SetPidProbKaon(const float& lo, const float& hi);
00045 void SetPidProbProton(const float& lo, const float& hi);
00046 void SetNSigmaElectron(const float& lo, const float& hi);
00047 void SetNSigmaPion(const float& lo, const float& hi);
00048 void SetNSigmaKaon(const float& lo, const float& hi);
00049 void SetNSigmaProton(const float& lo, const float& hi);
00050 void SetNSigmaAntiElectron(const float& lo, const float& hi);
00051 void SetNSigmaAntiPion(const float& lo, const float& hi);
00052 void SetNSigmaAntiKaon(const float& lo, const float& hi);
00053 void SetNSigmaAntiProton(const float& lo, const float& hi);
00054
00055
00056 void SetNHits(const int& lo, const int& hi);
00057 void SetNdEdxHits(const int& lo, const int& hi);
00058 void SetP(const float& lo, const float& hi);
00059 void SetPt(const float& lo, const float& hi);
00060 void SetPx(const float& lo, const float& hi);
00061 void SetPy(const float& lo, const float& hi);
00062 void SetPz(const float& lo, const float& hi);
00063 void SetRapidity(const float& lo, const float& hi);
00064 void SetEta(const float& lo, const float& hi);
00065 void SetDCA(const float& lo, const float& hi);
00066 void SetDCAGlobal(const float& lo, const float& hi);
00067 void SetCharge(const int&);
00068
00069 franksTrackCut* Clone();
00070
00071 ostrstream* finalReport() const;
00072
00073
00074 protected:
00075 int mCharge;
00076 float mPidProbElectron[2];
00077 float mPidProbPion[2];
00078 float mPidProbKaon[2];
00079 float mPidProbProton[2];
00080 float mNSigmaElectron[2];
00081 float mNSigmaPion[2];
00082 float mNSigmaKaon[2];
00083 float mNSigmaProton[2];
00084 float mNSigmaAntiElectron[2];
00085 float mNSigmaAntiPion[2];
00086 float mNSigmaAntiKaon[2];
00087 float mNSigmaAntiProton[2];
00088 int mNHits[2];
00089 int mNdEdxHits[2];
00090 float mP[2];
00091 float mPt[2];
00092 float mPx[2];
00093 float mPy[2];
00094 float mPz[2];
00095 float mRapidity[2];
00096 float mEta[2];
00097 float mDCA[2];
00098 float mDCAGlobal[2];
00099
00100 protected:
00101 long mNTracksPassed;
00102 long mNTracksFailed;
00103
00104 #ifdef __ROOT__
00105 ClassDef(franksTrackCut, 1)
00106 #endif
00107 };
00108
00109
00110 inline void franksTrackCut::SetPidProbElectron(const float& lo, const float& hi){mPidProbElectron[0]=lo; mPidProbElectron[1]=hi;}
00111 inline void franksTrackCut::SetPidProbPion(const float& lo, const float& hi){mPidProbPion[0]=lo; mPidProbPion[1]=hi;}
00112 inline void franksTrackCut::SetPidProbKaon(const float& lo, const float& hi){mPidProbKaon[0]=lo; mPidProbKaon[1]=hi;}
00113 inline void franksTrackCut::SetPidProbProton(const float& lo, const float& hi){mPidProbProton[0]=lo; mPidProbProton[1]=hi;}
00114 inline void franksTrackCut::SetNSigmaElectron(const float& lo, const float& hi){mNSigmaElectron[0]=lo; mNSigmaElectron[1]=hi;}
00115 inline void franksTrackCut::SetNSigmaPion(const float& lo, const float& hi){mNSigmaPion[0]=lo; mNSigmaPion[1]=hi;}
00116 inline void franksTrackCut::SetNSigmaKaon(const float& lo, const float& hi){mNSigmaKaon[0]=lo; mNSigmaKaon[1]=hi;}
00117 inline void franksTrackCut::SetNSigmaProton(const float& lo, const float& hi){mNSigmaProton[0]=lo; mNSigmaProton[1]=hi;}
00118 inline void franksTrackCut::SetNSigmaAntiElectron(const float& lo, const float& hi){
00119 mNSigmaAntiElectron[0]=lo; mNSigmaAntiElectron[1]=hi;}
00120 inline void franksTrackCut::SetNSigmaAntiPion(const float& lo, const float& hi){
00121 mNSigmaAntiPion[0]=lo; mNSigmaAntiPion[1]=hi;}
00122 inline void franksTrackCut::SetNSigmaAntiKaon(const float& lo, const float& hi){
00123 mNSigmaAntiKaon[0]=lo; mNSigmaAntiKaon[1]=hi;}
00124 inline void franksTrackCut::SetNSigmaAntiProton(const float& lo, const float& hi){
00125 mNSigmaAntiProton[0]=lo; mNSigmaAntiProton[1]=hi;}
00126
00127 inline void franksTrackCut::SetNHits(const int& lo, const int& hi){mNHits[0]=lo;mNHits[1]=hi;}
00128 inline void franksTrackCut::SetNdEdxHits(const int& lo, const int& hi){mNdEdxHits[0]=lo;mNdEdxHits[1]=hi;}
00129 inline void franksTrackCut::SetP(const float& lo, const float& hi){mP[0]=lo; mP[1]=hi;}
00130 inline void franksTrackCut::SetPt(const float& lo, const float& hi){mPt[0]=lo; mPt[1]=hi;}
00131 inline void franksTrackCut::SetPx(const float& lo, const float& hi){mPx[0]=lo; mPx[1]=hi;}
00132 inline void franksTrackCut::SetPy(const float& lo, const float& hi){mPy[0]=lo; mPy[1]=hi;}
00133 inline void franksTrackCut::SetPz(const float& lo, const float& hi){mPz[0]=lo; mPz[1]=hi;}
00134 inline void franksTrackCut::SetRapidity(const float& lo,const float& hi){mRapidity[0]=lo; mRapidity[1]=hi;}
00135 inline void franksTrackCut::SetEta(const float& lo,const float& hi){mEta[0]=lo; mEta[1]=hi;}
00136 inline void franksTrackCut::SetDCA(const float& lo,const float& hi){mDCA[0]=lo; mDCA[1]=hi;}
00137 inline void franksTrackCut::SetDCAGlobal(const float& lo,const float& hi){mDCAGlobal[0]=lo; mDCAGlobal[1]=hi;}
00138 inline void franksTrackCut::SetCharge(const int& ch){mCharge = ch;}
00139 inline franksTrackCut* franksTrackCut::Clone() { franksTrackCut* c = new franksTrackCut(*this); return c;}
00140
00141 #endif