StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
franksV0Cut.h
1 /***************************************************************************
2  *
3  * $Id: franksV0Cut.h,v 1.1 2000/08/28 22:32:04 laue Exp $
4  *
5  * Authors: Frank Laue, Ohio State, laue@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: StHbtMaker package
9  * a V0 particle cut that selects on phasespace, particle type,etc..
10  *
11  ***************************************************************************
12  *
13  * $Log: franksV0Cut.h,v $
14  * Revision 1.1 2000/08/28 22:32:04 laue
15  * NEW: a V0 cut that allows to reject V0 pairs with share a track
16  *
17  *
18  **************************************************************************/
19 
20 #ifndef franksV0Cut_hh
21 #define franksV0Cut_hh
22 
23 //#ifndef StMaker_H
24 //#include "StMaker.h"
25 //#endif
26 
27 #include "StHbtMaker/Base/StHbtV0Cut.h"
28 #include "StHbtMaker/Infrastructure/StHbtV0.hh" //9-17-99 seems like good idea
29 
30 class franksV0Cut : public StHbtV0Cut {
31 
32 public:
33 
34  franksV0Cut();
35  //~franksV0Cut();
36 
37  virtual bool Pass(const StHbtV0*);
38 
39  virtual StHbtString Report();
40 
41  void SetV0Type(const char* type);
42  void SetV0MassRange(const float& lo, const float& hi);
43  void SetdcaV0daughters(const float& lo, const float& hi);
44  void SetdcaV0ToPrimVertex(const float& lo, const float& hi);
45  void SetpV0ToPrimVertexAngle(const float& lo, const float& hi);
46  void SetdecayLengthV0(const float& lo, const float& hi);
47  void SettpcHitsPos(const int& lo, const int& hi);
48  void SettpcHitsNeg(const int& lo, const int& hi);
49  void SetdcaPosToPrimVertex(const float& lo, const float& hi);
50  void SetdcaNegToPrimVertex(const float& lo, const float& hi);
51  void SetptArmV0(const float& lo, const float& hi);
52  void SetalphaV0(const float& lo, const float& hi);
53  void SetPt(const float& lo, const float& hi);
54  void SetRapidity(const float& lo, const float& hi);
55 
56  virtual void EventBegin(const StHbtEvent*);
57 
58 
59 private: // here are the quantities we want to cut on...
60 
61  StHbtThreeVector mPrimaryVertex;
62 
63  float mV0MassRange[2]; //Invariant mass limits
64  float mdcaV0daughters[2]; //DCA between 2 tracks
65  float mdcaV0ToPrimVertex[2]; //DCA between V0 and event vertex
66  float mpV0ToPrimVertexAngle[2]; // angle between V0 momentum and vertex pointer
67  float mdecayLengthV0[2]; //decay length from prim. vertex
68  int mtpcHitsPos[2]; //no. of tpc hits on pos track
69  int mtpcHitsNeg[2]; //no. of tpc hits on neg track
70  float mdcaPosToPrimVertex[2]; //min. value + track at intersect
71  float mdcaNegToPrimVertex[2]; //min. value - track at intersect
72  float mptArmV0[2]; //pt Armenteros
73  float malphaV0[2]; //alpha Armenteros
74  float mPt[2]; //pt of V0
75  float mRapidity[2]; //rapidity of V0
76 
77  long mNV0sPassed;
78  long mNV0sFailed;
79 
80  char* V0Type; // String selecting v0 (la,antil,k0)
81 
82 #ifdef __ROOT__
83  ClassDef(franksV0Cut, 1)
84 #endif
85 };
86 
87 
88 
89 inline void franksV0Cut::SetV0MassRange(const float& lo, const float& hi) {
90 mV0MassRange[0] =lo; mV0MassRange[1]=hi;}
91 inline void franksV0Cut::SetdcaV0daughters(const float& lo, const float& hi)
92 {mdcaV0daughters[0]=lo; mdcaV0daughters[1]=hi;}
93 inline void franksV0Cut::SetpV0ToPrimVertexAngle(const float& lo, const float& hi)
94 {mpV0ToPrimVertexAngle[0]=lo; mpV0ToPrimVertexAngle[1]=hi;}
95 inline void franksV0Cut::SetdcaV0ToPrimVertex(const float& lo, const float& hi)
96 {mdcaV0ToPrimVertex[0]=lo; mdcaV0ToPrimVertex[1]=hi;}
97 inline void franksV0Cut::SetdecayLengthV0(const float& lo, const float& hi)
98 {mdecayLengthV0[0]=lo; mdecayLengthV0[1]=hi;}
99 
100 inline void franksV0Cut::SettpcHitsPos(const int& lo, const int& hi)
101 {mtpcHitsPos[0]=lo;mtpcHitsPos[1]=hi;}
102 inline void franksV0Cut::SettpcHitsNeg(const int& lo, const int& hi)
103 {mtpcHitsNeg[0]=lo;mtpcHitsNeg[1]=hi;}
104 
105 inline void franksV0Cut::SetdcaPosToPrimVertex(const float& lo, const float& hi)
106 {mdcaPosToPrimVertex[0]=lo; mdcaPosToPrimVertex[1]=hi;}
107 inline void franksV0Cut::SetdcaNegToPrimVertex(const float& lo, const float& hi)
108 {mdcaNegToPrimVertex[0]=lo; mdcaNegToPrimVertex[1]=hi;}
109 inline void franksV0Cut::SetptArmV0(const float& lo, const float& hi)
110 {mptArmV0[0]=lo; mptArmV0[1]=hi;}
111 inline void franksV0Cut::SetalphaV0(const float& lo, const float& hi)
112 {malphaV0[0]=lo; malphaV0[1]=hi;}
113 
114 inline void franksV0Cut::SetPt(const float& lo, const float& hi)
115 {mPt[0]=lo; mPt[1]=hi;}
116 inline void franksV0Cut::SetRapidity(const float& lo,const float& hi)
117 {mRapidity[0]=lo; mRapidity[1]=hi;}
118 
119 inline void franksV0Cut::SetV0Type(const char* type)
120 {V0Type = (char*)type;}
121 
122 #endif
123 
124 
125