00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef franksV0Cut_hh
00021 #define franksV0Cut_hh
00022
00023
00024
00025
00026
00027 #include "StHbtMaker/Base/StHbtV0Cut.h"
00028 #include "StHbtMaker/Infrastructure/StHbtV0.hh"
00029
00030 class franksV0Cut : public StHbtV0Cut {
00031
00032 public:
00033
00034 franksV0Cut();
00035
00036
00037 virtual bool Pass(const StHbtV0*);
00038
00039 virtual StHbtString Report();
00040
00041 void SetV0Type(const char* type);
00042 void SetV0MassRange(const float& lo, const float& hi);
00043 void SetdcaV0daughters(const float& lo, const float& hi);
00044 void SetdcaV0ToPrimVertex(const float& lo, const float& hi);
00045 void SetpV0ToPrimVertexAngle(const float& lo, const float& hi);
00046 void SetdecayLengthV0(const float& lo, const float& hi);
00047 void SettpcHitsPos(const int& lo, const int& hi);
00048 void SettpcHitsNeg(const int& lo, const int& hi);
00049 void SetdcaPosToPrimVertex(const float& lo, const float& hi);
00050 void SetdcaNegToPrimVertex(const float& lo, const float& hi);
00051 void SetptArmV0(const float& lo, const float& hi);
00052 void SetalphaV0(const float& lo, const float& hi);
00053 void SetPt(const float& lo, const float& hi);
00054 void SetRapidity(const float& lo, const float& hi);
00055
00056 virtual void EventBegin(const StHbtEvent*);
00057
00058
00059 private:
00060
00061 StHbtThreeVector mPrimaryVertex;
00062
00063 float mV0MassRange[2];
00064 float mdcaV0daughters[2];
00065 float mdcaV0ToPrimVertex[2];
00066 float mpV0ToPrimVertexAngle[2];
00067 float mdecayLengthV0[2];
00068 int mtpcHitsPos[2];
00069 int mtpcHitsNeg[2];
00070 float mdcaPosToPrimVertex[2];
00071 float mdcaNegToPrimVertex[2];
00072 float mptArmV0[2];
00073 float malphaV0[2];
00074 float mPt[2];
00075 float mRapidity[2];
00076
00077 long mNV0sPassed;
00078 long mNV0sFailed;
00079
00080 char* V0Type;
00081
00082 #ifdef __ROOT__
00083 ClassDef(franksV0Cut, 1)
00084 #endif
00085 };
00086
00087
00088
00089 inline void franksV0Cut::SetV0MassRange(const float& lo, const float& hi) {
00090 mV0MassRange[0] =lo; mV0MassRange[1]=hi;}
00091 inline void franksV0Cut::SetdcaV0daughters(const float& lo, const float& hi)
00092 {mdcaV0daughters[0]=lo; mdcaV0daughters[1]=hi;}
00093 inline void franksV0Cut::SetpV0ToPrimVertexAngle(const float& lo, const float& hi)
00094 {mpV0ToPrimVertexAngle[0]=lo; mpV0ToPrimVertexAngle[1]=hi;}
00095 inline void franksV0Cut::SetdcaV0ToPrimVertex(const float& lo, const float& hi)
00096 {mdcaV0ToPrimVertex[0]=lo; mdcaV0ToPrimVertex[1]=hi;}
00097 inline void franksV0Cut::SetdecayLengthV0(const float& lo, const float& hi)
00098 {mdecayLengthV0[0]=lo; mdecayLengthV0[1]=hi;}
00099
00100 inline void franksV0Cut::SettpcHitsPos(const int& lo, const int& hi)
00101 {mtpcHitsPos[0]=lo;mtpcHitsPos[1]=hi;}
00102 inline void franksV0Cut::SettpcHitsNeg(const int& lo, const int& hi)
00103 {mtpcHitsNeg[0]=lo;mtpcHitsNeg[1]=hi;}
00104
00105 inline void franksV0Cut::SetdcaPosToPrimVertex(const float& lo, const float& hi)
00106 {mdcaPosToPrimVertex[0]=lo; mdcaPosToPrimVertex[1]=hi;}
00107 inline void franksV0Cut::SetdcaNegToPrimVertex(const float& lo, const float& hi)
00108 {mdcaNegToPrimVertex[0]=lo; mdcaNegToPrimVertex[1]=hi;}
00109 inline void franksV0Cut::SetptArmV0(const float& lo, const float& hi)
00110 {mptArmV0[0]=lo; mptArmV0[1]=hi;}
00111 inline void franksV0Cut::SetalphaV0(const float& lo, const float& hi)
00112 {malphaV0[0]=lo; malphaV0[1]=hi;}
00113
00114 inline void franksV0Cut::SetPt(const float& lo, const float& hi)
00115 {mPt[0]=lo; mPt[1]=hi;}
00116 inline void franksV0Cut::SetRapidity(const float& lo,const float& hi)
00117 {mRapidity[0]=lo; mRapidity[1]=hi;}
00118
00119 inline void franksV0Cut::SetV0Type(const char* type)
00120 {V0Type = (char*)type;}
00121
00122 #endif
00123
00124
00125