00001 #ifndef franksXiCut_hh
00002 #define franksXiCut_hh
00003
00004
00005
00006
00007
00008 #include "StHbtMaker/Base/StHbtXiCut.h"
00009 #include "StHbtMaker/Infrastructure/StHbtXi.hh"
00010
00011 class franksXiCut : public StHbtXiCut {
00012
00013 public:
00014
00015 franksXiCut();
00016
00017
00018 virtual bool Pass(const StHbtXi*);
00019
00020 virtual StHbtString Report();
00021
00022 void SetXiMassRange(const float& lo, const float& hi);
00023 void SetOmegaMassRange(const float& lo, const float& hi);
00024 void SetdcaXidaughters(const float& lo, const float& hi);
00025 void SetdcaXiToPrimVertex(const float& lo, const float& hi);
00026 void SetdecayLengthXi(const float& lo, const float& hi);
00027 void SettpcHitsBac(const int& lo, const int& hi);
00028 void SetdcaBacToPrimVertex(const float& lo, const float& hi);
00029 void SetptArmXi(const float& lo, const float& hi);
00030 void SetalphaXi(const float& lo, const float& hi);
00031 void SetPt(const float& lo, const float& hi);
00032 void SetRapidity(const float& lo, const float& hi);
00033 void SetdEdx(const float& charge, const float& m1, const float& c1, const float& m2, const float& c2);
00034
00035
00036 private:
00037
00038 float mXiMassRange[2];
00039 float mOmegaMassRange[2];
00040 float mdcaXidaughters[2];
00041 float mdcaXiToPrimVertex[2];
00042 float mdecayLengthXi[2];
00043 int mtpcHitsBac[2];
00044 float mdcaBacToPrimVertex[2];
00045 float mptArmXi[2];
00046 float malphaXi[2];
00047 float mPt[2];
00048 float mRapidity[2];
00049 float mdEdx[4];
00050 float mChargedEdx;
00051
00052 long mNXisPassed;
00053 long mNXisFailed;
00054
00055
00056 #ifdef __ROOT__
00057 ClassDef(franksXiCut, 1)
00058 #endif
00059 };
00060
00061
00062 inline void franksXiCut::SetXiMassRange(const float& lo, const float& hi) {
00063 mXiMassRange[0] =lo; mXiMassRange[1]=hi;}
00064 inline void franksXiCut::SetOmegaMassRange(const float& lo, const float& hi) {
00065 mOmegaMassRange[0] =lo; mOmegaMassRange[1]=hi;}
00066 inline void franksXiCut::SetdcaXidaughters(const float& lo, const float& hi)
00067 {mdcaXidaughters[0]=lo; mdcaXidaughters[1]=hi;}
00068 inline void franksXiCut::SetdcaXiToPrimVertex(const float& lo, const float& hi)
00069 {mdcaXiToPrimVertex[0]=lo; mdcaXiToPrimVertex[1]=hi;}
00070 inline void franksXiCut::SetdecayLengthXi(const float& lo, const float& hi)
00071 {mdecayLengthXi[0]=lo; mdecayLengthXi[1]=hi;}
00072
00073 inline void franksXiCut::SettpcHitsBac(const int& lo, const int& hi)
00074 {mtpcHitsBac[0]=lo;mtpcHitsBac[1]=hi;}
00075
00076 inline void franksXiCut::SetdcaBacToPrimVertex(const float& lo, const float& hi)
00077 {mdcaBacToPrimVertex[0]=lo; mdcaBacToPrimVertex[1]=hi;}
00078 inline void franksXiCut::SetptArmXi(const float& lo, const float& hi)
00079 {mptArmXi[0]=lo; mptArmXi[1]=hi;}
00080 inline void franksXiCut::SetalphaXi(const float& lo, const float& hi)
00081 {malphaXi[0]=lo; malphaXi[1]=hi;}
00082
00083 inline void franksXiCut::SetdEdx(const float& charge,
00084 const float& m1, const float& c1,
00085 const float& m2, const float& c2)
00086 {mChargedEdx=charge;mdEdx[0]=m1; mdEdx[1]=c1; mdEdx[2]=m2; mdEdx[3]=c2;}
00087
00088 inline void franksXiCut::SetPt(const float& lo, const float& hi)
00089 {mPt[0]=lo; mPt[1]=hi;}
00090 inline void franksXiCut::SetRapidity(const float& lo,const float& hi)
00091 {mRapidity[0]=lo; mRapidity[1]=hi;}
00092
00093
00094 #endif
00095