StO97FemtoDstMaker.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. //
  2. // The version of the class should be changed every time
  3. // when any changes in the codes are done
  4. // Grigory Nigmatkulov: 2016/12/15
  5. //
  6. #ifndef STO97FEMTODSTMAKER_H
  7. #define STO97FEMTODSTMAKER_H
  8. #include "StMaker.h"
  9. #include "StThreeVector.hh"
  10. #include "StThreeVectorF.hh"
  11. #include "StPhysicalHelixD.hh"
  12. #include "StRefMultCorr/StRefMultCorr.h"
  13. #include "StFemtoEvent.h"
  14. #include "StFemtoTrack.h"
  15. #include "StMuDSTMaker/COMMON/StMuDstMaker.h"
  16. #include "StMuDSTMaker/COMMON/StMuDst.h"
  17. #include "StMuDSTMaker/COMMON/StMuEvent.h"
  18. #include "StMuDSTMaker/COMMON/StMuTrack.h"
  19. #include "StMuDSTMaker/COMMON/StMuPrimaryVertex.h"
  20. #include "StMuDSTMaker/COMMON/StMuBTofPidTraits.h"
  21. #include "StMuDSTMaker/COMMON/StMuBTofHit.h"
  22. #include <TString.h>
  23. #include <TFile.h>
  24. #include <TLorentzVector.h>
  25. #include <TTree.h>
  26. #include <TH1.h>
  27. #include <TH2.h>
  28. #include <TVectorT.h>
  29. #include <TMatrixTLazy.h>
  30. #include <TMatrixDSymEigen.h>
  31. #include "TDatabasePDG.h"
  32. #include "TRandom3.h"
  33. #include <vector>
  34. #include <iostream>
  35. using namespace std;
  36. //
  37. // Predefinisions
  38. //
  39. class StFemtoEvent;
  40. class StFemtoTrack;
  41. class StMuDst;
  42. class StMuDstMaker;
  43. class StMuEvent;
  44. class StMuTrack;
  45. class StO97FemtoDstMaker : public StMaker {
  46. public:
  47. StO97FemtoDstMaker(const Char_t *iFileName,
  48. const Char_t *oFileName);
  49. ~StO97FemtoDstMaker();
  50. void Clear(Option_t *option = "") { StMaker::Clear(option); }
  51. Int_t Init();
  52. Int_t Make();
  53. Int_t Finish();
  54. Bool_t IsStop() { return mStop; }
  55. void SetCompressionlevel(Int_t comp);
  56. //
  57. // Setters
  58. //
  59. // event
  60. void SetSphericityCut(float ptCut) { mPtCut = ptCut; }
  61. // track
  62. void SetParticleMomentum(const Float_t& lo, const Float_t& hi) { mTrackMomentum[0]=lo; mTrackMomentum[1]=hi; }
  63. void SetTrackDca(const Float_t& lo, const Float_t& hi) { mTrackDca[0]=lo; mTrackDca[1]=hi; }
  64. void SetTrackEta(const Float_t& lo, const Float_t& hi) { mTrackEta[0]=lo; mTrackEta[1]=hi; }
  65. private:
  66. const Char_t *mOutFileName;
  67. const Char_t *mInFileName;
  68. TFile *mOutFile;
  69. FILE *mInFile;
  70. TTree *mTree;
  71. Int_t mCompression;
  72. TRandom3 *mRandy;
  73. TDatabasePDG *mDb;
  74. //
  75. // Reference Multiplicity
  76. //
  77. int mRefMult;
  78. int mRefMult2;
  79. int mRefMultPos;
  80. int mRefMult2Pos;
  81. //
  82. // Sphericity
  83. //
  84. TMatrixTSym<double> *mMatrix; // transverse sphericity matrix
  85. float mPtCut;
  86. float mSphericity;
  87. //
  88. // Single-particle cuts
  89. //
  90. Float_t mTrackMomentum[2];
  91. Float_t mTrackDca[2];
  92. Float_t mTrackEta[2];
  93. Bool_t mStop;
  94. Int_t mNBytes;
  95. Int_t mNEvents;
  96. Int_t mNTracks;
  97. char mBuf[128]; // buffer for general read purposes
  98. StFemtoEvent *mEvent;
  99. Bool_t ReadEvent();
  100. Bool_t ReadTracks();
  101. Double_t dedxMean(Double_t mass, Double_t momentum);
  102. void TopologyMap(unsigned int *tmap1, unsigned int *tmap2, float ptot);
  103. ClassDef(StO97FemtoDstMaker, 1)
  104. };
  105. #endif