mikesKinkCut.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /***************************************************************************
  2. *
  3. * $Id: mikesKinkCut.h,v 1.1 2001/06/01 19:23:54 lisa Exp $
  4. *
  5. * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
  6. ***************************************************************************
  7. *
  8. * Description: This is an example of a StHbtKinkCut, which cuts on StHbtKinks
  9. * in the StHbtEvent. If a StHbtKink passes the cut, then it becomes a
  10. * StHbtParticle to be used in the StHbtAnalysis
  11. *
  12. ***************************************************************************
  13. *
  14. * $Log: mikesKinkCut.h,v $
  15. * Revision 1.1 2001/06/01 19:23:54 lisa
  16. * new example class Cut/mikesKinkCut
  17. *
  18. *
  19. **************************************************************************/
  20. #ifndef mikesKinkCut_hh
  21. #define mikesKinkCut_hh
  22. #include "StHbtMaker/Base/StHbtKinkCut.h"
  23. class mikesKinkCut : public StHbtKinkCut {
  24. public:
  25. mikesKinkCut();
  26. mikesKinkCut(mikesKinkCut&);
  27. //~mikesKinkCut();
  28. void SetDcaParentDaughter(const float& lo,const float& hi);
  29. void SetDcaDaughterPrimaryVertex(const float& lo,const float& hi);
  30. void SetDcaParentPrimaryVertex(const float& lo,const float& hi);
  31. void SetHitDistanceParentDaughter(const float& lo,const float& hi);
  32. void SetHitDistanceParentVertex(const float& lo,const float& hi);
  33. void SetDecayAngle(const float& lo,const float& hi);
  34. void SetDecayAngleCM(const float& lo,const float& hi);
  35. int NKinksPassed();
  36. int NKinksFailed();
  37. virtual StHbtString Report();
  38. virtual bool Pass(const StHbtKink*);
  39. mikesKinkCut* Clone();
  40. private: // here are the quantities I want to cut on...
  41. float mDcaParentDaughter[2];
  42. float mDcaDaughterPrimaryVertex[2];
  43. float mDcaParentPrimaryVertex[2];
  44. float mHitDistanceParentDaughter[2];
  45. float mHitDistanceParentVertex[2];
  46. float mDecayAngle[2];
  47. float mDecayAngleCM[2];
  48. long mNKinksPassed;
  49. long mNKinksFailed;
  50. #ifdef __ROOT__
  51. ClassDef(mikesKinkCut, 1)
  52. #endif
  53. };
  54. inline int mikesKinkCut::NKinksPassed() {return mNKinksPassed;}
  55. inline int mikesKinkCut::NKinksFailed() {return mNKinksFailed;}
  56. inline mikesKinkCut* mikesKinkCut::Clone() { mikesKinkCut* c = new mikesKinkCut(*this); return c;}
  57. inline mikesKinkCut::mikesKinkCut(mikesKinkCut& c) : StHbtKinkCut(c) {
  58. mDcaParentDaughter[0] = c.mDcaParentDaughter[0];
  59. mDcaDaughterPrimaryVertex[0] = c.mDcaDaughterPrimaryVertex[0];
  60. mDcaParentPrimaryVertex[0] = c.mDcaParentPrimaryVertex[0];
  61. mHitDistanceParentDaughter[0]= c.mHitDistanceParentDaughter[0];
  62. mHitDistanceParentVertex[0] = c.mHitDistanceParentVertex[0];
  63. mDecayAngle[0] = c.mDecayAngle[0];
  64. mDecayAngleCM[0] = c.mDecayAngleCM[0];
  65. mDcaParentDaughter[1] = c.mDcaParentDaughter[1];
  66. mDcaDaughterPrimaryVertex[1] = c.mDcaDaughterPrimaryVertex[1];
  67. mDcaParentPrimaryVertex[1] = c.mDcaParentPrimaryVertex[1];
  68. mHitDistanceParentDaughter[1]= c.mHitDistanceParentDaughter[1];
  69. mHitDistanceParentVertex[1] = c.mHitDistanceParentVertex[1];
  70. mDecayAngle[1] = c.mDecayAngle[1];
  71. mDecayAngleCM[1] = c.mDecayAngleCM[1];
  72. mNKinksPassed = 0;
  73. mNKinksFailed = 0;
  74. }
  75. inline void mikesKinkCut::SetDcaParentDaughter(const float& lo,const float& hi){mDcaParentDaughter[0]=lo; mDcaParentDaughter[1]=hi;}
  76. inline void mikesKinkCut::SetDcaDaughterPrimaryVertex(const float& lo,const float& hi){mDcaDaughterPrimaryVertex[0]=lo;mDcaDaughterPrimaryVertex[1]=hi;}
  77. inline void mikesKinkCut::SetDcaParentPrimaryVertex(const float& lo,const float& hi){mDcaParentPrimaryVertex[0]=lo;mDcaParentPrimaryVertex[1]=hi;}
  78. inline void mikesKinkCut::SetHitDistanceParentDaughter(const float& lo,const float& hi){mHitDistanceParentDaughter[0]=lo;mHitDistanceParentDaughter[1]=hi;}
  79. inline void mikesKinkCut::SetHitDistanceParentVertex(const float& lo,const float& hi){mHitDistanceParentVertex[0]=lo;mHitDistanceParentVertex[1]=hi;}
  80. inline void mikesKinkCut::SetDecayAngle(const float& lo,const float& hi){mDecayAngle[0]=lo;mDecayAngle[1]=hi;}
  81. inline void mikesKinkCut::SetDecayAngleCM(const float& lo,const float& hi){mDecayAngleCM[0]=lo;mDecayAngleCM[1]=hi;}
  82. #endif