MpdV0Finder.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #ifndef MPD_V0_FINDER_H
  2. #define MPD_V0_FINDER_H
  3. #include "MpdEvent.h"
  4. #include "MpdV0.h"
  5. #include "MpdV0Cuts.h"
  6. #include "MpdHelix.h"
  7. #include "MpdKalmanHit.h"
  8. #include "MpdKalmanFilter.h"
  9. #include "MpdTpcKalmanFilter.h"
  10. #include "MpdKalmanTrack.h"
  11. #include "MpdVertex.h"
  12. #include "MpdTrack.h"
  13. #include "MpdParticle.h"
  14. #include "MpdTofMatching.h"
  15. #include "FairMCTrack.h"
  16. //#include "MpdEtofMatching.h"
  17. //#include "MpdEctKalmanTrack.h"
  18. #include "MpdParticleIdentification.h"
  19. #include "TLorentzVector.h"
  20. #include "TVector3.h"
  21. #include "TClonesArray.h"
  22. #include "TROOT.h"
  23. #include <Riostream.h>
  24. #include <set>
  25. #include <map>
  26. #include <vector>
  27. #include <iomanip>
  28. #include <ctime>
  29. using std::cout;
  30. using std::endl;
  31. using namespace MpdV0Cuts;
  32. class MpdV0Finder :public FairTask
  33. {
  34. public:
  35. MpdV0Finder(const char *name="MpdV0Finder", Int_t iVerbose = 1);
  36. virtual ~MpdV0Finder();
  37. InitStatus Init();
  38. InitStatus ReInit();
  39. void Exec(Option_t * option);
  40. void Finish();
  41. void Reset();
  42. Double_t PCA(MpdKalmanTrack *tr, TVector3 point);
  43. //TLorentzVector CalcMass(MpdKalmanTrack *tr1, MpdKalmanTrack *tr2, Int_t k, Int_t l); // evaluate mass of mother particle
  44. Int_t GetHighestProb(MpdTrack *track);
  45. void FillMpdTracks();
  46. void SelectTracks();
  47. void FindMCVertices();
  48. Int_t CheckMCTracks (MpdKalmanTrack *tr1, MpdKalmanTrack *tr2);
  49. // Double_t DCAV0(MpdKalmanTrack *tr1, MpdKalmanTrack *tr2) ;
  50. //Double_t DCAtracks(MpdKalmanTrack *tr1, MpdKalmanTrack *tr2);
  51. private:
  52. //Int_t protonPDG;
  53. //Int_t pionPDG; //pi
  54. //Int_t lambdaPDG;
  55. Int_t npr;
  56. Int_t npi;
  57. Int_t nvert;
  58. Int_t Nreco;
  59. Int_t Nok;
  60. Int_t Nmc;
  61. Int_t Nlam;
  62. Int_t Nok1;
  63. Int_t Nmc1;
  64. Int_t Nlam1;
  65. TVector3 PVert;
  66. TVector3 vtx;
  67. //vector<MpdParticle*> pi;
  68. //vector<MpdParticle*> pr;
  69. TClonesArray *pi;
  70. TClonesArray *pr;
  71. Int_t fNMPDtracks;
  72. Int_t fNtracks;
  73. TClonesArray *fV0Cont;
  74. TClonesArray *fPrimVertex;
  75. TClonesArray* fKFTracks;
  76. TClonesArray* fTofMatching;
  77. TClonesArray* fMpdTracks;
  78. TClonesArray* fMCTracks;
  79. MpdV0 *V0;
  80. MpdEvent* fEvent;
  81. TClonesArray *fPrimVertex1;
  82. TClonesArray* fKFTracks1;
  83. TClonesArray* fMpdTracks1;
  84. //TClonesArray* fMpdEvent;
  85. //TClonesArray* fKFEctTracks;
  86. //TClonesArray* fEtofMatching;
  87. //TObjArray* fKalmanTrs;
  88. //Mother cuts
  89. ClassDef(MpdV0Finder,1);
  90. };
  91. #endif