CbmSttHit.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /** CbmStsMapsHit
  2. ** Class for MAPS detector hit
  3. **@author Michael Deveaux <m.deveaux@gsi.de>
  4. ** Acknowledgements to M. Al-Turany, D. Bertini, G. Gaycken
  5. ** Version beta 0.1 (02.02.2005)
  6. ** Slight modifications by V. Friese to match coding conventions
  7. **
  8. ** Meaning of RefIndex: Index of corresponding MCPoint
  9. ** -1 if fake or background hit
  10. **
  11. ** Meaning of Flag: 0 = Hit ok
  12. ** -1 : Hit lost due to detection inefficiency
  13. **/
  14. #ifndef CBMSTTHIT_H
  15. #define CBMSTTHIT_H 1
  16. #include "TVector3.h"
  17. #include "FairHit.h"
  18. using namespace std;
  19. class CbmSttHit : public FairHit
  20. {
  21. public:
  22. /** Default constructor **/
  23. CbmSttHit();
  24. /** Standard constructor
  25. *@param detID Detector unique volume ID
  26. *@param pos Position coordinates [cm]
  27. *@param dpos Errors in position coordinates [cm]
  28. *@param index Index of corresponding MCPoint
  29. *@param isochrone The radial measurement
  30. *@param isoerror The erroon on the radial measurement
  31. **/
  32. CbmSttHit(Int_t detID, TVector3& pos, TVector3& dpos,
  33. Int_t index, Int_t flag, Double_t isochrone,
  34. Double_t isoerror, TVector3 wireDir);
  35. CbmSttHit(Int_t detID, TVector3& pos, TVector3& dpos, Int_t index);
  36. // stt1----
  37. CbmSttHit(Int_t detID, TVector3& pos, TVector3& dpos, Int_t index, Int_t trackID, Double_t p, Double_t rr, Double_t rt, Double_t isochroneError,TVector3 wireDir);
  38. //---------
  39. /** Destructor **/
  40. virtual ~CbmSttHit();
  41. /** Output to screen (not yet implemented) **/
  42. virtual void Print(const Option_t* opt = 0) const {;}
  43. /** Public method Clear
  44. ** Resets the isochrone and it's error to 0
  45. **/
  46. void Clear();
  47. /** Accessors **/
  48. Double_t GetIsochrone() const { return fIsochrone; };
  49. Double_t GetIsochroneError() const { return fIsochroneError; };
  50. Double_t GetRadial() const { return fRadial; };
  51. TVector3 GetWireDirection() const { return fWireDirection; };
  52. Double_t GetPulse() const {return fPulse;}
  53. Double_t GetXint() const { return fXint; };
  54. Double_t GetYint() const { return fYint; };
  55. Double_t GetZint() const { return fZint; };
  56. /** Modifiers **/
  57. void SetIsochrone(Double_t isochrone) { fIsochrone = isochrone; };
  58. void SetIsochroneError(Double_t isochroneError) { fIsochroneError = isochroneError; };
  59. void SetRadial(Double_t newRadial) { fRadial = newRadial; };
  60. void SetWireDirection(TVector3 newWire) { fWireDirection = newWire; }
  61. void SetAssigned() {fAssigned = kTRUE;}
  62. Bool_t IsAssigned() const {return fAssigned;}
  63. void SetXint(Double_t x) { fXint = x; }
  64. void SetYint(Double_t y) { fYint = y; }
  65. void SetZint(Double_t z) { fZint = z; }
  66. protected:
  67. /** This variable contains the radial distance to the wire **/
  68. Double_t fIsochrone;
  69. /** This variable contains the error on the radial distance to the wire **/
  70. Double_t fIsochroneError;
  71. /** This variable contains the position calculated along the circle in the x-y plane **/
  72. Double_t fRadial;
  73. /** This variables contain the direction of the wire **/
  74. TVector3 fWireDirection;
  75. Bool_t fAssigned;
  76. // stt1
  77. Double_t fPulse;
  78. Double_t fRsim;
  79. Double_t fRtrue;
  80. // fFlag;
  81. // fnam;
  82. Int_t fTrackID;
  83. // fEventID;
  84. /* tube_c; */
  85. /* tube_max; */
  86. /* tube_min; */
  87. Double32_t fXint, fYint, fZint; // Position of intersections (will work in reco)
  88. ClassDef(CbmSttHit,1);
  89. };
  90. #endif