diff --git a/cpp/particles/p2p_ghost_collisions.hpp b/cpp/particles/p2p_ghost_collisions.hpp
index b82d122ae29dea576c745af12e85448c51b1df59..cb7270fb76128be90ed1a27255a150cfdec48dd6 100644
--- a/cpp/particles/p2p_ghost_collisions.hpp
+++ b/cpp/particles/p2p_ghost_collisions.hpp
@@ -25,6 +25,28 @@
 
 #include <cstring>
 #include <set>
+#include <utility>
+#include <vector>
+template < class partsize_t>
+std::vector<partsize_t> pairs2vec(std::set <std::pair <partsize_t,partsize_t>> ID_pairs){
+  std::vector<partsize_t> v(2*ID_pairs.size());
+  for(unsigned int i=0; i < ID_pairs.size(); i++)
+  {
+    v[2*i-2] = std::get<0>(*std::next(ID_pairs.begin(), i));
+    v[2*i-1] = std::get<1>(*std::next(ID_pairs.begin(), i));
+  }
+  return v;
+}
+
+template < class partsize_t>
+std::set <std::pair <partsize_t,partsize_t>> vec2pairs(std::vector<partsize_t> v){
+  std::set <std::pair <partsize_t,partsize_t>> ID_pairs;
+  for(unsigned int i=0; i < v.size()/2; i++)
+    {
+      ID_pairs.insert(std::pair <partsize_t,partsize_t> (v[2*i],v[2*i+1]));
+    }
+  return ID_pairs;
+}
 
 template <class real_number, class partsize_t>
 class p2p_ghost_collisions{
@@ -61,7 +83,7 @@ public:
         collision_counter += other.collision_counter;
         std::set <std::pair <partsize_t, partsize_t>> new_collision_pairs;
         std::set_union(collision_pairs.begin(), collision_pairs.end(),
-             other.collision_pairs.begin(), other.collision_pairs.end(),
+                       other.collision_pairs.begin(), other.collision_pairs.end(),
                        std::inserter(new_collision_pairs, new_collision_pairs.begin()));
         collision_pairs = new_collision_pairs;
     }