From 046254cf57a592435d84ee216889acb68c95dd39 Mon Sep 17 00:00:00 2001
From: AndreaCoccaro <andrea.coccaro@cern.ch>
Date: Mon, 12 Apr 2021 12:53:35 +0200
Subject: [PATCH] tentative EDM class for track seeds

---
 .../TrackerPrepRawData/TrackerSeed.h          | 42 ++++++++++++++++
 .../TrackerSeedCollection.h                   | 19 ++++++++
 .../TrackerPrepRawData/src/TrackerSeed.cxx    | 48 +++++++++++++++++++
 3 files changed, 109 insertions(+)
 create mode 100755 Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeed.h
 create mode 100755 Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeedCollection.h
 create mode 100755 Tracker/TrackerRecEvent/TrackerPrepRawData/src/TrackerSeed.cxx

diff --git a/Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeed.h b/Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeed.h
new file mode 100755
index 000000000..634163acc
--- /dev/null
+++ b/Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeed.h
@@ -0,0 +1,42 @@
+#ifndef TRACKERRAWDATA_TRACKERSEED_H
+#define TRACKERRAWDATA_TRACKERSEED_H
+
+// Space point Class
+#include "TrkSpacePoint/SpacePointCollection.h"
+
+#include <vector>
+
+using namespace std;
+
+class MsgStream;
+
+namespace Tracker {
+
+class TrackerSeed {
+
+ public:
+
+  TrackerSeed();
+  TrackerSeed(const TrackerSeed &);
+  TrackerSeed(TrackerSeed &&);
+  TrackerSeed &operator=(const TrackerSeed &);
+  TrackerSeed &operator=(TrackerSeed &&);
+  
+  TrackerSeed(vector<const Trk::SpacePoint*>);
+  TrackerSeed(vector<const Trk::SpacePoint*>&);
+
+  virtual MsgStream&    dump( MsgStream&    stream) const;
+  virtual std::ostream& dump( std::ostream& stream) const;
+    
+ private:
+
+  vector<const Trk::SpacePoint*> m_seed;
+
+};
+
+
+ MsgStream&    operator << (MsgStream& stream,    const TrackerSeed& prd);
+ std::ostream& operator << (std::ostream& stream, const TrackerSeed& prd);
+
+}
+#endif // TRACKERRAWDATA_TRACKERSEED_H
diff --git a/Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeedCollection.h b/Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeedCollection.h
new file mode 100755
index 000000000..d94c8c5d4
--- /dev/null
+++ b/Tracker/TrackerRecEvent/TrackerPrepRawData/TrackerPrepRawData/TrackerSeedCollection.h
@@ -0,0 +1,19 @@
+#ifndef TRACKERSEEDCOLLECTION_H
+#define TRACKERSEEDCOLLECTION_H
+
+// Base classes
+#include "AthenaKernel/CLASS_DEF.h"
+#include "AthContainers/DataVector.h"
+#include "GaudiKernel/DataObject.h"
+//class SpacePoint;
+#include "TrackerSpacePoint/SpacePointForSeed.h"
+#include "TrackerPrepRawData/TrackerSeed.h"
+
+namespace Tracker {
+typedef DataVector<TrackerSeed> TrackerSeedCollection;
+}
+
+CLASS_DEF(Tracker::TrackerSeedCollection, 1139531114, 1)
+
+#endif // TRACKERSEEDCOLLECTION_H
+
diff --git a/Tracker/TrackerRecEvent/TrackerPrepRawData/src/TrackerSeed.cxx b/Tracker/TrackerRecEvent/TrackerPrepRawData/src/TrackerSeed.cxx
new file mode 100755
index 000000000..082eb049e
--- /dev/null
+++ b/Tracker/TrackerRecEvent/TrackerPrepRawData/src/TrackerSeed.cxx
@@ -0,0 +1,48 @@
+#include "TrackerPrepRawData/TrackerSeed.h"
+
+namespace Tracker {
+
+  TrackerSeed::TrackerSeed() {}
+
+  TrackerSeed::TrackerSeed(vector<const Trk::SpacePoint*> seed) : m_seed(seed) {}
+  TrackerSeed::TrackerSeed(vector<const Trk::SpacePoint*>& seed) : m_seed(seed) {}
+
+  TrackerSeed::TrackerSeed(const TrackerSeed& trackerSeed) : m_seed(trackerSeed.m_seed) {}
+
+  TrackerSeed& TrackerSeed::operator=(const TrackerSeed& trackSeed){
+    if(&trackSeed != this) {
+      TrackerCluster::operator=(trackSeed);
+      m_seed = trackSeed.m_seed;
+    }
+    return *this;
+  }
+
+  TrackerSeed& TrackerSeed::operator=(TrackerSeed& trackSeed){
+    if(&trackSeed != this) {
+      TrackerCluster::operator=(trackSeed);
+      m_seed = RIO.m_seed;
+    }
+    return *this;
+  }
+
+  MsgStream& operator << (MsgStream& stream, const TrackerSeed& trackSeed)
+  {
+    return trackSeed.dump(stream);
+  }
+
+  std::ostream& operator << (std::ostream& stream, const TrackerSeed& trackSeed) {
+    return trackSeed.dump(stream);
+  }
+
+  MsgStream& TrackerSeed::dump(MsgStream& stream) const {
+    stream << "TrackerSeed object" << endl;
+    this->TrackerCluster::dump(stream);
+    return stream;
+  }
+
+  std::ostream& TrackerSeed::dump( std::ostream& stream) const {
+    stream << "TrackerSeed object"<<std::endl;
+    this->TrackerCluster::dump(stream);
+    return stream;
+  }
+}
-- 
GitLab