00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef mikesKinkCut_hh
00022 #define mikesKinkCut_hh
00023
00024
00025 #include "StHbtMaker/Base/StHbtKinkCut.h"
00026
00027 class mikesKinkCut : public StHbtKinkCut {
00028
00029 public:
00030
00031 mikesKinkCut();
00032 mikesKinkCut(mikesKinkCut&);
00033
00034
00035 void SetDcaParentDaughter(const float& lo,const float& hi);
00036 void SetDcaDaughterPrimaryVertex(const float& lo,const float& hi);
00037 void SetDcaParentPrimaryVertex(const float& lo,const float& hi);
00038 void SetHitDistanceParentDaughter(const float& lo,const float& hi);
00039 void SetHitDistanceParentVertex(const float& lo,const float& hi);
00040 void SetDecayAngle(const float& lo,const float& hi);
00041 void SetDecayAngleCM(const float& lo,const float& hi);
00042
00043 int NKinksPassed();
00044 int NKinksFailed();
00045
00046 virtual StHbtString Report();
00047 virtual bool Pass(const StHbtKink*);
00048
00049 mikesKinkCut* Clone();
00050
00051 private:
00052
00053 float mDcaParentDaughter[2];
00054 float mDcaDaughterPrimaryVertex[2];
00055 float mDcaParentPrimaryVertex[2];
00056 float mHitDistanceParentDaughter[2];
00057 float mHitDistanceParentVertex[2];
00058 float mDecayAngle[2];
00059 float mDecayAngleCM[2];
00060
00061
00062 long mNKinksPassed;
00063 long mNKinksFailed;
00064
00065 #ifdef __ROOT__
00066 ClassDef(mikesKinkCut, 1)
00067 #endif
00068
00069 };
00070
00071
00072 inline int mikesKinkCut::NKinksPassed() {return mNKinksPassed;}
00073 inline int mikesKinkCut::NKinksFailed() {return mNKinksFailed;}
00074 inline mikesKinkCut* mikesKinkCut::Clone() { mikesKinkCut* c = new mikesKinkCut(*this); return c;}
00075 inline mikesKinkCut::mikesKinkCut(mikesKinkCut& c) : StHbtKinkCut(c) {
00076
00077 mDcaParentDaughter[0] = c.mDcaParentDaughter[0];
00078 mDcaDaughterPrimaryVertex[0] = c.mDcaDaughterPrimaryVertex[0];
00079 mDcaParentPrimaryVertex[0] = c.mDcaParentPrimaryVertex[0];
00080 mHitDistanceParentDaughter[0]= c.mHitDistanceParentDaughter[0];
00081 mHitDistanceParentVertex[0] = c.mHitDistanceParentVertex[0];
00082 mDecayAngle[0] = c.mDecayAngle[0];
00083 mDecayAngleCM[0] = c.mDecayAngleCM[0];
00084
00085 mDcaParentDaughter[1] = c.mDcaParentDaughter[1];
00086 mDcaDaughterPrimaryVertex[1] = c.mDcaDaughterPrimaryVertex[1];
00087 mDcaParentPrimaryVertex[1] = c.mDcaParentPrimaryVertex[1];
00088 mHitDistanceParentDaughter[1]= c.mHitDistanceParentDaughter[1];
00089 mHitDistanceParentVertex[1] = c.mHitDistanceParentVertex[1];
00090 mDecayAngle[1] = c.mDecayAngle[1];
00091 mDecayAngleCM[1] = c.mDecayAngleCM[1];
00092 mNKinksPassed = 0;
00093 mNKinksFailed = 0;
00094
00095 }
00096
00097
00098 inline void mikesKinkCut::SetDcaParentDaughter(const float& lo,const float& hi){mDcaParentDaughter[0]=lo; mDcaParentDaughter[1]=hi;}
00099 inline void mikesKinkCut::SetDcaDaughterPrimaryVertex(const float& lo,const float& hi){mDcaDaughterPrimaryVertex[0]=lo;mDcaDaughterPrimaryVertex[1]=hi;}
00100 inline void mikesKinkCut::SetDcaParentPrimaryVertex(const float& lo,const float& hi){mDcaParentPrimaryVertex[0]=lo;mDcaParentPrimaryVertex[1]=hi;}
00101 inline void mikesKinkCut::SetHitDistanceParentDaughter(const float& lo,const float& hi){mHitDistanceParentDaughter[0]=lo;mHitDistanceParentDaughter[1]=hi;}
00102 inline void mikesKinkCut::SetHitDistanceParentVertex(const float& lo,const float& hi){mHitDistanceParentVertex[0]=lo;mHitDistanceParentVertex[1]=hi;}
00103 inline void mikesKinkCut::SetDecayAngle(const float& lo,const float& hi){mDecayAngle[0]=lo;mDecayAngle[1]=hi;}
00104 inline void mikesKinkCut::SetDecayAngleCM(const float& lo,const float& hi){mDecayAngleCM[0]=lo;mDecayAngleCM[1]=hi;}
00105
00106
00107 #endif