StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mikesKinkCut.h
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 
21 #ifndef mikesKinkCut_hh
22 #define mikesKinkCut_hh
23 
24 
25 #include "StHbtMaker/Base/StHbtKinkCut.h"
26 
27 class mikesKinkCut : public StHbtKinkCut {
28 
29 public:
30 
31  mikesKinkCut();
33  //~mikesKinkCut();
34 
35  void SetDcaParentDaughter(const float& lo,const float& hi);
36  void SetDcaDaughterPrimaryVertex(const float& lo,const float& hi);
37  void SetDcaParentPrimaryVertex(const float& lo,const float& hi);
38  void SetHitDistanceParentDaughter(const float& lo,const float& hi);
39  void SetHitDistanceParentVertex(const float& lo,const float& hi);
40  void SetDecayAngle(const float& lo,const float& hi);
41  void SetDecayAngleCM(const float& lo,const float& hi);
42 
43  int NKinksPassed();
44  int NKinksFailed();
45 
46  virtual StHbtString Report();
47  virtual bool Pass(const StHbtKink*);
48 
49  mikesKinkCut* Clone();
50 
51 private: // here are the quantities I want to cut on...
52 
53  float mDcaParentDaughter[2];
54  float mDcaDaughterPrimaryVertex[2];
55  float mDcaParentPrimaryVertex[2];
56  float mHitDistanceParentDaughter[2];
57  float mHitDistanceParentVertex[2];
58  float mDecayAngle[2];
59  float mDecayAngleCM[2];
60 
61 
62  long mNKinksPassed;
63  long mNKinksFailed;
64 
65 #ifdef __ROOT__
66  ClassDef(mikesKinkCut, 1)
67 #endif
68 
69 };
70 
71 
72 inline int mikesKinkCut::NKinksPassed() {return mNKinksPassed;}
73 inline int mikesKinkCut::NKinksFailed() {return mNKinksFailed;}
74 inline mikesKinkCut* mikesKinkCut::Clone() { mikesKinkCut* c = new mikesKinkCut(*this); return c;}
75 inline mikesKinkCut::mikesKinkCut(mikesKinkCut& c) : StHbtKinkCut(c) {
76 
77  mDcaParentDaughter[0] = c.mDcaParentDaughter[0];
78  mDcaDaughterPrimaryVertex[0] = c.mDcaDaughterPrimaryVertex[0];
79  mDcaParentPrimaryVertex[0] = c.mDcaParentPrimaryVertex[0];
80  mHitDistanceParentDaughter[0]= c.mHitDistanceParentDaughter[0];
81  mHitDistanceParentVertex[0] = c.mHitDistanceParentVertex[0];
82  mDecayAngle[0] = c.mDecayAngle[0];
83  mDecayAngleCM[0] = c.mDecayAngleCM[0];
84 
85  mDcaParentDaughter[1] = c.mDcaParentDaughter[1];
86  mDcaDaughterPrimaryVertex[1] = c.mDcaDaughterPrimaryVertex[1];
87  mDcaParentPrimaryVertex[1] = c.mDcaParentPrimaryVertex[1];
88  mHitDistanceParentDaughter[1]= c.mHitDistanceParentDaughter[1];
89  mHitDistanceParentVertex[1] = c.mHitDistanceParentVertex[1];
90  mDecayAngle[1] = c.mDecayAngle[1];
91  mDecayAngleCM[1] = c.mDecayAngleCM[1];
92  mNKinksPassed = 0;
93  mNKinksFailed = 0;
94 
95 }
96 
97 
98 inline void mikesKinkCut::SetDcaParentDaughter(const float& lo,const float& hi){mDcaParentDaughter[0]=lo; mDcaParentDaughter[1]=hi;}
99 inline void mikesKinkCut::SetDcaDaughterPrimaryVertex(const float& lo,const float& hi){mDcaDaughterPrimaryVertex[0]=lo;mDcaDaughterPrimaryVertex[1]=hi;}
100 inline void mikesKinkCut::SetDcaParentPrimaryVertex(const float& lo,const float& hi){mDcaParentPrimaryVertex[0]=lo;mDcaParentPrimaryVertex[1]=hi;}
101 inline void mikesKinkCut::SetHitDistanceParentDaughter(const float& lo,const float& hi){mHitDistanceParentDaughter[0]=lo;mHitDistanceParentDaughter[1]=hi;}
102 inline void mikesKinkCut::SetHitDistanceParentVertex(const float& lo,const float& hi){mHitDistanceParentVertex[0]=lo;mHitDistanceParentVertex[1]=hi;}
103 inline void mikesKinkCut::SetDecayAngle(const float& lo,const float& hi){mDecayAngle[0]=lo;mDecayAngle[1]=hi;}
104 inline void mikesKinkCut::SetDecayAngleCM(const float& lo,const float& hi){mDecayAngleCM[0]=lo;mDecayAngleCM[1]=hi;}
105 
106 
107 #endif