MpdEvent.cxx 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // Author: Emelyanov D.
  2. // Update: 2009-09-17 17:29:46+0400
  3. // Copyright: 2009 (C) MPD coll.
  4. //
  5. #ifndef ROOT_MpdEvent
  6. #include "MpdEvent.h"
  7. #endif
  8. // ----- Default constructor ---------------------------------------
  9. MpdEvent::MpdEvent():
  10. TNamed("MpdEvent","Global"),
  11. fEventInfoNofPrimaryTracks(0),
  12. fEventInfoNofGlobalTracks(0),
  13. fPrimaryTracks(new TClonesArray("MpdTrack")),
  14. fGlobalTracks(new TClonesArray("MpdTrack"))
  15. {}
  16. // -------------------------------------------------------------------
  17. MpdEvent::~MpdEvent()
  18. {
  19. delete fPrimaryTracks;
  20. delete fGlobalTracks;
  21. }
  22. void MpdEvent::Reset(){
  23. fEventInfoNofPrimaryTracks = 0;
  24. fEventInfoNofGlobalTracks = 0;
  25. fPrimaryTracks->Delete();
  26. fGlobalTracks->Delete();
  27. }
  28. // -------------------------------------------------------------------
  29. MpdTrack *MpdEvent::AddPrimaryTrack()
  30. {
  31. return new((*fPrimaryTracks)[fEventInfoNofPrimaryTracks++]) MpdTrack();
  32. }
  33. // -------------------------------------------------------------------
  34. MpdTrack *MpdEvent::AddGlobalTrack()
  35. {
  36. return new((*fGlobalTracks)[fEventInfoNofGlobalTracks++]) MpdTrack();
  37. }
  38. // -------------------------------------------------------------------
  39. MpdEvent& MpdEvent::operator =(const MpdEvent& event) {
  40. if(&event==this){
  41. return *this;
  42. }
  43. fRunInfoRunId = event.fRunInfoRunId;
  44. fRunInfo_ProductionVersion = event.fRunInfo_ProductionVersion;
  45. fRunInfo_CenterOfMassEnergy = event.fRunInfo_CenterOfMassEnergy;
  46. fRunInfo_BeamMassNumber[0] = event.fRunInfo_BeamMassNumber[0];
  47. fRunInfo_BeamMassNumber[1] = event.fRunInfo_BeamMassNumber[1];
  48. fRunInfoMagneticFieldZ = event.fRunInfoMagneticFieldZ;
  49. fEventInfo_TriggerMask = event.fEventInfo_TriggerMask;
  50. fEventInfoNofGlobalTracks = event.fEventInfoNofGlobalTracks;
  51. fEventInfoNofPrimaryTracks = event.fEventInfoNofPrimaryTracks;
  52. fEventInfo_NofPositiveTracks = event.fEventInfo_NofPositiveTracks;
  53. fEventInfo_NofNegativeTracks = event.fEventInfo_NofNegativeTracks;
  54. // PrimaryVertices
  55. PrimaryVerticesX = event.PrimaryVerticesX;
  56. PrimaryVerticesY = event.PrimaryVerticesY;
  57. PrimaryVerticesZ = event.PrimaryVerticesZ;
  58. PrimaryVerticesXerr = event.PrimaryVerticesXerr;
  59. PrimaryVerticesYerr = event.PrimaryVerticesYerr;
  60. PrimaryVerticesZerr = event.PrimaryVerticesZerr;
  61. PrimaryVertices_SumTrackPt = event.PrimaryVertices_SumTrackPt;
  62. PrimaryVertices_MeanDip = event.PrimaryVertices_MeanDip;
  63. PrimaryVerticesChi2 = event.PrimaryVerticesChi2;
  64. PrimaryVertices_RefMultNeg = event.PrimaryVertices_RefMultNeg;
  65. PrimaryVertices_RefMultPos = event.PrimaryVertices_RefMultPos;
  66. fPrimaryTracks->Clear();
  67. fGlobalTracks->Clear();
  68. for(int i=0;i<event.fPrimaryTracks->GetEntriesFast();i++){
  69. MpdTrack *from = (MpdTrack*)event.fPrimaryTracks->UncheckedAt(i);
  70. MpdTrack *to = (MpdTrack*)fPrimaryTracks->ConstructedAt(i);
  71. *to = *from;
  72. }
  73. for(int i=0;i<event.fGlobalTracks->GetEntriesFast();i++){
  74. MpdTrack *from = (MpdTrack*)event.fGlobalTracks->UncheckedAt(i);
  75. MpdTrack *to = (MpdTrack*)fGlobalTracks->ConstructedAt(i);
  76. *to = *from;
  77. }
  78. return *this;
  79. }
  80. // -------------------------------------------------------------------
  81. ClassImp(MpdEvent);