From 5411185a4d97108e282878acce4d6013294220ac Mon Sep 17 00:00:00 2001 From: wielanek <wielanek> Date: Sat, 1 Apr 2017 12:50:04 +0200 Subject: [PATCH] Added assignement operator to MpdEvent --- mpddata/MpdEvent.cxx | 49 ++++++++++++++++++++++++++++++++++++++++++++ mpddata/MpdEvent.h | 1 + 2 files changed, 50 insertions(+) diff --git a/mpddata/MpdEvent.cxx b/mpddata/MpdEvent.cxx index daa797c..7e80f28 100644 --- a/mpddata/MpdEvent.cxx +++ b/mpddata/MpdEvent.cxx @@ -42,4 +42,53 @@ MpdTrack *MpdEvent::AddGlobalTrack() return new((*fGlobalTracks)[fEventInfoNofGlobalTracks++]) MpdTrack(); } // ------------------------------------------------------------------- + +MpdEvent& MpdEvent::operator =(const MpdEvent& event) { + if(&event==this){ + return *this; + } + fRunInfoRunId = event.fRunInfoRunId; + fRunInfo_ProductionVersion = event.fRunInfo_ProductionVersion; + fRunInfo_CenterOfMassEnergy = event.fRunInfo_CenterOfMassEnergy; + fRunInfo_BeamMassNumber[0] = event.fRunInfo_BeamMassNumber[0]; + fRunInfo_BeamMassNumber[1] = event.fRunInfo_BeamMassNumber[1]; + fRunInfoMagneticFieldZ = event.fRunInfoMagneticFieldZ; + fEventInfo_TriggerMask = event.fEventInfo_TriggerMask; + fEventInfoNofGlobalTracks = event.fEventInfoNofGlobalTracks; + fEventInfoNofPrimaryTracks = event.fEventInfoNofPrimaryTracks; + fEventInfo_NofPositiveTracks = event.fEventInfo_NofPositiveTracks; + fEventInfo_NofNegativeTracks = event.fEventInfo_NofNegativeTracks; + + // PrimaryVertices + + PrimaryVerticesX = event.PrimaryVerticesX; + PrimaryVerticesY = event.PrimaryVerticesY; + PrimaryVerticesZ = event.PrimaryVerticesZ; + PrimaryVerticesXerr = event.PrimaryVerticesXerr; + PrimaryVerticesYerr = event.PrimaryVerticesYerr; + PrimaryVerticesZerr = event.PrimaryVerticesZerr; + PrimaryVertices_SumTrackPt = event.PrimaryVertices_SumTrackPt; + PrimaryVertices_MeanDip = event.PrimaryVertices_MeanDip; + PrimaryVerticesChi2 = event.PrimaryVerticesChi2; + PrimaryVertices_RefMultNeg = event.PrimaryVertices_RefMultNeg; + PrimaryVertices_RefMultPos = event.PrimaryVertices_RefMultPos; + fPrimaryTracks->Clear(); + fGlobalTracks->Clear(); + for(int i=0;i<event.fPrimaryTracks->GetEntriesFast();i++){ + MpdTrack *from = (MpdTrack*)event.fPrimaryTracks->UncheckedAt(i); + MpdTrack *to = (MpdTrack*)fPrimaryTracks->ConstructedAt(i); + *to = *from; + } + for(int i=0;i<event.fGlobalTracks->GetEntriesFast();i++){ + MpdTrack *from = (MpdTrack*)event.fGlobalTracks->UncheckedAt(i); + MpdTrack *to = (MpdTrack*)fGlobalTracks->ConstructedAt(i); + *to = *from; + } + return *this; +} + +// ------------------------------------------------------------------- + ClassImp(MpdEvent); + + diff --git a/mpddata/MpdEvent.h b/mpddata/MpdEvent.h index 94a96f5..8cbf924 100644 --- a/mpddata/MpdEvent.h +++ b/mpddata/MpdEvent.h @@ -48,6 +48,7 @@ class MpdEvent : public TNamed { public: MpdEvent(); // Default constructor + MpdEvent& operator=(const MpdEvent &event); virtual ~MpdEvent(); // Destructor void Reset(); -- GitLab