StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
franksPairCut.h
1 #ifndef franksPairCut_hh
2 #define franksPairCut_hh
3 
4 // do I need these lines ?
5 //#ifndef StMaker_H
6 //#include "StMaker.h"
7 //#endif
8 
9 class StHbtPair;
10 #include "StHbtMaker/Base/StHbtPairCut.h"
11 
12 class franksPairCut : public StHbtPairCut{
13 public:
14  franksPairCut();
16  //~franksPairCut();
17 
18  virtual bool Pass(const StHbtPair*);
19  virtual void EventBegin(const StHbtEvent*);
20  virtual void EventEnd(const StHbtEvent*) { /* no-op */ }
21  void SetQuality(const float, const float );
22  void SetKt(const float, const float );
23  void SetPt(const float, const float );
24  void SetOpeningAngle(const float, const float );
25  void SetEntranceSeparation(const float, const float );
26  void SetRapidity(const float, const float );
27  void SetEta(const float, const float );
28  void SetQinv(const float, const float );
29  void SetDecayLength(const float, const float);
30  void SetAngleToPrimaryVertex(const float, const float);
31  void SetDcaToPrimaryVertex(const float, const float);
32  void SetDcaOfDaughters(const float, const float);
33  void SetIdenticalMother(const int=0);
34  // void SetResonanceInfo(bool b=false);
35  franksPairCut* Clone();
36 
37  virtual StHbtString Report();
38 
39 
40  private:
41  bool leave(bool);
42  // bool mResonanceInfoOn;
43  StHbtThreeVector mPrimaryVertex;
44  int mIdenticalMother;
45  float mQuality[2];
46  float mKt[2];
47  float mPt[2];
48  float mRapidity[2];
49  float mEta[2];
50  float mQinv[2];
51  float mOpeningAngle[2];
52  float mEntranceSeparation[2];
53  float mDecayLength[2];
54  float mAngleToPrimaryVertex[2];
55  float mDcaToPrimaryVertex[2];
56  float mDcaOfDaughters[2];
57  long mNPairsPassed;
58  long mNPairsFailed;
59 
60  protected:
61 
62 
63 #ifdef __ROOT__
64  ClassDef(franksPairCut, 1)
65 #endif
66 };
67 
68 inline void franksPairCut::SetQuality(const float x, const float y) { mQuality[0]=x; mQuality[1]=y; }
69 inline void franksPairCut::SetKt(const float x, const float y) { mKt[0]=x; mKt[1]=y; }
70 inline void franksPairCut::SetPt(const float x, const float y) { mPt[0]=x; mPt[1]=y; }
71 inline void franksPairCut::SetOpeningAngle(const float x, const float y) { mOpeningAngle[0]=x; mOpeningAngle[1]=y; }
72 inline void franksPairCut::SetRapidity(const float x, const float y) { mRapidity[0]=x; mRapidity[1]=y; }
73 inline void franksPairCut::SetEta(const float x, const float y) { mEta[0]=x; mEta[1]=y; }
74 inline void franksPairCut::SetQinv(const float x, const float y) { mQinv[0]=x; mQinv[1]=y; }
75 inline void franksPairCut::SetEntranceSeparation(const float x, const float y) { mEntranceSeparation[0]=x; mEntranceSeparation[1]=y; }
76 inline void franksPairCut::SetDecayLength(const float x, const float y) { mDecayLength[0]=x; mDecayLength[1]=y; }
77 inline void franksPairCut::SetAngleToPrimaryVertex(const float x, const float y) { mAngleToPrimaryVertex[0]=x; mAngleToPrimaryVertex[1]=y; }
78 inline void franksPairCut::SetDcaToPrimaryVertex(const float x, const float y) { mDcaToPrimaryVertex[0]=x; mDcaToPrimaryVertex[1]=y; }
79 inline void franksPairCut::SetDcaOfDaughters(const float x, const float y) { mDcaOfDaughters[0]=x; mDcaOfDaughters[1]=y; }
80 inline void franksPairCut::SetIdenticalMother(const int i) { mIdenticalMother=i; }
81 inline void franksPairCut::EventBegin(const StHbtEvent* ev) { mPrimaryVertex = ev->PrimVertPos(); }
82 inline franksPairCut* franksPairCut::Clone() { franksPairCut* c = new franksPairCut(*this); return c;}
83 //inline void franksPairCut::SetResonanceInfo(bool b) {mResonanceInfoOn=b;}
84 
85 #endif