helensLaPTrackCut.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /***************************************************************************
  2. *
  3. * $Id:
  4. *
  5. * Author: Frank Laue, Ohio State, laue@mps.ohio-state.edu
  6. ***************************************************************************
  7. *
  8. * Description: part of STAR HBT Framework: StHbtMaker package
  9. * a simple particle cut that selects on phasespace, #hits, DCA, and PID
  10. *
  11. ***************************************************************************
  12. *
  13. * $Log:
  14. *
  15. **************************************************************************/
  16. #ifndef helensLaPTrackCut_hh
  17. #define helensLaPTrackCut_hh
  18. //#ifndef StMaker_H
  19. //#include "StMaker.h"
  20. //#endif
  21. #include "StHbtMaker/Base/StHbtTrackCut.h"
  22. class helensLaPTrackCut : public StHbtTrackCut
  23. {
  24. public:
  25. helensLaPTrackCut();
  26. helensLaPTrackCut(helensLaPTrackCut& );
  27. ~helensLaPTrackCut();
  28. virtual bool Pass(const StHbtTrack*);
  29. virtual StHbtString Report();
  30. void SetNSigmaElectron(const float& lo, const float& hi);
  31. void SetNSigmaPion(const float& lo, const float& hi);
  32. void SetNSigmaKaon(const float& lo, const float& hi);
  33. void SetNSigmaProton(const float& lo, const float& hi);
  34. void SetNSigmaAntiElectron(const float& lo, const float& hi);
  35. void SetNSigmaAntiPion(const float& lo, const float& hi);
  36. void SetNSigmaAntiKaon(const float& lo, const float& hi);
  37. void SetNSigmaAntiProton(const float& lo, const float& hi);
  38. void SetNHits(const int& lo, const int& hi);
  39. void SetP(const float& lo, const float& hi);
  40. void SetPt(const float& lo, const float& hi);
  41. void SetPx(const float& lo, const float& hi);
  42. void SetPy(const float& lo, const float& hi);
  43. void SetPz(const float& lo, const float& hi);
  44. void SetRapidity(const float& lo, const float& hi);
  45. void SetDCA(const float& lo, const float& hi);
  46. void SetCharge(const int&);
  47. helensLaPTrackCut* Clone();
  48. private: // here are the quantities I want to cut on...
  49. int mCharge;
  50. float mNSigmaElectron[2];
  51. float mNSigmaPion[2];
  52. float mNSigmaKaon[2];
  53. float mNSigmaProton[2];
  54. float mNSigmaAntiElectron[2];
  55. float mNSigmaAntiPion[2];
  56. float mNSigmaAntiKaon[2];
  57. float mNSigmaAntiProton[2];
  58. int mNHits[2];
  59. float mP[2];
  60. float mPt[2];
  61. float mPx[2];
  62. float mPy[2];
  63. float mPz[2];
  64. float mRapidity[2];
  65. float mDCA[2];
  66. long mNTracksPassed;
  67. long mNTracksFailed;
  68. #ifdef __ROOT__
  69. ClassDef(helensLaPTrackCut, 1)
  70. #endif
  71. };
  72. inline void helensLaPTrackCut::SetNSigmaElectron(const float& lo, const float& hi){mNSigmaElectron[0]=lo; mNSigmaElectron[1]=hi;}
  73. inline void helensLaPTrackCut::SetNSigmaPion(const float& lo, const float& hi){mNSigmaPion[0]=lo; mNSigmaPion[1]=hi;}
  74. inline void helensLaPTrackCut::SetNSigmaKaon(const float& lo, const float& hi){mNSigmaKaon[0]=lo; mNSigmaKaon[1]=hi;}
  75. inline void helensLaPTrackCut::SetNSigmaProton(const float& lo, const float& hi){mNSigmaProton[0]=lo; mNSigmaProton[1]=hi;}
  76. inline void helensLaPTrackCut::SetNSigmaAntiElectron(const float& lo, const float& hi){
  77. mNSigmaAntiElectron[0]=lo; mNSigmaAntiElectron[1]=hi;}
  78. inline void helensLaPTrackCut::SetNSigmaAntiPion(const float& lo, const float& hi){
  79. mNSigmaAntiPion[0]=lo; mNSigmaAntiPion[1]=hi;}
  80. inline void helensLaPTrackCut::SetNSigmaAntiKaon(const float& lo, const float& hi){
  81. mNSigmaAntiKaon[0]=lo; mNSigmaAntiKaon[1]=hi;}
  82. inline void helensLaPTrackCut::SetNSigmaAntiProton(const float& lo, const float& hi){
  83. mNSigmaAntiProton[0]=lo; mNSigmaAntiProton[1]=hi;}
  84. inline void helensLaPTrackCut::SetNHits(const int& lo, const int& hi){mNHits[0]=lo;mNHits[1]=hi;}
  85. inline void helensLaPTrackCut::SetP(const float& lo, const float& hi){mP[0]=lo; mP[1]=hi;}
  86. inline void helensLaPTrackCut::SetPt(const float& lo, const float& hi){mPt[0]=lo; mPt[1]=hi;}
  87. inline void helensLaPTrackCut::SetPx(const float& lo, const float& hi){mPx[0]=lo; mPx[1]=hi;}
  88. inline void helensLaPTrackCut::SetPy(const float& lo, const float& hi){mPy[0]=lo; mPy[1]=hi;}
  89. inline void helensLaPTrackCut::SetPz(const float& lo, const float& hi){mPz[0]=lo; mPz[1]=hi;}
  90. inline void helensLaPTrackCut::SetRapidity(const float& lo,const float& hi){mRapidity[0]=lo; mRapidity[1]=hi;}
  91. inline void helensLaPTrackCut::SetDCA(const float& lo,const float& hi){mDCA[0]=lo; mDCA[1]=hi;}
  92. inline void helensLaPTrackCut::SetCharge(const int& ch){mCharge = ch;}
  93. inline helensLaPTrackCut* helensLaPTrackCut::Clone() { helensLaPTrackCut* c = new helensLaPTrackCut(*this); return c;}
  94. #endif